Formula di Excel: la corrispondenza prima non inizia con -

Sommario

Formula generica

(=MATCH(TRUE,IF(LEFT(range,1)"N",TRUE),0))

Sommario

Per trovare una corrispondenza con il primo valore che non inizia con una stringa specifica, è possibile utilizzare un array basato sulle funzioni MATCH e LEFT. Nell'esempio mostrato, la formula in F5 è:

(=MATCH(TRUE,IF(LEFT(code,1)"N",TRUE),0))

dove "codice" è l'intervallo denominato B5: B12.

Nota: questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Spiegazione

La chiave di questa formula è l'array o i valori TRUE e FALSE costruiti con questa espressione:

LEFT(code,1)"N"

Qui, ogni valore nell'intervallo denominato "codice" viene valutato con il test logico "la prima lettera non è N". Il risultato è un array o valori TRUE e FALSE come questo:

(FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE)

Questo array viene inserito nella funzione MATCH come array di ricerca. Il valore di ricerca è TRUE e il tipo di corrispondenza è impostato su zero per forzare una corrispondenza esatta. La funzione CONFRONTA restituisce la posizione del primo valore che non inizia con la lettera "N" (Z09876), che è 5.

INDICE e MATCH

Per recuperare un valore associato alla posizione restituita da MATCH, è possibile aggiungere la funzione INDICE. Nell'esempio mostrato, la formula in F6 è:

(=INDEX(value,MATCH(TRUE,LEFT(code,1)"N",0)))

Nota che stiamo usando la stessa formula MATCH sopra per fornire un numero di riga a INDICE, con l'array impostato sul "valore" dell'intervallo denominato. Come prima, CONFRONTA restituisce 5. INDICE quindi restituisce il valore in quella posizione, -23.

Come prima, questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Articoli interessanti...