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.