Cours
La création de texte bien formaté à partir de données Excel est un besoin courant, mais l'enchaînement de valeurs peut être source de désordre. La fonction TEXTJOIN()
d'Excel offre une solution simple, vous permettant de rassembler des plages de texte à l'aide d'un délimiteur et même d'ignorer les cellules vides.
Dans cet article, je vais vous présenter les principes de base de TEXTJOIN()
, voir comment il se compare à des fonctions similaires telles que CONCAT()
et CONCATENATE()
, et vous présenter des scénarios pratiques dans lesquels il se distingue. Au fur et à mesure, je plaiderai pour TEXTJOIN()
parce que je pense que c'est aujourd'hui le meilleur outil pour combiner des textes, et je pense qu'à la fin de l'article, vous en serez également convaincus.
Comment fonctionne la fonction Excel TEXTJOIN()
Commençons par expliquer clairement ce que fait TEXTJOIN()
et pourquoi sa syntaxe est beaucoup plus souple que celle qui l'a précédé.
À la base, TEXTJOIN()
vous permet de réunir des valeurs textuelles provenant de plusieurs cellules, en insérant un délimiteur (comme une virgule, un espace ou un point-virgule) entre elles. Contrairement aux approches plus anciennes, il peut traiter une gamme complète à la fois, et vous pouvez décider d'ignorer les blancs.
Voici la syntaxe :
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
-
delimiter
: Le(s) caractère(s) que vous souhaitez voir figurer entre chaque élément de texte (souvent une virgule, un espace, etc.) -
ignore_empty
: VRAI pour ignorer les cellules vides, FAUX pour les inclure -
text1, [text2], …
: Les cellules, les plages ou les valeurs que vous souhaitez combiner
Par exemple, supposons que vous ayez des valeurs dans A1, A2 et A3. Vous voulez les joindre, en les séparant par des virgules, tout en sautant les blancs :
=TEXTJOIN(",", TRUE, A1:C1)
Si A2 est vide, vous n'obtiendrez que les valeurs de A1 et A3, séparées par une virgule.
Pourquoi cela est-il important ? D'autres fonctions (je pense à CONCATENATE()
) vous obligent à énumérer chaque cellule séparément et ne sautent pas les blancs. TEXTJOIN()
est plus court à taper et beaucoup plus facile à gérer.
TEXTJOIN() vs. CONCATENATE() vs. CONCAT()
Maintenant que nous avons abordé les bases de TEXTJOIN()
, il est intéressant de voir comment il se compare directement aux anciennes fonctions de texte d'Excel. Si vous avez utilisé CONCATENATE()
ou CONCAT()
, vous vous demandez peut-être pourquoi vous changeriez.
-
TEXTJOIN()
: Vous permet de spécifier un délimiteur et de sauter facilement les blancs. Accepte les gammes. -
CONCAT()
: Joint des plages ou des cellules de texte individuelles, mais vous ne pouvez pas spécifier de délimiteur. Il ne saute pas les blancs. -
CONCATENATE()
: L'option la plus ancienne. Vous oblige à spécifier chaque cellule une par une. Pas de champ délimiteur, pas de prise en charge des plages.
À titre d'exemple, joignons les valeurs de B1, B2 et B3 en les séparant par un point-virgule. Voici comment se présentent les différentes fonctions :
=TEXTJOIN(";", TRUE, A1:C1)
=CONCAT(B1:D1)
=CONCATENATE(B1, C1, D1)
Notez que TEXTJOIN()
est le seul à vous permettre de choisir un délimiteur sans complications supplémentaires. Avec CONCAT()
ou CONCATENATE()
, si vous voulez des délimiteurs, vous devez les ajouter manuellement :
=B1 & ";" & C1 & ";" & D1
De plus, et c'est peut-être tout aussi important, selon la structure de vos données, si une cellule est vide, TEXTJOIN()
peut l'ignorer pour vous. CONCATENATE()
et CONCAT()
incluront le vide.
Gestion des délimiteurs et des cellules vides
Permettez-moi d'en dire un peu plus sur ces deux problèmes courants : l'ajout de délimiteurs cohérents et l'ignorance des cellules vides.
Délimiteurs personnalisés
Il est probable que vous souhaitiez utiliser des délimiteurs différents selon les cas. Vous pouvez utiliser des virgules, des tuyaux, des nouvelles lignes ou même d'autres types de caractères comme séparateurs.
Pour joindre une barre verticale, utilisez ceci :
=TEXTJOIN("|", TRUE, D1:G1)
Vous pouvez également faire des choses plus spécialisées. Ici, j'utilise un espace-dash-space comme séparateur :
=TEXTJOIN(" - ", TRUE, D1:G1)
Vous pouvez même utiliser CHAR(10)
pour un saut de ligne, bien que vous deviez activer l'option Envelopper le texte dans le formatage de la cellule pour en voir l'effet.
Sauter des cases
L'une des choses les plus frustrantes dans l'assemblage de données est la gestion des blancs. TEXTJOIN()
vous permet de contrôler la situation. Fixez l'argument ignore_empty
à TRUE
, et les blancs sont entièrement supprimés.
=TEXTJOIN(", ", TRUE, E1:G1)
Résultat : "Rouge, bleu". La cellule vide (F2) est ignorée, de sorte que vous n'obtenez pas de virgule supplémentaire.
Si vous définissez ignore_empty
sur FALSE
:
=TEXTJOIN(", ", FALSE, E1:G1)
Le résultat est maintenant le suivant : "Rouge, bleu". Cette virgule supplémentaire se remarque (et n'est généralement pas ce que vous voulez). D'après mon expérience, TRUE
est généralement la meilleure solution.
Tout cela peut sembler une petite différence, mais si vous pratiquez un peu cette fonction, vous gagnerez du temps sur les nettoyages post-processus.
Création de listes et d'étiquettes dynamiques
Maintenant que vous avez vu les principes de base, explorons les façons dont TEXTJOIN()
peut résoudre les problèmes. Je me concentrerai sur deux scénarios que vous êtes susceptible de rencontrer : la création de résumés dynamiques et l'assemblage d'étiquettes à partir de données variables.
Créer des résumés à partir des données de l'utilisateur
Supposons que vous recueilliez les réponses d'une enquête dans laquelle les utilisateurs répondent par Oui/Non à une série de questions facultatives. Seule une partie d'entre eux répondra, de sorte que les résultats sont répartis entre F1 et J1.
Si vous souhaitez répertorier uniquement les questions auxquelles ils ont répondu "oui", vous pouvez utiliser TEXTJOIN()
en combinaison avec IF()
et FILTER()
(avec des tableaux dynamiques dans les nouvelles versions d'Excel).
Supposons que G1:G5 contienne le texte de la question et que F1:F5 contienne les réponses Oui/Non correspondantes :
=TEXTJOIN(", ", TRUE, FILTER(F2:J2, F1:J1="Yes"))
Votre cellule de sortie ne contient plus que les questions auxquelles l'utilisateur a répondu "Oui", séparées par des virgules.
Si vous ne disposez pas de tableaux dynamiques, vous pouvez créer une colonne d'aide qui n'affiche le texte de la question que si la réponse est Oui, puis joindre cette plage d'aide à TEXTJOIN()
.
Création d'étiquettes personnalisées à partir de données variables
Imaginez que vous prépariez des étiquettes d'expédition à partir d'un tableau dont certains champs (comme "Appartement" ou "Suite") sont parfois vides. Vous souhaitez réunir les composants d'adresse en une seule ligne.
Si votre adresse se trouve dans H1 ("123 Main St"), H2 ("Apt 4B" ou vide), H3 ("Springfield"), H4 ("IL"), H5 ("62704"), vous utiliserez :
=TEXTJOIN(", ", TRUE, H1:L1)
Si H2 est vide, votre résultat est toujours propre (pas de double virgule !) car TEXTJOIN()
ignore la cellule vide.
Il s'agit là d'exemples courants, mais la même logique s'applique partout où vous fusionnez des données avec des champs facultatifs ou des inclusions conditionnelles.
Autres éléments à prendre en compte
Aussi pratique que soit le site TEXTJOIN()
, il présente quelques inconvénients :
Utilisation de plusieurs plages avec TEXTJOIN()
Une chose à savoir à propos de TEXTJOIN()
est la façon dont il gère les plages multiples. Vous pouvez passer dans plus d'une gamme même si elles ne sont pas côte à côte, à condition de les énumérer séparément :
=TEXTJOIN(", ", TRUE, B1:D1, B2:D2)
Cela fonctionne très bien. Excel combinera les valeurs des deux plages et les joindra. N'oubliez pas : Vous ne pouvez pas les écrire sous la forme d'un tableau unique comme (A1:A3,C1:C3)
. Vous devez énumérer chaque plage comme son propre argument.
Fonctions imbriquées et tableaux dynamiques
Si vous utilisez TEXTJOIN()
dans le cadre d'une formule de tableau dynamique (comme avec UNIQUE()
ou FILTER()
), n'oubliez pas que vos arguments delimiter et ignore_empty
doivent toujours être des valeurs uniques. L'utilisation de tableaux renverra une erreur #VALUE!
.
Délimiteurs et formatage final
Parfois, vous ne voulez pas de délimiteur (vous souhaitez simplement regrouper tout le texte). Définissez le délimiteur à ""
(c'est-à-dire une chaîne vide) :
=TEXTJOIN("", TRUE, A1:C1)
Attention : si vous omettez le délimiteur, vous perdez le principal avantage de la fonction par rapport à CONCAT()
.
Si vous souhaitez créer des listes à utiliser en dehors d'Excel (comme des téléchargements CSV), faites attention aux espaces supplémentaires, aux sauts de ligne inattendus ou à l'encodage des caractères (en particulier si vous utilisez des symboles ou l'Unicode).
Fonctions connexes et techniques avancées
Au fur et à mesure que vous vous familiariserez avec TEXTJOIN()
, vous vous demanderez peut-être comment elle s'intègre aux autres fonctions "dynamiques" d'Excel. Souvent, en le combinant avec UNIQUE()
, FILTER()
, ou SORT()
, vous le rendez encore plus puissant.
Par exemple, supposons que vous souhaitiez regrouper toutes les catégories de produits uniques d'une liste :
=TEXTJOIN(", ", TRUE, UNIQUE(TRANSPOSE(A1:E1)))
Note: UNIQUE()
est orienté colonne par défaut dans Excel. Comme je travaillais suravec une ligne, j'ai également dû utiliser TRANSPOSE().
Ou bien vous ne voulez que ceux qui remplissent une certaine condition :
=TEXTJOIN(", ", TRUE, FILTER(A1:C1, A2:C2="Active"))
Ces deux exemples montrent comment TEXTJOIN()
peut résumer ou présenter des données sans colonnes d'aide ni filtrage manuel.
Conclusion
Si vous utilisez encore CONCATENATE()
ou si vous enchaînez manuellement les cellules, le passage à TEXTJOIN()
vous fera gagner du temps. (Je vous le promets !)
J'ajoute que l'apprentissage du site TEXTJOIN()
vous permet d'être à l'aise avec les échelles de valeurs. Cet état d'esprit est payant lorsque vous utilisez les fonctions de tableau dynamique d'Excel et d'autres approches plus modernes telles que . Suivez notre cours Fonctions Excel avancées pour continuer à apprendre.

Je suis rédacteur et éditeur dans le domaine de la science des données. Je suis particulièrement intéressé par l'algèbre linéaire, les statistiques, R, etc. Je joue également beaucoup aux échecs !