Formula di Excel: prima corrispondenza tra due intervalli -

Sommario

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".

Articoli interessanti...