Goed geformatteerde tekst opbouwen uit Excel-gegevens is een veelvoorkomende behoefte, maar waarden aan elkaar rijgen kan al snel rommelig worden. De functie TEXTJOIN() van Excel biedt een eenvoudige oplossing: je kunt tekstbereiken samenvoegen met een scheidingsteken en zelfs lege cellen overslaan.
In dit artikel neem ik de basis van TEXTJOIN() door, vergelijk ik het met soortgelijke functies zoals CONCAT() en CONCATENATE(), en werk ik praktische scenario’s uit waarin het uitblinkt. Onderweg pleit ik voor TEXTJOIN() omdat ik vind dat dit tegenwoordig het betere hulpmiddel is om tekst te combineren – en ik denk dat je aan het einde van het artikel ook overtuigd bent.
Hoe Excel TEXTJOIN() werkt
Laten we eerst helder krijgen wat TEXTJOIN() precies doet en waarom de syntaxis zoveel flexibeler is dan wat er eerder was.
In de kern laat TEXTJOIN() je tekstwaarden uit meerdere cellen samenvoegen, met een scheidingsteken (zoals een komma, spatie of puntkomma) ertussen. In tegenstelling tot oudere aanpakken kan het in één keer een volledig bereik verwerken, en je bepaalt zelf of lege cellen worden genegeerd.
Als A2 leeg is, krijg je alleen de waarden uit A1 en A3, gescheiden door een komma.
Waarom is dit belangrijk? Andere functies (ik denk aan CONCATENATE()) laten je elke cel apart opsommen en slaan geen lege cellen over. TEXTJOIN() is korter om te typen en veel makkelijker te onderhouden.
TEXTJOIN() vs. CONCATENATE() vs. CONCAT()
Nu we de basis van TEXTJOIN() hebben behandeld, is het de moeite waard om te zien hoe het zich verhoudt tot oudere Excel-tekstfuncties. Als je CONCATENATE() of CONCAT() hebt gebruikt, vraag je je misschien af waarom je zou overstappen.
TEXTJOIN(): Laat je een scheidingsteken opgeven en eenvoudig lege cellen overslaan. Accepteert bereiken.
CONCAT(): Voegt bereiken of individuele tekstcellen samen, maar je kunt geen scheidingsteken opgeven. Slaat geen lege cellen over.
CONCATENATE(): De oudste optie. Dwingt je om elke cel één voor één op te geven. Geen veld voor scheidingsteken, geen bereikondersteuning.
Als voorbeeld: we voegen waarden in B1, B2 en B3 samen met een puntkomma ertussen. Zo zien de verschillende functies eruit:
Let erop dat TEXTJOIN() de enige is waarmee je zonder extra gedoe een scheidingsteken kunt kiezen. Met CONCAT() of CONCATENATE() moet je scheidingstekens handmatig toevoegen als je die wilt:
En minstens zo belangrijk: afhankelijk van hoe je gegevens zijn opgebouwd, kan TEXTJOIN() lege cellen voor je overslaan. CONCATENATE() en CONCAT() nemen de lege cel gewoon op.
Scheidingstekens en lege cellen afhandelen
Ik wil iets meer vertellen over deze twee veelvoorkomende pijnpunten: consistente scheidingstekens toevoegen en lege cellen negeren.
Aangepaste scheidingstekens
Je wilt waarschijnlijk verschillende scheidingstekens voor verschillende gevallen. Je kunt komma’s, pipes, nieuwe regels of zelfs andere soorten tekens als scheiding gebruiken.
Om te scheiden met een verticale streep, gebruik je dit:
Je kunt zelfs CHAR(10) gebruiken voor een regeleinde, al moet je dan in de celeigenschappen Tekstterugloop inschakelen om het effect te zien.
Lege cellen overslaan
Een van de frustrerendste zaken bij het samenstellen van gegevens is omgaan met lege cellen. TEXTJOIN() geeft je de regie. Zet het argument ignore_empty op TRUE, en lege cellen worden volledig weggelaten.
Nu is het resultaat: “Red, , Blue”. Die extra komma valt op (en is meestal niet wat je wilt). Naar mijn ervaring is TRUE meestal het beste.
Dit lijkt misschien een klein verschil, maar als je deze functie even oefent, bespaar je tijd op nabewerkingen.
Dynamische lijsten en labels bouwen
Nu je de basis hebt gezien, bekijken we manieren waarop TEXTJOIN() problemen kan oplossen. Ik focus op twee scenario’s die je waarschijnlijk tegenkomt: dynamische samenvattingen maken en labels samenstellen uit variabele gegevens.
Samenvattingen maken op basis van gebruikersinvoer
Stel dat je enquête-antwoorden verzamelt waarbij gebruikers Ja/Nee antwoorden op een reeks optionele vragen. Alleen sommigen antwoorden, dus de resultaten staan verspreid over F1 tot en met J1.
Als je alleen de vragen wilt opsommen waarop ze “Yes” hebben geantwoord, kun je TEXTJOIN() combineren met IF() en FILTER() (met dynamische arrays in nieuwere Excel-versies).
Stel dat G1:G5 de vraagtekst bevat en F1:F5 de bijbehorende Yes/No:
Je uitvoercel vermeldt nu alleen de vragen waarop de gebruiker “Yes” zei, gescheiden door komma’s.
Heb je geen dynamische arrays, bouw dan een hulp kolom die de vraagtekst alleen weergeeft als het antwoord Yes is, en voeg dat hulpreeks samen met TEXTJOIN().
Aangepaste labels bouwen uit variabele gegevens
Stel dat je verzendlabels voorbereidt uit een tabel waarin sommige velden (zoals “Apartment” of “Suite”) soms leeg zijn. Je wilt adresonderdelen samenvoegen tot één regel.
Als je adres staat in H1 (“123 Main St”), H2 (“Apt 4B” of leeg), H3 (“Springfield”), H4 (“IL”), H5 (“62704”), dan gebruik je:
Als H2 leeg is, blijft je output netjes (geen dubbele komma’s!) omdat TEXTJOIN() de lege cel overslaat.
Dit zijn veelvoorkomende voorbeelden, maar dezelfde logica geldt overal waar je gegevens samenvoegt met optionele velden of conditionele opname.
Overige aandachtspunten
Hoe handig TEXTJOIN() ook is, er zijn een paar kleine zaken:
Meerdere bereiken gebruiken met TEXTJOIN()
Eén ding om te weten over TEXTJOIN() is hoe het omgaat met meerdere bereiken. Je kunt meer dan één bereik doorgeven, zelfs als ze niet naast elkaar liggen, zolang je ze maar apart opsomt:
Dit werkt prima. Excel combineert de waarden uit beide bereiken en voegt ze samen. Onthoud wel: je kunt ze niet als één array schrijven zoals (A1:A3,C1:C3). Je moet elk bereik als een eigen argument opgeven.
Geneste functies en dynamische arrays
Als je TEXTJOIN() gebruikt als onderdeel van een formule met dynamische arrays (zoals met UNIQUE() of FILTER()), onthoud dan dat je scheidingsteken en ignore_empty-argument nog steeds enkele waarden moeten zijn. Arrays daar gebruiken levert een #VALUE!-fout op.
Scheidingstekens en eindopmaak
Soms wil je geen scheidingsteken (je wilt alles gewoon aan elkaar plakken). Zet het scheidingsteken dan op "" (een lege tekenreeks):
Weet wel: als je het scheidingsteken overslaat, verlies je het belangrijkste voordeel van de functie ten opzichte van CONCAT().
Als je lijsten wilt maken voor gebruik buiten Excel (zoals CSV-uploads), let dan op extra spaties, onverwachte regeleinden of tekenencodering (vooral als je symbolen of Unicode gebruikt).
Verwante functies en geavanceerde technieken
Als je vertrouwd raakt met TEXTJOIN(), vraag je je misschien af hoe het past bij andere “dynamische” Excel-functies. Vaak wordt het nog krachtiger in combinatie met UNIQUE(), FILTER() of SORT().
Stel bijvoorbeeld dat je alle unieke productcategorieën uit een lijst wilt samenvoegen:
Beide voorbeelden laten zien hoe TEXTJOIN() gegevens kan samenvatten of rapporteren zonder hulpkolommen of handmatig filteren.
Conclusie
Als je nog steeds CONCATENATE() gebruikt of cellen handmatig aan elkaar rijgt, bespaart overstappen op TEXTJOIN() je tijd. (Beloofd!)
Ook wil ik toevoegen dat het leren van TEXTJOIN() je helpt om in bereiken te denken. Dat is een manier van werken die loont wanneer je de functies voor dynamische arrays van Excel en andere modernere aanpakken gebruikt. Volg onze Advanced Excel Functions-cursus om verder te leren.
Auteur
Josef Waples
Ik ben een schrijver en editor op het gebied van data science en heb bijgedragen aan onderzoeksartikelen in wetenschappelijke tijdschriften. Ik ben vooral geïnteresseerd in lineaire algebra, statistiek, R en dergelijke. Ik speel ook best wat schaak!
Leer hoe u gegevens analyseert met draaitabellen en intermediaire logische functies voordat u doorgaat naar hulpmiddelen zoals wat-als-analyse en prognoses.
Goed geformatteerde tekst opbouwen uit Excel-gegevens is een veelvoorkomende behoefte, maar waarden aan elkaar rijgen kan al snel rommelig worden. De functie
TEXTJOIN()van Excel biedt een eenvoudige oplossing: je kunt tekstbereiken samenvoegen met een scheidingsteken en zelfs lege cellen overslaan.In dit artikel neem ik de basis van
TEXTJOIN()door, vergelijk ik het met soortgelijke functies zoalsCONCAT()enCONCATENATE(), en werk ik praktische scenario’s uit waarin het uitblinkt. Onderweg pleit ik voorTEXTJOIN()omdat ik vind dat dit tegenwoordig het betere hulpmiddel is om tekst te combineren – en ik denk dat je aan het einde van het artikel ook overtuigd bent.Hoe Excel TEXTJOIN() werkt
Laten we eerst helder krijgen wat
TEXTJOIN()precies doet en waarom de syntaxis zoveel flexibeler is dan wat er eerder was.In de kern laat
TEXTJOIN()je tekstwaarden uit meerdere cellen samenvoegen, met een scheidingsteken (zoals een komma, spatie of puntkomma) ertussen. In tegenstelling tot oudere aanpakken kan het in één keer een volledig bereik verwerken, en je bepaalt zelf of lege cellen worden genegeerd.Dit is de syntaxis:
delimiter: Het teken of de tekens die je tussen elk tekstdeel wilt plaatsen (vaak een komma, spatie, enz.)ignore_empty: TRUE om lege cellen over te slaan, FALSE om ze op te nementext1, [text2], …: De cellen, bereiken of waarden die je wilt combinerenStel dat je waarden hebt in A1, A2 en A3. Je wilt ze samenvoegen, gescheiden door komma’s, en lege cellen overslaan:
Als A2 leeg is, krijg je alleen de waarden uit A1 en A3, gescheiden door een komma.
Waarom is dit belangrijk? Andere functies (ik denk aan
CONCATENATE()) laten je elke cel apart opsommen en slaan geen lege cellen over.TEXTJOIN()is korter om te typen en veel makkelijker te onderhouden.TEXTJOIN() vs. CONCATENATE() vs. CONCAT()
Nu we de basis van
TEXTJOIN()hebben behandeld, is het de moeite waard om te zien hoe het zich verhoudt tot oudere Excel-tekstfuncties. Als jeCONCATENATE()ofCONCAT()hebt gebruikt, vraag je je misschien af waarom je zou overstappen.TEXTJOIN(): Laat je een scheidingsteken opgeven en eenvoudig lege cellen overslaan. Accepteert bereiken.CONCAT(): Voegt bereiken of individuele tekstcellen samen, maar je kunt geen scheidingsteken opgeven. Slaat geen lege cellen over.CONCATENATE(): De oudste optie. Dwingt je om elke cel één voor één op te geven. Geen veld voor scheidingsteken, geen bereikondersteuning.Als voorbeeld: we voegen waarden in B1, B2 en B3 samen met een puntkomma ertussen. Zo zien de verschillende functies eruit:
Let erop dat
TEXTJOIN()de enige is waarmee je zonder extra gedoe een scheidingsteken kunt kiezen. MetCONCAT()ofCONCATENATE()moet je scheidingstekens handmatig toevoegen als je die wilt:En minstens zo belangrijk: afhankelijk van hoe je gegevens zijn opgebouwd, kan
TEXTJOIN()lege cellen voor je overslaan.CONCATENATE()enCONCAT()nemen de lege cel gewoon op.Scheidingstekens en lege cellen afhandelen
Ik wil iets meer vertellen over deze twee veelvoorkomende pijnpunten: consistente scheidingstekens toevoegen en lege cellen negeren.
Aangepaste scheidingstekens
Je wilt waarschijnlijk verschillende scheidingstekens voor verschillende gevallen. Je kunt komma’s, pipes, nieuwe regels of zelfs andere soorten tekens als scheiding gebruiken.
Om te scheiden met een verticale streep, gebruik je dit:
Je kunt ook meer niches doen. Hier gebruik ik een spatie-streepje-spatie als scheiding:
Je kunt zelfs
CHAR(10)gebruiken voor een regeleinde, al moet je dan in de celeigenschappen Tekstterugloop inschakelen om het effect te zien.Lege cellen overslaan
Een van de frustrerendste zaken bij het samenstellen van gegevens is omgaan met lege cellen.
TEXTJOIN()geeft je de regie. Zet het argumentignore_emptyopTRUE, en lege cellen worden volledig weggelaten.Resultaat: “Red, Blue”. De lege cel (F2) wordt genegeerd, dus je krijgt geen extra komma.
Als je
ignore_emptyopFALSEzet:Nu is het resultaat: “Red, , Blue”. Die extra komma valt op (en is meestal niet wat je wilt). Naar mijn ervaring is
TRUEmeestal het beste.Dit lijkt misschien een klein verschil, maar als je deze functie even oefent, bespaar je tijd op nabewerkingen.
Dynamische lijsten en labels bouwen
Nu je de basis hebt gezien, bekijken we manieren waarop
TEXTJOIN()problemen kan oplossen. Ik focus op twee scenario’s die je waarschijnlijk tegenkomt: dynamische samenvattingen maken en labels samenstellen uit variabele gegevens.Samenvattingen maken op basis van gebruikersinvoer
Stel dat je enquête-antwoorden verzamelt waarbij gebruikers Ja/Nee antwoorden op een reeks optionele vragen. Alleen sommigen antwoorden, dus de resultaten staan verspreid over F1 tot en met J1.
Als je alleen de vragen wilt opsommen waarop ze “Yes” hebben geantwoord, kun je
TEXTJOIN()combineren metIF()enFILTER()(met dynamische arrays in nieuwere Excel-versies).Stel dat G1:G5 de vraagtekst bevat en F1:F5 de bijbehorende Yes/No:
Je uitvoercel vermeldt nu alleen de vragen waarop de gebruiker “Yes” zei, gescheiden door komma’s.
Heb je geen dynamische arrays, bouw dan een hulp kolom die de vraagtekst alleen weergeeft als het antwoord Yes is, en voeg dat hulpreeks samen met
TEXTJOIN().Aangepaste labels bouwen uit variabele gegevens
Stel dat je verzendlabels voorbereidt uit een tabel waarin sommige velden (zoals “Apartment” of “Suite”) soms leeg zijn. Je wilt adresonderdelen samenvoegen tot één regel.
Als je adres staat in H1 (“123 Main St”), H2 (“Apt 4B” of leeg), H3 (“Springfield”), H4 (“IL”), H5 (“62704”), dan gebruik je:
Als H2 leeg is, blijft je output netjes (geen dubbele komma’s!) omdat
TEXTJOIN()de lege cel overslaat.Dit zijn veelvoorkomende voorbeelden, maar dezelfde logica geldt overal waar je gegevens samenvoegt met optionele velden of conditionele opname.
Overige aandachtspunten
Hoe handig
TEXTJOIN()ook is, er zijn een paar kleine zaken:Meerdere bereiken gebruiken met TEXTJOIN()
Eén ding om te weten over
TEXTJOIN()is hoe het omgaat met meerdere bereiken. Je kunt meer dan één bereik doorgeven, zelfs als ze niet naast elkaar liggen, zolang je ze maar apart opsomt:Dit werkt prima. Excel combineert de waarden uit beide bereiken en voegt ze samen. Onthoud wel: je kunt ze niet als één array schrijven zoals
(A1:A3,C1:C3). Je moet elk bereik als een eigen argument opgeven.Geneste functies en dynamische arrays
Als je
TEXTJOIN()gebruikt als onderdeel van een formule met dynamische arrays (zoals metUNIQUE()ofFILTER()), onthoud dan dat je scheidingsteken enignore_empty-argument nog steeds enkele waarden moeten zijn. Arrays daar gebruiken levert een#VALUE!-fout op.Scheidingstekens en eindopmaak
Soms wil je geen scheidingsteken (je wilt alles gewoon aan elkaar plakken). Zet het scheidingsteken dan op
""(een lege tekenreeks):Weet wel: als je het scheidingsteken overslaat, verlies je het belangrijkste voordeel van de functie ten opzichte van
CONCAT().Als je lijsten wilt maken voor gebruik buiten Excel (zoals CSV-uploads), let dan op extra spaties, onverwachte regeleinden of tekenencodering (vooral als je symbolen of Unicode gebruikt).
Verwante functies en geavanceerde technieken
Als je vertrouwd raakt met
TEXTJOIN(), vraag je je misschien af hoe het past bij andere “dynamische” Excel-functies. Vaak wordt het nog krachtiger in combinatie metUNIQUE(),FILTER()ofSORT().Stel bijvoorbeeld dat je alle unieke productcategorieën uit een lijst wilt samenvoegen:
Let op:
UNIQUE()is in Excel standaard kolomgeoriënteerd. Omdat ik met een rij werkte, moest ik ook TRANSPOSE() gebruiken.Of je wilt alleen diegenen die aan een bepaalde voorwaarde voldoen:
Beide voorbeelden laten zien hoe
TEXTJOIN()gegevens kan samenvatten of rapporteren zonder hulpkolommen of handmatig filteren.Conclusie
Als je nog steeds
CONCATENATE()gebruikt of cellen handmatig aan elkaar rijgt, bespaart overstappen opTEXTJOIN()je tijd. (Beloofd!)Ook wil ik toevoegen dat het leren van
TEXTJOIN()je helpt om in bereiken te denken. Dat is een manier van werken die loont wanneer je de functies voor dynamische arrays van Excel en andere modernere aanpakken gebruikt. Volg onze Advanced Excel Functions-cursus om verder te leren.