![](https://cdn.wiki-base.com/5189951/excel_formula_first_match_between_two_ranges__2.png.webp)
Formula generica
=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))
Sommario
Per recuperare la prima corrispondenza in due intervalli di valori, è possibile utilizzare una formula basata sulle funzioni INDICE, CONFRONTA e CONTA.SE. Nell'esempio mostrato, la formula in G5 è:
=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))
dove "intervallo1" è l'intervallo denominato B5: B8, "intervallo2" è l'intervallo denominato D5: D7.
Spiegazione
In questo esempio, l'intervallo denominato "intervallo1" si riferisce alle celle B5: B8 e l'intervallo denominato "intervallo2" si riferisce a D5: D7. Utilizziamo intervalli denominati solo per comodità e leggibilità; la formula funziona bene anche con i normali riferimenti di cella.
Il nucleo di questa formula è INDICE e CONFRONTA. La funzione INDICE recupera un valore da range2 che rappresenta il primo valore in range2 che si trova in range1. La funzione INDICE richiede un indice (numero di riga) e generiamo questo valore utilizzando la funzione CONFRONTA, che è impostata per corrispondere al valore VERO in questa parte della formula:
MATCH(TRUE,COUNTIF(range1,range2)>0,0)
Qui, il valore di corrispondenza è TRUE e l'array di ricerca viene creato con COUNTIF qui:
COUNTIF(range1,range2)>0
CONTA.SE restituisce un conteggio dei valori di intervallo2 visualizzati in intervallo1. Poiché intervallo2 contiene più valori, CONTA.SE restituirà più risultati simili al seguente:
(0;0;1)
Usiamo "> 0" per forzare tutti i risultati su VERO o FALSO:
(FALSE;FALSE;TRUE)
Quindi MATCH fa la sua cosa e restituisce la posizione del primo VERO (se presente) che appare, in questo caso, il numero 3.
Infine, INDICE restituisce il valore in quella posizione, "Rosso".