TABLEAU.EN.TEXTE (ARRAYTOTEXT en anglais) est une fonction Excel 365 qui convertit un tableau de données en une chaîne de texte formatée. Tu peux définir des délimiteurs personnalisés pour les colonnes et pour les lignes, ce qui te permet de créer des formats spécifiques comme des listes CSV, des valeurs pour des requêtes SQL, ou des exports personnalisés.
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 de la fonction TABLEAU.EN.TEXTE
=TABLEAU.EN.TEXTE(tableau; [col_délimiteur]; [ligne_délimiteur]; [vide]; [mode_format])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.
Astuce : Combine TABLEAU.EN.TEXTE avec FILTRE, TRIER ou UNIQUE pour créer des exports dynamiques qui se mettent à jour automatiquement quand tes données source changent.
[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.
Astuce : Si tu utilises CAR(10) comme délimiteur de lignes, active « Renvoyer à la ligne automatiquement » dans le format de la cellule résultat (Ctrl+1) pour voir les sauts de ligne s'afficher correctement.
[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.
Pas envie d'écrire la formule TABLEAU.EN.TEXTE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Responsable marketing : créer une liste d'emails pour un envoi groupé
Tu as une base de contacts et tu veux créer une liste d'adresses email pour la coller directement dans le champ « À : » de ton client de messagerie ou dans un outil d'emailing. Sans TABLEAU.EN.TEXTE, tu devrais copier-coller chaque adresse une par une.
| A | B | |
|---|---|---|
| 1 | Nom | |
| 2 | Sophie Martin | sophie.martin@entreprise.fr |
| 3 | Lucas Dubois | lucas.dubois@entreprise.fr |
| 4 | Emma Bernard | emma.bernard@entreprise.fr |
| 5 | Thomas Petit | thomas.petit@entreprise.fr |
=TABLEAU.EN.TEXTE(B2:B5; ", "; ""; 0; 0)La fonction concatène les quatre adresses séparées par ", ". Le délimiteur de lignes est une chaîne vide car tu veux tout sur une seule ligne. Quand tu ajoutes un contact dans ta liste, le résultat s'allonge automatiquement.
Astuce de pro : Filtre d'abord ta liste avec FILTRE() avant de passer à TABLEAU.EN.TEXTE pour n'exporter que les contacts d'un segment spécifique : =TABLEAU.EN.TEXTE(FILTRE(B2:B100; C2:C100="VIP"); ", "; ""; 0; 0).
Développeur : générer des valeurs pour une requête SQL INSERT
Tu dois insérer des données dans une base SQL et tu veux générer rapidement la liste de valeurs depuis ton tableau Excel. Plutôt que de taper manuellement chaque ligne, tu laisses TABLEAU.EN.TEXTE formater les données.
| A | B | C | |
|---|---|---|---|
| 1 | ID | Produit | Prix |
| 2 | 1 | Laptop | 999 |
| 3 | 2 | Souris | 29 |
| 4 | 3 | Clavier | 79 |
=TABLEAU.EN.TEXTE(A2:C4; ", "; "), ("; 0; 0)La fonction sépare les colonnes par ", " et les lignes par "), (". Tu obtiens un fragment à insérer entre INSERT INTO produits VALUES ( et ) (combine avec CONCATENER pour la requête complète).
Chargé de reporting : exporter un tableau de ventes en format lisible
Tu dois envoyer un récapitulatif des ventes par email sans pièce jointe, directement dans le corps du message. Tu veux un format tabulaire lisible avec des sauts de ligne entre chaque enregistrement.
| A | B | C | |
|---|---|---|---|
| 1 | Date | Client | Montant |
| 2 | 01/01/2025 | Entreprise A | 5 000 € |
| 3 | 02/01/2025 | Entreprise B | 3 200 € |
| 4 | 03/01/2025 | Entreprise C | 7 800 € |
=TABLEAU.EN.TEXTE(A2:C4; " | "; CAR(10); 0; 0)La fonction sépare les colonnes par | et les lignes par un vrai saut de ligne (CAR(10)). Active « Renvoyer à la ligne automatiquement » dans le format de cellule pour voir le résultat sur plusieurs lignes, puis copie-colle dans ton email.
Gestionnaire des stocks : résumé narratif d'inventaire
Tu dois inclure un résumé de ton inventaire dans un rapport PDF ou un email sans fichier attaché. Tu veux un format narratif fluide, pas un tableau.
| A | B | C | |
|---|---|---|---|
| 1 | Article | Quantité | Emplacement |
| 2 | Ordinateurs portables | 15 | Bureau A |
| 3 | Écrans | 28 | Bureau B |
| 4 | Claviers | 42 | Entrepôt |
=TABLEAU.EN.TEXTE(A2:C4; " - "; ", "; 0; 0)La fonction sépare les colonnes par - et les lignes par , . Tu obtiens une phrase compacte à insérer directement dans le corps de ton rapport, et qui se met à jour automatiquement quand tu modifies les quantités dans Excel.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 sur la fonction TABLEAU.EN.TEXTE
Quelle est la différence entre TABLEAU.EN.TEXTE et JOINDRE.TEXTE ?
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é.
Comment gérer les cellules vides avec TABLEAU.EN.TEXTE ?
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.
TABLEAU.EN.TEXTE fonctionne-t-elle avec des tableaux multidimensionnels ?
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.
Puis-je utiliser TABLEAU.EN.TEXTE pour créer des listes CSV ?
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.
Quel délimiteur utiliser pour créer des valeurs SQL ?
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
Les fonctions similaires : FRACTIONNER.TEXTE, JOINDRE.TEXTE, CONCATENER, CONCAT, FILTRE
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

