Qu'est-ce que la fonction TABLEAU. EN. TEXTE ?
Tu sors TABLEAU.EN.TEXTE (ARRAYTOTEXT en anglais) quand une plage entière doit sortir d'Excel sous forme de texte brut, pour un email, un message ou un champ qui n'accepte pas plusieurs cellules, sans reconstruire la chaîne à la main à chaque mise à jour des données.
Concrètement, c'est elle qui génère en une formule une liste d'emails séparés par des virgules depuis une plage de contacts, formate les lignes d'un inventaire en texte narratif pour un email, prépare des données tabulaires pour un import dans un outil externe, ou crée un export CSV dynamique qui se met à jour quand tes données changent.
Syntaxe
=TABLEAU.EN.TEXTE(tableau; [col_délimiteur]; [ligne_délimiteur]; [vide]; [mode_format])Clique sur un argument pour aller à son explication.
Si tu omets tous les paramètres optionnels, TABLEAU.EN.TEXTE utilise la virgule pour séparer les colonnes et le point-virgule pour séparer les lignes, en format concis (mode 0). Pour créer de vrais sauts de ligne dans le résultat, utilise CAR(10) comme délimiteur de lignes et active « Renvoyer à la ligne automatiquement » dans le format de cellule.

Comprendre chaque paramètre de la fonction TABLEAU.EN.TEXTE
Seul le premier argument, le tableau à convertir, est obligatoire ; les quatre suivants viennent dans un ordre fixe et tu peux les laisser tomber. Mais attention : si tu veux choisir le délimiteur de lignes, tu dois aussi écrire celui des colonnes avant lui, même pour reprendre la virgule par défaut. Les deux derniers, vide et mode_format, sont ceux qui décident si tes cellules vides disparaissent et si le texte sort avec ou sans accolades.
tableau
: le tableau ou la plage de cellules à convertir en texteIl peut s'agir d'une seule colonne, d'une seule ligne, ou d'un tableau complet avec plusieurs lignes et colonnes. Tu peux référencer une plage (A1:C10) ou un tableau structuré (TableauProduits[Prix]).
Tu peux aussi passer le résultat d'une fonction de tableau dynamique : FILTRE(A:C; B:B>1000) te donne uniquement les lignes qui correspondent à ton critère avant la conversion en texte.
[col_délimiteur]
: le caractère ou la chaîne qui séparera les valeurs de différentes colonnes(facultatif)Par défaut, Excel utilise la virgule. Tu peux utiliser ", " (virgule + espace) pour plus de lisibilité, "|" pour un format tabulaire, " - " pour un format narratif, ou CAR(9) pour une tabulation.
Pour un export CSV standard compatible avec la plupart des outils, utilise "," comme délimiteur de colonnes.
[ligne_délimiteur]
: le caractère ou la chaîne qui séparera les différentes lignes du tableau(facultatif)Par défaut, Excel utilise le point-virgule. Pour créer un vrai saut de ligne visible dans la cellule, utilise CAR(10) (retour à la ligne Unix) ou CAR(13)&CAR(10) (retour chariot Windows).
Pour du HTML, tu peux utiliser "<br>". Pour un format SQL, utilise "), (" pour séparer les tuples.
[vide]
(facultatif)Contrôle le traitement des cellules vides.
- 0 (par défaut) : les cellules vides sont ignorées, ce qui peut raccourcir le résultat et décaler les positions.
- 1 : les cellules vides sont conservées comme positions vides dans le texte, ce qui maintient l'alignement et la structure du tableau original.
Attention : Avec vide = 1, les cellules vides génèrent des délimiteurs successifs (comme ,, dans un CSV), ce qui peut provoquer des erreurs d'import. Préfère vide = 0 ou remplis les cellules vides avec SIERREUR avant d'appliquer TABLEAU.EN.TEXTE.
[mode_format]
(facultatif)Détermine le style de sortie.
- 0 (par défaut, mode concis) : produit un résultat simple et lisible, parfait pour l'affichage, les emails et les exports standards.
- 1 (mode strict) : génère une syntaxe Excel valide avec accolades et guillemets autour des textes, idéal pour copier-coller le résultat directement dans une autre formule comme argument de tableau constant.

Exemples pratiques pas à pas
Comment réunir une colonne d'emails en une seule cellule avec la fonction TABLEAU.EN.TEXTE
Tu dois envoyer une invitation aux dix-huit contacts de ta base, et ton outil d'emailing attend une liste collée d'un bloc dans un seul champ, pas dix-huit cellules. Recopier les adresses une par une est long, et un oubli se voit tout de suite. La fonction TABLEAU.EN.TEXTE ramène toute la colonne à une chaîne unique, prête à copier.
- 1Dans une cellule, écris
=TABLEAU.EN.TEXTE(. - 2En 1er argument : sélectionne les dix-huit adresses à mettre bout à bout,
B2:B19. La plage démarre en ligne 2 pour laisser de côté l'en-têteEmail, et la fonction lit la colonne de haut en bas dans cet ordre. - 3Ferme la parenthèse et appuie sur Entrée. Comme tu n'ajoutes rien après la plage, la fonction applique son format concis et sépare les valeurs par un point-virgule suivi d'une espace.
=TABLEAU.EN.TEXTE(B2:B19)Comment convertir une plage en tableau littéral avec la fonction TABLEAU.EN.TEXTE
Tu mets au point une formule et tu voudrais y figer ces trois lignes en dur, sous forme de tableau littéral, pour la tester sans dépendre de la feuille. Retaper les accolades, les guillemets et les bons séparateurs à la main est le meilleur moyen de se tromper. Le second argument de la fonction TABLEAU.EN.TEXTE produit cette écriture directement.
- 1Dans une cellule, écris
=TABLEAU.EN.TEXTE(. - 2En 1er argument : sélectionne les trois produits avec leur quantité,
A2:B4. Contrairement à l'exemple précédent, la plage fait deux colonnes de large, et la fonction accepte sans broncher ces tableaux à deux dimensions. - 3En 2ᵉ argument : saisis la valeur qui réclame le format strict,
1. La fonction encadre alors le résultat d'accolades, met les textes entre guillemets et laisse les nombres nus. Seules les valeurs0et1sont acceptées, car ce n'est pas un séparateur mais un choix de format. - 4Ferme la parenthèse et appuie sur Entrée.
=TABLEAU.EN.TEXTE(A2:B4; 1)Clavier passe entre guillemets parce que c'est du texte, 12 reste nu parce que c'est un nombre, le point sépare les deux colonnes et le point-virgule sépare les lignes. Sans ce second argument, la fonction aurait tout aplati en Clavier; 12; Souris; 30; Écran; 7, sans distinguer les lignes des colonnes.Comment lister les villes distinctes en une cellule avec les fonctions TABLEAU.EN.TEXTE et UNIQUE
En haut de ton rapport, tu veux une ligne qui annonce les villes couvertes, sans les répéter autant de fois qu'il y a de contacts. La colonne Ville ne contient que des doublons, et la phrase doit tenir dans une seule cellule. Les deux fonctions s'enchaînent : l'une élimine les répétitions, l'autre met le résultat à plat.
- 1Dans une cellule, écris
=TABLEAU.EN.TEXTE(. - 2En 1er argument : écris la liste débarrassée de ses doublons et referme-la,
UNIQUE(A2:A7). La fonction UNIQUE ramène d'abord les six lignes de la colonne à ses deux valeurs distinctes,ParisetLyon, que la fonction TABLEAU.EN.TEXTE reçoit ensuite comme n'importe quelle plage. - 3Ferme la parenthèse de la fonction TABLEAU.EN.TEXTE et appuie sur Entrée. Celle de la fonction UNIQUE a déjà été refermée dans le premier argument.
=TABLEAU.EN.TEXTE(UNIQUE(A2:A7))Paris sort avant Lyon parce qu'il apparaît en premier dans la colonne.
Les erreurs fréquentes avec la fonction TABLEAU.EN.TEXTE
Le souci qui revient le plus souvent n'est même pas une vraie erreur : tu mets CAR(10) comme séparateur de lignes et le résultat reste écrasé sur une seule ligne, parce que la cellule n'affiche pas les sauts de ligne tant que tu n'as pas coché « Renvoyer à la ligne automatiquement ». Les autres pièges touchent surtout tes exports CSV : un mode 1 qui colle des accolades partout, des cellules vides qui doublent les virgules, ou une virgule déjà présente dans tes données qui casse le parsage.
Délimiteurs CAR(10) non visibles : le résultat s'affiche sur une seule ligne
Quand tu utilises CAR(10) comme délimiteur de lignes, Excel insère bien des sauts de ligne dans le texte, mais la cellule n'est pas configurée pour les afficher. Elle compresse tout sur une seule ligne.
Solution : Active « Renvoyer à la ligne automatiquement » pour la cellule résultat (Ctrl+1, onglet Alignement). Tu peux aussi copier le résultat dans un éditeur de texte (Notepad, Word) pour voir les vrais sauts de ligne.
Confusion entre mode 0 et mode 1 : guillemets et accolades non désirés
Le mode 1 (strict) ajoute des accolades {} autour du résultat et des guillemets "" autour de chaque valeur texte. Si tu veux un export propre sans ces caractères, ce mode n'est pas adapté.
Solution : Utilise le mode 0 (ou omets ce paramètre) pour les exports standards vers des emails, des fichiers texte ou des outils externes. Réserve le mode 1 uniquement quand tu veux copier le résultat comme argument de tableau constant dans une autre formule Excel.
Délimiteurs doublés avec des cellules vides : format CSV cassé
Avec vide = 1, les cellules vides conservent leur position et génèrent des délimiteurs successifs (comme ,, dans un CSV). Certains outils d'import interprètent alors ,, comme deux champs vides, ce qui décale toutes les colonnes suivantes.
Solution : Utilise vide = 0 (par défaut) pour ignorer les cellules vides, ou remplis-les d'abord avec SI.VIDE(cellule; "") ou SIERREUR(valeur; "") avant d'appliquer TABLEAU.EN.TEXTE.
Résultat tronqué sur les très grands tableaux
Les cellules Excel ont une limite de 32 767 caractères. Si ton tableau est très grand, le résultat de TABLEAU.EN.TEXTE peut dépasser cette limite et être tronqué silencieusement.
Solution : Divise ton tableau en plusieurs parties avec FILTRE ou DECALER et applique TABLEAU.EN.TEXTE sur chaque partie. Pour les exports vraiment volumineux, utilise plutôt « Enregistrer sous » vers le format CSV directement depuis Excel.
Caractères spéciaux qui cassent le format CSV lors de l'import
Si tes données contiennent déjà la virgule utilisée comme délimiteur (par exemple des adresses comme « 3, rue de la Paix »), le fichier CSV résultant sera mal parsé : le texte après la virgule sera interprété comme une nouvelle colonne.
Solution : Utilise le mode 1 qui entoure automatiquement les textes de guillemets, ou choisis un délimiteur rare comme "|" ou CAR(9) (tabulation) que tes données ne contiennent pas.

TABLEAU.EN.TEXTE vs JOINDRE.TEXTE vs CONCATENER vs TEXTE.FRACTIONNER
Sors TABLEAU.EN.TEXTE dès que ton tableau a plusieurs colonnes ET plusieurs lignes : c'est la seule des quatre qui gère deux délimiteurs à la fois et un vrai tableau 2D. Pour une liste à une seule dimension, JOINDRE.TEXTE suffit et tourne dès Excel 2019, alors que TABLEAU.EN.TEXTE réclame Excel 365. Garde CONCATENER pour assembler deux ou trois cellules à la main, et TEXTE.FRACTIONNER quand tu fais l'opération inverse, transformer du texte en tableau.
| Critère | TABLEAU.EN.TEXTE | JOINDRE.TEXTE | CONCATENER | TEXTE.FRACTIONNER |
|---|---|---|---|---|
| Délimiteurs | Colonnes ET lignes (deux délimiteurs) | Un seul délimiteur | Aucun (manuel entre chaque valeur) | Colonnes ET lignes (inverse) |
| Tableaux 2D | Oui, natif | Non (1D seulement) | Non | Oui, en sens inverse |
| Gestion des cellules vides | Paramètre dédié (0 ou 1) | Paramètre dédié | Non (inclut toujours) | Paramètre dédié |
| Disponibilité | Excel 365 uniquement | Excel 2019+ | Toutes versions | Excel 365 uniquement |
| Cas d'usage typique | Export CSV, SQL, format narratif | Liste simple à une dimension | Assemblage de quelques cellules | Importer du texte en tableau |
Questions fréquentes
TABLEAU.EN.TEXTE convertit un tableau complet en texte avec deux délimiteurs distincts (un pour les colonnes, un pour les lignes), ce qui te donne un contrôle total sur la structure du résultat pour des tableaux 2D. JOINDRE.TEXTE n'utilise qu'un seul délimiteur et est mieux adapté aux listes simples sur une dimension. Dès que tu as plusieurs colonnes à inclure, TABLEAU.EN.TEXTE est plus adapté.
Le paramètre vide contrôle ce comportement. Avec 0 (par défaut), les cellules vides sont ignorées. Avec 1, elles sont conservées dans le résultat, ce qui maintient la structure du tableau mais génère des délimiteurs successifs dans le texte. Pour les exports CSV, privilégie vide = 0 ou remplis les cellules vides avec une valeur de remplacement avant la conversion.
Oui, c'est précisément son point fort. Tu définis un délimiteur pour séparer les colonnes (comme une virgule) et un autre pour séparer les lignes (comme un saut de ligne avec CAR(10)). Le résultat reflète fidèlement la structure 2D de ton tableau source, contrairement à JOINDRE.TEXTE qui n'a qu'un seul niveau de délimitation.
Oui, c'est un des cas d'usage les plus courants. Utilise "," comme délimiteur de colonnes et CAR(10) comme délimiteur de lignes pour un CSV standard : =TABLEAU.EN.TEXTE(A1:D10; ","; CAR(10); 0; 0). Pour gérer les textes qui contiennent des virgules, passe en mode 1 qui ajoute automatiquement des guillemets autour de chaque valeur texte.
Pour les tuples SQL, utilise ", " comme délimiteur de colonnes et "), (" comme délimiteur de lignes. Tu obtiens le cœur de la clause VALUES. Enveloppe ensuite avec CONCATENER pour ajouter INSERT INTO table VALUES ( au début et ) à la fin. Si tes valeurs texte doivent être entre apostrophes SQL, utilise le mode 1 ou gère les guillemets manuellement.
Pour aller plus loin
Continue sur ta lancée après la fonction TABLEAU.EN.TEXTE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



