
Generieke formule
(=TEXTJOIN(", ",TRUE,IF(rng1=E5,rng2,"")))
Samenvatting
Om meerdere overeenkomsten op te zoeken en op te halen in een door komma's gescheiden lijst (in een enkele cel), kunt u de ALS-functie gebruiken met de TEXTJOIN-functie. In het getoonde voorbeeld is de formule in F5:
(=TEXTJOIN(", ",TRUE,IF(group=E5,name,"")))
Dit is een matrixformule en moet worden ingevoerd met control + shift + enter.
Deze formule gebruikt de genoemde bereiken "naam" (B5: B11) en "groep" (C5: C11).
Uitleg
De kern van deze formule is de ALS-functie, die de namen in de tabel als volgt op kleur "filtert":
IF(group=E5,name,""))
De logische test controleert elke cel in het benoemde bereik "groep" op de kleurwaarde in E5 (rood in dit geval). Het resultaat is een array als deze:
(FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Dat resultaat wordt op zijn beurt gebruikt om namen uit het benoemde bereik "naam" te filteren:
("Matt";"Sally";"Jude";"Aya";"Elle";"Linda";"George")
Voor elke TRUE blijft de naam bestaan, voor elke FALSE retourneert IF een lege tekenreeks ("").
Het resultaat van IF-looks is deze array:
("";"";"Jude";"Aya";"";"";"George")
die in de TEXTJOIN-functie gaat als tekst1.
TEXTJOIN is geconfigureerd om een komma als scheidingsteken te gebruiken en om lege waarden te negeren. Het uiteindelijke resultaat is deze tekstreeks:
"Jude, Aya, George"
Meerdere voorwaarden
U kunt de EN- of OF-functies niet gebruiken in een matrixformule zoals deze, omdat ze slechts één resultaat retourneren. U kunt booleaanse logica als volgt gebruiken voor AND:
=TEXTJOIN(", ",TRUE,IF((condition1)*(condition2),name,""))
Hier in meer detail uitgelegd.