Formula di Excel: Ottieni l'ultima cella di corrispondenza contiene -

Formula generica

=LOOKUP(2,1/SEARCH(things,A1),things)

Sommario

Per controllare una cella per una delle diverse cose e restituire l'ultima corrispondenza trovata nell'elenco, puoi utilizzare una formula basata sulle funzioni CERCA e RICERCA. In caso di più corrispondenze trovate, la formula restituirà l'ultima corrispondenza dall'elenco delle "cose".
Nell'esempio mostrato, la formula in C5 è:

=LOOKUP(2,1/SEARCH(things,B5),things)

Spiegazione

Contesto: hai un elenco di cose nell'intervallo denominato "cose" (E5: E8) e vuoi controllare le celle nella colonna B per vedere se contengono queste cose. In tal caso, si desidera restituire l'ultimo elemento degli "oggetti" trovati.

In questa formula, la funzione RICERCA viene utilizzata per cercare celle nella colonna B in questo modo:

SEARCH(things,B5)

Quando la RICERCA trova una corrispondenza, restituisce la posizione della corrispondenza nella cella da cercare. Quando la ricerca non riesce a trovare una corrispondenza, restituisce l'errore #VALORE. Poiché stiamo dando a SEARH più di una cosa da cercare, restituirà più di un risultato. Nell'esempio mostrato, SEARCH restituisce un array di risultati come questo:

(8;24;#VALUE!;#VALUE!)

Questo array viene quindi utilizzato come divisore per il numero 1. Il risultato è un array composto da errori e valori decimali. Gli errori rappresentano cose non trovate e i valori decimali rappresentano cose trovate. Nell'esempio mostrato, l'array ha questo aspetto:

(0.125;0.0416666666666667;#VALUE!;#VALUE!)

Questo array funge da "lookup_vector" per la funzione LOOKUP. Il valore di ricerca viene fornito come numero 2 e il vettore di risultato è l'intervallo denominato "cose". Questa è la parte intelligente.

La formula è costruita in modo tale che il vettore di ricerca non conterrà mai un valore maggiore di 1, mentre il valore di ricerca è 2. Ciò significa che il valore di ricerca non verrà mai trovato. In questo caso, CERCA corrisponderà all'ultimo valore numerico trovato nell'array, che corrisponde all'ultima "cosa" trovata da RICERCA.

Infine, utilizzando l'intervallo denominato "cose" fornito come vettore di risultato, CERCA restituisce l'ultima cosa trovata.

Con valori hardcoded

L'utilizzo di un intervallo come "cose" semplifica la modifica dell'elenco dei termini di ricerca (e l'aggiunta di altri termini di ricerca), ma non è un requisito. Puoi anche codificare i valori direttamente nella formula in questo modo:

=LOOKUP(2,1/SEARCH(("red","blue","green"),B5),("red","blue","green"))

Articoli interessanti...