
Formula generică
(=TEXTJOIN(", ",TRUE,IF(rng1=E5,rng2,"")))
rezumat
Pentru a căuta și a prelua mai multe potriviri într-o listă separată prin virgule (într-o singură celulă) puteți utiliza funcția IF cu funcția TEXTJOIN. În exemplul prezentat, formula din F5 este:
(=TEXTJOIN(", ",TRUE,IF(group=E5,name,"")))
Aceasta este o formulă matrice și trebuie introdusă cu control + shift + enter.
Această formulă utilizează intervalele denumite „nume” (B5: B11) și „grup” (C5: C11).
Explicaţie
Nucleul acestei formule este funcția IF, care „filtrează” numele din tabel după culoare astfel:
IF(group=E5,name,""))
Testul logic verifică fiecare celulă din intervalul numit „grup” pentru valoarea culorii în E5 (roșu în acest caz). Rezultatul este o matrice ca aceasta:
(FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Acest rezultat este folosit la rândul său pentru a filtra numele din intervalul denumit „nume”:
("Matt";"Sally";"Jude";"Aya";"Elle";"Linda";"George")
Pentru fiecare ADEVĂRAT, numele supraviețuiește, pentru fiecare FALS, IF returnează un șir gol ("").
Rezultatul aspectului IF este această matrice:
("";"";"Jude";"Aya";"";"";"George")
care intră în funcția TEXTJOIN ca text1.
TEXTJOIN este configurat pentru a utiliza o virgulă ca delimitator și pentru a ignora valorile goale. Rezultatul final este acest șir de text:
"Jude, Aya, George"
Condiții multiple
Nu puteți utiliza funcțiile ȘI ȘI SAU într-o formulă de matrice ca aceasta, deoarece acestea returnează doar un singur rezultat. Puteți utiliza logica booleană astfel pentru ȘI:
=TEXTJOIN(", ",TRUE,IF((condition1)*(condition2),name,""))
Explicat mai detaliat aici.