Ladda ner exempelarbetsboken
Denna handledning visar hur man sammanfogar cellvärden baserat på kriterier med hjälp av TEXTJOIN -funktionen i Excel och Google Sheets.
TEXTJOIN -funktionen
Användare av Excel 2022+ har tillgång till TEXTJOIN -funktionen, som slår samman flera textsträngar och separerar varje sträng med en specificerad avgränsare.
Notera: Google Sheets -användare kan använda TEXTJOIN -funktionen, men har ett något annorlunda sätt att ange matrisformler. Se det senare avsnittet om detta ämne.
Detta exempel kommer att använda TEXTJOIN och IF -funktioner i en matrisformel för att skapa en kommaseparerad textsträng med Spelarnamn som avser a Team värdet av Röd
1 | = TEXTJOIN (",", TRUE, IF (C3: C8 = "Red", B3: B8, "")) |
Användare av Excel 2022 måste ange denna formel som en matrisfunktion genom att trycka på CTRL + SKIFT + ENTER. Användare av senare versioner av Excel behöver inte följa detta steg.
För att förklara vad denna formel gör kan vi dela upp den i steg:
Detta är vår sista formel:
1 | = TEXTJOIN (",", TRUE, IF (C3: C8 = "Red", B3: B8, "")) |
Först läggs cellintervallets värden till formeln:
1 | = TEXTJOIN (",", TRUE, IF ({"Red"; "Blue"; "Blue"; "Red"; "Blue"; "Red"} = "Red", {"A"; "B"; "C"; "D"; "E"; "F"}, "")) |
Därefter listan över Team namn jämförs med värdet Röd:
1 | = TEXTJOIN (",", TRUE, IF ({TRUE; FALSE; FALSE; TRUE; FALSE; TRUE}, {"A"; "B"; "C"; "D"; "E"; "F"} , "")) |
IF -funktionen ersätter TRUE -värden med Spelarnamnoch FALSE -värden med ””
1 | = TEXTJOIN (",", TRUE, {"A"; ""; ""; "D"; ""; "F"}) |
TEXTJOIN -funktionen kombinerar sedan alla arrayvärden i en textsträng. Vi har instruerat funktionen att ignorera tomma värden och lägga till texten "," mellan varje värde. Detta ger det slutliga resultatet:
1 | = "A, D, F" |
TextJoin If - i före Excel 2022
Eftersom TEXTJOIN -funktionen inte är tillgänglig före Excel 2022 -versionen måste vi lösa detta problem på ett annat sätt. CONCATENATE -funktionen är tillgänglig men tar inte cellområden som ingångar eller tillåter matrisoperationer och därför måste vi istället använda en hjälpkolumn med en IF -funktion.
Detta nästa exempel visar hur du använder en hjälparkolumn för att skapa en kommaseparerad textsträng av Spelarnamn som avser a Team värdet av Röd:
1 | = IF (C3 = "Röd", B3 & ",", "") & D4 |
Det första steget i detta exempel är att använda en IF -funktion för att replikera villkoret för Team = Röd. Om villkoret är uppfyllt, Spelarnamn värde skrivs och följs av den valda avgränsaren ",":
1 | = OM (C3 = "Röd", B3 & ",", "") |
Därefter kan vi skapa en kolumn som bygger upp en lista över dessa värden i en cell genom att också referera till cellen nedanför den:
1 | = D3 & E4 |
Denna formel använder & -tecknet för att sammanfoga två värden. Observera att CONCATENATE -funktionen kan användas för att skapa exakt samma resultat, men metoden & är ofta att föredra eftersom den är kortare och gör det tydligare vilken åtgärd formeln utför.
Dessa två hjälparkolumner kan sedan kombineras till en formel:
1 | = IF (C3 = "Röd", B3 & ",", "") & D4 |
En sammanfattande cell kan sedan referera till det första värdet i Spelarlista hjälparpelare:
1 | = D3 |
Om det slutliga värdet "," inte krävs, bör en ytterligare kapslad IF -funktion läggas till i formeln:
1 | = IF (C3 = "Röd", IF (D4 = "", B3, B3 & ","), "") & D4 |
Den ytterligare delen av formeln är IF -funktionen nedan:
1 | OM (D4 = "", B3, B3 & ",") |
Denna del av formeln kontrollerar värdet på cellen under den. Om den är tom måste denna cell vara den sista Spelarnamn i listan och namnet skrivs utan avgränsare. Om cellen nedan innehåller ett värde är denna cell inte den sista Spelarnamn i listan och så läggs "," avgränsaren till.
TextJoin Om i Google Kalkylark
Dessa formler fungerar på samma sätt i Google Kalkylark som i Excel, förutom att funktionen ARRAYFORMULA måste användas i Google Kalkylark för att den ska kunna utvärdera resultaten korrekt. Detta kan läggas till automatiskt genom att trycka på tangenterna CTRL + SKIFT + ENTER medan du redigerar formeln:
1 | = ARRAYFORMULA (TEXTJOIN (",", TRUE, (IF (C3: C8 = "Red", B3: B8, "")))) |