Google SheetsTableaux & ListesIntermédiaire

Fonction FLATTEN Google SheetsGuide Complet 2026 avec Exemples Pratiques

FLATTEN est une fonction puissante de Google Sheets qui transforme n'importe quel tableau multi-colonnes et multi-lignes en une seule colonne verticale. Que tu gères des plannings d'équipe, des inventaires répartis sur plusieurs colonnes, ou que tu veuilles consolider des listes d'emails issues de différentes campagnes, FLATTEN te fait gagner un temps précieux en évitant le copier-coller manuel fastidieux.

Dans ce guide complet, tu vas découvrir comment utiliser FLATTEN dans des contextes professionnels réels, avec des exemples concrets adaptés à différents métiers : responsable RH, gestionnaire de stock, responsable marketing, analyste financier. Tu verras aussi comment combiner FLATTEN avec d'autres fonctions puissantes comme FILTRE, UNIQUE, QUERY ou TRIER pour des analyses encore plus sophistiquées.

Tu apprendras également les alternatives disponibles dans Excel 365 (TOCOL, EMPILER) si tu travailles sur les deux plateformes, ainsi que les pièges à éviter et les astuces de pro pour tirer le meilleur parti de cette fonction dans tes tableaux de bord et tes rapports quotidiens.

Syntaxe de la fonction FLATTEN

=FLATTEN(plage1; [plage2]; [plage3]; ...)

La fonction FLATTEN peut accepter une ou plusieurs plages de cellules. Elle les parcourt ligne par ligne (de gauche à droite, puis de haut en bas) et retourne toutes les valeurs dans une seule colonne verticale. C'est particulièrement utile quand tes données sont organisées en grille mais que tu as besoin d'une liste simple pour un traitement ultérieur avec d'autres fonctions ou pour un export.

Astuce : FLATTEN est parfaite pour préparer des données avant de les exporter vers une base de données ou un CRM. La plupart des systèmes acceptent mieux les listes verticales que les tableaux bidimensionnels.

Comprendre chaque paramètre de FLATTEN

1

plage1

(obligatoire)
(obligatoire)

C'est la première plage ou le premier tableau que tu veux aplatir. Ça peut être une plage rectangulaire comme A1:C5, un tableau dynamique comme A:C (colonnes entières), ou même une seule cellule comme A1. C'est le seul paramètre obligatoire de la fonction.

FLATTEN parcourt cette plage de gauche à droite, ligne par ligne. Par exemple, pour A1:B3, elle lira A1, B1, puis A2, B2, puis A3, B3, et retournera ces 6 valeurs dans une colonne unique. L'ordre est toujours prévisible et cohérent.

Exemple : =FLATTEN(A1:D10) prendra toutes les valeurs du tableau A1:D10 (40 cellules) et les mettra en colonne verticale.

2

plage2, plage3, ...

(obligatoire)
(optionnel)

Tu peux ajouter autant de plages supplémentaires que nécessaire, séparées par des points-virgules. FLATTEN les combinera dans l'ordre où tu les as spécifiées. C'est parfait quand tu as des données non adjacentes que tu veux consolider sans avoir à les déplacer physiquement dans ton tableau.

Par exemple, =FLATTEN(A1:B5; D1:E5; G1:H5) aplatira d'abord A1:B5, puis ajoutera D1:E5, puis G1:H5, tout ça dans une seule colonne. Tu peux même mélanger des plages de tailles différentes, FLATTEN s'adapte automatiquement.

Exemple : Si tu as des listes de produits dans trois zones différentes de ta feuille (colonne A, colonne E, colonne J), tu peux tout consolider avec =FLATTEN(A2:A20; E2:E15; J2:J30).

Astuce de pro : Pour exclure les cellules vides du résultat, combine FLATTEN avec FILTRE : =FILTRE(FLATTEN(A1:C10); FLATTEN(A1:C10)<>""). Tu obtiendras une liste propre sans trous, parfaite pour les analyses ou les imports.

Exemples pratiques dans des contextes métier réels

Exemple 1 – Analyste de données : convertir une matrice pour analyse pivot

Tu es analyste de données et tu as reçu un tableau croisé avec des ventes par région (en lignes) et par trimestre (en colonnes). Pour créer un tableau croisé dynamique ou effectuer une analyse détaillée, tu as besoin de transformer cette matrice 2D en format tabulaire (une colonne pour les valeurs). FLATTEN va te permettre de préparer rapidement ces données pour l'analyse.

FLATTEN transforme la matrice en liste verticale : 125 000 €, 138 000 €, 142 000 €, 156 000 €, puis 98 000 €, etc.

ABCD
1T1T2T3T4
2125 000 €138 000 €142 000 €156 000 €
398 000 €105 000 €112 000 €119 000 €
467 000 €72 000 €78 000 €84 000 €
Formule :=FLATTEN(A2:D4)
Résultat :Liste de 12 valeurs de ventes en colonne

Une fois aplatie, tu peux utiliser cette liste avec d'autres fonctions : SOMME(FLATTEN(A2:D4)) pour le total, MOYENNE(FLATTEN(A2:D4)) pour la moyenne, ou MAX(FLATTEN(A2:D4)) pour identifier le meilleur trimestre.

Exemple 2 – Responsable IT : préparer des données pour import en base de données

Tu es responsable IT et tu dois importer une liste d'utilisateurs dans ton CRM, mais les données sont actuellement réparties en plusieurs colonnes (équipe A, équipe B, équipe C). La plupart des systèmes de base de données acceptent les imports au format CSV avec une seule colonne de données. FLATTEN va simplifier drastiquement cette préparation.

Tous les emails sont maintenant dans une seule colonne, prêts pour l'export CSV et l'import en base.

ABC
1Équipe DevÉquipe MarketingÉquipe Support
2alice@company.combob@company.comcharlie@company.com
3david@company.comeve@company.comfrank@company.com
4grace@company.comhenry@company.comiris@company.com
Formule :=FLATTEN(A2:C4)
Résultat :Liste de 9 emails en format import-ready

Tu peux ensuite exporter cette colonne au format CSV (Fichier → Télécharger → Valeurs séparées par des virgules) et l'importer directement dans ton système. Combine avec UNIQUE si tu veux éliminer les doublons : =UNIQUE(FLATTEN(A2:C4)).

Exemple 3 – Responsable marketing : créer une liste unique de contacts de multiples sources

Tu es responsable marketing et tu as collecté des emails de participants à trois événements différents (webinaire, conférence, salon professionnel), stockés dans trois colonnes différentes. Tu veux créer une liste unique d'emails pour envoyer une newsletter globale, en éliminant les doublons pour éviter d'envoyer plusieurs fois le même message.

FLATTEN consolide tous les emails, puis UNIQUE supprime automatiquement les doublons.

ABC
1WebinaireConférenceSalon
2alice@mail.combob@mail.comcharlie@mail.com
3david@mail.comeve@mail.comfrank@mail.com
4alice@mail.comgrace@mail.comhenry@mail.com
5ivan@mail.combob@mail.comjulia@mail.com
Formule :=UNIQUE(FLATTEN(A2:C5))
Résultat :Liste de 10 emails uniques (alice et bob apparaissaient 2 fois)

Cette technique est parfaite pour nettoyer des listes d'emails avant un envoi groupé avec des outils comme Mailchimp ou SendGrid. Tu peux aussi combiner avec FILTRE pour exclure certains domaines : =FILTRE(UNIQUE(FLATTEN(A2:C5)); NON(REGEXMATCH(UNIQUE(FLATTEN(A2:C5)); "@concurrent.com"))).

Exemple 4 – Contrôleur de gestion : normaliser des données budgétaires pour reporting

Tu es contrôleur de gestion et tu dois produire un rapport mensuel qui compare les dépenses de tous les départements. Tes données sont actuellement organisées en tableau croisé (départements en lignes, mois en colonnes), mais ton outil de reporting nécessite un format normalisé avec une valeur par ligne. FLATTEN va transformer ton tableau en format exploitable.

Les budgets sont maintenant en format liste, prêts pour l'import dans ton outil de reporting ou Power BI.

ABCD
1JanvierFévrierMarsAvril
245 000 €48 000 €52 000 €49 000 €
338 000 €41 000 €39 000 €43 000 €
429 000 €31 000 €33 000 €35 000 €
Formule :=FLATTEN(A2:D4)
Résultat :Liste de 12 montants normalisés

Une fois aplaties, tu peux facilement calculer des statistiques : =SOMME(FLATTEN(A2:D4)) pour le total (482 000 €), =MOYENNE(FLATTEN(A2:D4)) pour la moyenne mensuelle (40 167 €), ou =ECARTYPE(FLATTEN(A2:D4)) pour mesurer la volatilité.

Les erreurs fréquentes et comment les corriger

Erreur #NOM? : fonction non disponible dans Excel

FLATTEN est spécifique à Google Sheets. Si tu essaies de l'utiliser dans Excel, tu obtiendras une erreur #NOM? car Excel ne reconnaît pas cette fonction. C'est l'erreur la plus courante quand on bascule d'une plateforme à l'autre.

Solution : Dans Excel 365, utilise =TOCOL(plage) pour obtenir exactement le même résultat. TOCOL (to column) aplatit un tableau en une seule colonne. Pour les versions plus anciennes d'Excel (2019 et antérieures), tu devras utiliser une formule matricielle plus complexe avec INDEX et LIGNE, ou créer une macro VBA.

Cellules vides incluses dans le résultat

Par défaut, FLATTEN conserve toutes les cellules vides de la plage source. Si ton tableau a des trous (cellules vides dispersées), tu te retrouves avec des lignes vides dans le résultat, ce qui peut poser problème pour des analyses statistiques, des graphiques ou des jointures avec d'autres données.

Solution : Utilise FILTRE pour exclure les cellules vides : =FILTRE(FLATTEN(A1:C10); FLATTEN(A1:C10)<>""). Attention, FLATTEN apparaît deux fois dans cette formule car FILTRE a besoin de la plage à filtrer ET de la condition de test sur la même plage. Pour optimiser les performances sur de gros tableaux, stocke d'abord le résultat dans une cellule intermédiaire.

Résultat en format texte au lieu de nombres

Si tes cellules sources contiennent des nombres formatés en texte (souvent après un import CSV, un copier-coller depuis un PDF, ou une saisie manuelle avec une apostrophe), FLATTEN les conservera en format texte. Tu ne pourras pas faire de calculs mathématiques avec le résultat (SOMME retournera 0, les comparaisons ne fonctionneront pas correctement).

Solution : Multiplie par 1 pour forcer la conversion en nombre : =FLATTEN(A1:C10)*1, ou utilise ARRAYFORMULA(VALEUR(FLATTEN(A1:C10))) pour une conversion explicite. Si seules certaines cellules sont en texte, utilise ARRAYFORMULA(SI(ESTNUM(FLATTEN(A1:C10)); FLATTEN(A1:C10); VALEUR(FLATTEN(A1:C10)))).

Ordre des valeurs inattendu ou incorrect

Certains utilisateurs s'attendent à ce que FLATTEN lise colonne par colonne (de haut en bas, puis passe à la colonne suivante), alors qu'elle lit ligne par ligne (de gauche à droite, puis passe à la ligne suivante). Cela peut créer de la confusion dans l'ordre du résultat, surtout quand tu veux préserver un ordre chronologique ou alphabétique spécifique.

Solution : Si tu veux lire colonne par colonne au lieu de ligne par ligne, utilise d'abord TRANSPOSE pour inverser le tableau : =FLATTEN(TRANSPOSE(A1:C5)). TRANSPOSE convertit les colonnes en lignes, donc FLATTEN lira ensuite dans l'ordre colonne par colonne. Alternativement, utilise TRIER après FLATTEN si tu veux un ordre alphabétique ou numérique : =TRIER(FLATTEN(A1:C5)).

Performance lente sur de très gros tableaux

Si tu utilises FLATTEN sur des plages énormes (plusieurs milliers de lignes et colonnes), ou si tu combines plusieurs FLATTEN dans des formules complexes comme FILTRE(FLATTEN(...); FLATTEN(...)<>""), tu peux rencontrer des ralentissements significatifs. Google Sheets peut même afficher "Calcul en cours..." pendant plusieurs secondes.

Solution : Pour les formules avec FLATTEN répété (comme dans FILTRE), crée une colonne intermédiaire avec juste =FLATTEN(...), puis référence cette colonne dans tes autres formules. Pour les très gros volumes, considère l'utilisation de Google Apps Script pour traiter les données côté serveur, ou exporte vers BigQuery pour des analyses massives.

Astuces de pro pour maîtriser FLATTEN

Combiner FLATTEN avec QUERY pour des analyses SQL avancées

Tu peux aplatir un tableau puis le passer à QUERY pour effectuer des requêtes de type SQL : =QUERY(FLATTEN(A1:C10); "SELECT Col1 WHERE Col1 > 100 ORDER BY Col1 DESC"). C'est parfait pour filtrer, trier, grouper ou calculer des agrégations sur des données après les avoir consolidées. Tu peux même utiliser des fonctions d'agrégation comme COUNT, SUM, AVG directement dans QUERY.

Aplatir puis compter les occurrences de chaque valeur

Pour compter combien de fois chaque valeur apparaît dans un tableau complexe, aplatis d'abord avec FLATTEN puis utilise NB.SI sur chaque valeur unique : =NB.SI(FLATTEN(A1:E10); "Produit A"). Pour automatiser le comptage de toutes les valeurs, combine avec UNIQUE : crée une liste des valeurs uniques avec UNIQUE(FLATTEN(A1:E10)), puis utilise ARRAYFORMULA(NB.SI(FLATTEN(A1:E10); UNIQUE(FLATTEN(A1:E10)))) pour obtenir le décompte de chaque valeur.

Créer une liste déroulante dynamique à partir d'un tableau multi-colonnes

Utilise FLATTEN dans la validation des données pour créer une liste déroulante qui contient toutes les valeurs d'un tableau dispersé : sélectionne ta cellule, va dans Données → Validation des données, choisis "Liste d'une plage" et entre =UNIQUE(FILTRE(FLATTEN(A1:D10); FLATTEN(A1:D10)<>"")). La liste se mettra à jour automatiquement quand tu modifies le tableau source, et elle ne contiendra que des valeurs uniques et non vides.

Aplatir plusieurs tableaux non adjacents en une seule opération

Si tes données sont réparties dans différentes zones de ta feuille (ou même dans différents onglets), tu peux tout consolider en une seule formule : =FLATTEN(A1:B5; D1:E5; Feuille2!A1:C10; G1:H5; J1:K5). C'est beaucoup plus rapide et moins sujet aux erreurs que de copier-coller manuellement chaque section. Tu peux même référencer des plages nommées : =FLATTEN(Ventes_Q1; Ventes_Q2; Ventes_Q3; Ventes_Q4).

Utiliser FLATTEN pour générer des tags ou mots-clés uniques

Si tu gères une base de contenus (articles de blog, produits e-commerce, vidéos) avec plusieurs tags par ligne répartis sur plusieurs colonnes, aplatis tout avec FLATTEN puis utilise UNIQUE pour obtenir la liste complète des tags disponibles : =TRIER(UNIQUE(FLATTEN(B2:F100))). Parfait pour créer un index, un glossaire, ou alimenter un système de filtres dans une application. Combine avec NBVAL pour compter combien de contenus utilisent chaque tag.

Aplatir puis réorganiser en groupes avec ARRAYFORMULA

Pour aplatir un tableau puis le réorganiser en groupes de taille fixe, combine FLATTEN avec ARRAYFORMULA et des calculs de modulo : =ARRAYFORMULA(SI(MOD(LIGNE(FLATTEN(A1:C10))-1; 3)=0; FLATTEN(A1:C10); "")) affichera seulement toutes les 3 valeurs. Utile pour créer des échantillons ou des sous-ensembles régulièrement espacés dans tes données aplaties.

FLATTEN vs fonctions similaires : tableau comparatif

CritèreFLATTENTRANSPOSETOCOL (Excel)TOROW (Excel)EMPILAGE.V
Plateforme✅ Google Sheets✅ Les deux✅ Excel 365✅ Excel 365✅ Excel 365
Aplatit en colonne✅ Oui❌ Inverse L/C✅ Oui❌ En ligne✅ Oui (vertical)
Plusieurs plages✅ Oui, illimité❌ Une seule❌ Une seule❌ Une seule✅ Oui, plusieurs
Gestion des videsLes conserveLes conserveOption ignorerOption ignorerLes conserve
Ordre de lectureLigne par ligneInverse axesChoix L/CChoix L/CPlage par plage
Cas d'usage principalConsolidationPivoter tableauAplatir ExcelListe horizontaleEmpiler plages
Facilité d'usage⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

Utilise FLATTEN si tu travailles sur Google Sheets et que tu veux consolider plusieurs tableaux ou plages en une seule liste verticale. C'est la solution la plus simple et la plus flexible pour ce cas d'usage.

Utilise TOCOL si tu travailles sur Excel 365 et que tu veux aplatir une seule plage en colonne. TOCOL offre l'avantage de pouvoir ignorer les cellules vides nativement avec le paramètre ignorer.

Utilise TRANSPOSE si tu veux simplement inverser les lignes et colonnes d'un tableau sans vraiment l'aplatir, ou si tu veux changer l'ordre de lecture avant d'utiliser FLATTEN : =FLATTEN(TRANSPOSE(...)).

Utilise EMPILAGE.V (VSTACK) si tu travailles sur Excel 365 et que tu veux empiler verticalement plusieurs plages tout en conservant leur structure de colonnes multiples. C'est différent de FLATTEN qui crée une seule colonne.

Questions fréquentes sur FLATTEN

FLATTEN fonctionne-t-elle dans Excel ?

FLATTEN est spécifique à Google Sheets. Dans Excel 365, tu peux utiliser TOCOL ou EMPILER pour obtenir un résultat similaire. TOCOL aplatit un tableau en une colonne, exactement comme FLATTEN. Si tu utilises une version plus ancienne d'Excel, tu devras utiliser des formules combinées avec INDIRECT ou des macros VBA pour obtenir le même résultat.

Comment FLATTEN gère-t-elle les cellules vides ?

Par défaut, FLATTEN conserve les cellules vides dans le résultat final. Si tu veux les exclure, combine FLATTEN avec FILTRE : =FILTRE(FLATTEN(plage); FLATTEN(plage)<>""). Cela te permet d'obtenir uniquement les valeurs non vides, parfait pour créer des listes propres et faciliter les analyses ou les exports de données.

Peut-on aplatir plusieurs plages non adjacentes avec FLATTEN ?

Oui ! FLATTEN accepte plusieurs arguments séparés par des points-virgules : =FLATTEN(A1:B5; D1:E3; F10:G15). La fonction combine automatiquement toutes les plages dans l'ordre où tu les as spécifiées, ce qui est parfait pour consolider des données dispersées dans ton tableau sans avoir à tout copier-coller manuellement.

FLATTEN préserve-t-elle l'ordre des données ?

Oui, FLATTEN lit les données ligne par ligne, de gauche à droite, puis passe à la ligne suivante. Par exemple, pour un tableau 2×3, elle lira A1, B1, C1, puis A2, B2, C2. Cet ordre est prévisible et cohérent, ce qui facilite la manipulation des données aplaties. Si tu veux un ordre différent, combine FLATTEN avec TRANSPOSE ou TRIER.

Quelle est la différence entre FLATTEN et TRANSPOSE ?

FLATTEN transforme tout en une seule colonne verticale, tandis que TRANSPOSE inverse simplement les lignes et colonnes (les lignes deviennent des colonnes et vice-versa). Utilise FLATTEN pour consolider des données en une liste unique, et TRANSPOSE pour pivoter un tableau tout en conservant sa structure bidimensionnelle. Tu peux même combiner les deux pour des transformations plus complexes.

Fonctions similaires et complémentaires

Deviens un expert d'Excel et Google Sheets

Tu maîtrises maintenant FLATTEN et ses cas d'usage professionnels ! Rejoins Le Dojo Club pour découvrir les autres fonctions puissantes de tableaux (QUERY, ARRAYFORMULA, FILTER...) et automatiser tes tâches quotidiennes avec des formules avancées et des scripts personnalisés.

Essayer pendant 30 jours