
Generisk formel
(=TEXTJOIN(", ",TRUE,IF(rng1=E5,rng2,"")))
Sammanfattning
För att slå upp och hämta flera matchningar i en kommaseparerad lista (i en enda cell) kan du använda IF-funktionen med TEXTJOIN-funktionen. I exemplet som visas är formeln i F5:
(=TEXTJOIN(", ",TRUE,IF(group=E5,name,"")))
Detta är en matrisformel och måste anges med kontroll + skift + enter.
Denna formel använder de namngivna områdena "namn" (B5: B11) och "grupp" (C5: C11).
Förklaring
Kärnan i denna formel är IF-funktionen, som "filtrerar" namnen i tabellen efter färg så här:
IF(group=E5,name,""))
Det logiska testet kontrollerar varje cell i det namngivna intervallet "grupp" för färgvärdet i E5 (rött i detta fall). Resultatet är en array som denna:
(FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Resultatet används i sin tur för att filtrera namn från det namngivna intervallet "namn":
("Matt";"Sally";"Jude";"Aya";"Elle";"Linda";"George")
För varje SANT överlever namnet, för varje FALSKT returnerar en tom sträng ("").
Resultatet av IF-utseende är denna matris:
("";"";"Jude";"Aya";"";"";"George")
som går in i TEXTJOIN-funktionen som text1.
TEXTJOIN är konfigurerad för att använda ett komma som avgränsare och för att ignorera tomma värden. Det slutliga resultatet är denna textsträng:
"Jude, Aya, George"
Flera villkor
Du kan inte använda OCH- eller ELLER-funktionerna i en sådan matrisformel eftersom de bara returnerar ett enda resultat. Du kan använda boolesk logik så här för OCH:
=TEXTJOIN(", ",TRUE,IF((condition1)*(condition2),name,""))
Förklaras mer detaljerat här.