Formula di Excel: più corrispondenze nell'elenco separato da virgole -

Sommario

Formula generica

(=TEXTJOIN(", ",TRUE,IF(rng1=E5,rng2,"")))

Sommario

Per cercare e recuperare più corrispondenze in un elenco separato da virgole (in una singola cella) è possibile utilizzare la funzione IF con la funzione TEXTJOIN. Nell'esempio mostrato, la formula in F5 è:

(=TEXTJOIN(", ",TRUE,IF(group=E5,name,"")))

Questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Questa formula utilizza gli intervalli denominati "nome" (B5: B11) e "gruppo" (C5: C11).

Spiegazione

Il nucleo di questa formula è la funzione IF, che "filtra" i nomi nella tabella per colore in questo modo:

IF(group=E5,name,""))

Il test logico controlla ogni cella nel "gruppo" dell'intervallo denominato per il valore del colore in E5 (rosso in questo caso). Il risultato è un array come questo:

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

Questo risultato viene utilizzato a sua volta per filtrare i nomi dall'intervallo denominato "nome":

("Matt";"Sally";"Jude";"Aya";"Elle";"Linda";"George")

Per ogni VERO, il nome sopravvive, per ogni FALSO SE restituisce una stringa vuota ("").

Il risultato di IF guarda è questo array:

("";"";"Jude";"Aya";"";"";"George")

che va nella funzione TEXTJOIN come text1.

TEXTJOIN è configurato per utilizzare una virgola come delimitatore e per ignorare i valori vuoti. Il risultato finale è questa stringa di testo:

"Jude, Aya, George"

Condizioni multiple

Non è possibile utilizzare le funzioni AND o OR in una formula di matrice come questa perché restituiscono solo un singolo risultato. Puoi usare la logica booleana come questa per AND:

=TEXTJOIN(", ",TRUE,IF((condition1)*(condition2),name,""))

Spiegato in modo più dettagliato qui.

Articoli interessanti...