Retour aux fonctions

FLATTEN

Aplatit toutes les valeurs d'une ou plusieurs plages en une seule colonne.

ArrayFLATTEN(range1,[range2,...])

FLATTEN prend une ou plusieurs plages et renvoie toutes leurs valeurs dans une seule colonne. Elle lit ligne par ligne, de gauche à droite, et ignore la forme d'origine. C'est l'outil pour transformer une grille en liste, ou pour empiler plusieurs plages en une seule.

Syntaxe

=FLATTEN(range1, [range2, ...])
  • range1 : La plage ou le tableau à aplatir.
  • range2, ... [Facultatif] : D'autres plages à ajouter au résultat.

Les valeurs sont lues ligne par ligne : toute la ligne 1 de gauche à droite, puis toute la ligne 2, et ainsi de suite.

Exemple de base

Avec cette grille en A1:C2 :

   A    B    C
1  a    b    c
2  d    e    f
=FLATTEN(A1:C2)

Renvoie une seule colonne : a, b, c, d, e, f.

Pour lire colonne par colonne, faites d'abord pivoter :

=FLATTEN(TRANSPOSE(A1:C2))

Renvoie a, d, b, e, c, f.

Aplatir plusieurs plages

Passez plusieurs plages pour les empiler dans une seule liste. Elles n'ont pas besoin d'avoir la même forme :

=FLATTEN(A2:A10, C2:D10, F2:F10)

C'est pratique pour combiner plusieurs colonnes d'étiquettes ou d'e-mails en une seule liste.

Usages courants

Valeurs uniques d'une grille entière

=UNIQUE(FLATTEN(A2:E100))

Renvoie les valeurs distinctes sur un nombre quelconque de colonnes : par exemple toutes les étiquettes uniques d'un tableau comportant cinq colonnes d'étiquettes. Ajoutez FILTER pour écarter les cellules vides :

=SORT(UNIQUE(FILTER(FLATTEN(A2:E100), FLATTEN(A2:E100) <> "")))

Compter les éléments d'une grille

=COUNTA(FLATTEN(A2:E100))

Diviser du texte, puis aplatir

SPLIT se déverse sur plusieurs colonnes. Utilisez FLATTEN pour transformer les morceaux issus de nombreuses cellules en une seule liste propre :

=FLATTEN(ARRAYFORMULA(SPLIT(A2:A10, ", ")))

À partir d'une colonne d'étiquettes séparées par des virgules, cette formule renvoie toutes les étiquettes dans une seule colonne.

Transformer une grille en liste pour un graphique ou QUERY

Un tableau large (une colonne par mois) est peu pratique à représenter ou à interroger. FLATTEN transforme les valeurs en une seule colonne, première étape vers une disposition d'un enregistrement par ligne. Voir Maîtriser les formules matricielles pour des techniques voisines.

Tout réunir dans une seule cellule

=TEXTJOIN(", ", TRUE, FLATTEN(A1:C5))

TEXTJOIN accepte déjà des plages, mais FLATTEN permet de combiner des plages non adjacentes ou le résultat d'autres fonctions.

Comportement à connaître

  • Les cellules vides sont conservées. Les cellules vides ressortent comme des cellules vides. Filtrez-les avec FILTER(..., ... <> "").
  • Les types de données sont préservés. Les nombres restent des nombres, les dates restent des dates.
  • L'ordre est ligne par ligne. Si vous attendiez un ordre colonne par colonne, utilisez d'abord TRANSPOSE.

Erreurs courantes

  • #REF! : le résultat de la matrice n'a pas été développé. Les cellules sous la formule ne sont pas vides. Videz-les.
  • #N/A ou cellules vides inattendues dans le résultat. La source contient des cellules vides ou des erreurs, que FLATTEN laisse passer. Nettoyez la source ou filtrez le résultat.
  • Trop de données. Aplatir des colonnes entières comme A:E crée des milliers de lignes vides. Utilisez des plages bornées ou filtrez les cellules vides.

FLATTEN, TRANSPOSE ou accolades ?

Les accolades {A1:A5; B1:B5} empilent des plages mais exigent qu'elles aient le même nombre de colonnes. FLATTEN accepte des plages de n'importe quelle forme. TRANSPOSE change l'orientation mais garde la forme du tableau. FLATTEN renvoie toujours une seule colonne.

Questions fréquentes

FLATTEN supprime-t-elle les doublons ou les cellules vides ? Non, utilisez UNIQUE et FILTER pour cela.

Peut-on aplatir un résultat qui se déverse ? Oui, imbriquez-le : =FLATTEN(SPLIT(A1, ",")).

Et si je veux une ligne plutôt qu'une colonne ? Entourez-la : =TRANSPOSE(FLATTEN(A1:C5)).

Fonctions associées

  • TRANSPOSE : Échanger les lignes et les colonnes.
  • UNIQUE : Supprimer les doublons de la liste.
  • FILTER : Écarter les cellules vides ou sélectionner des valeurs précises.
  • SPLIT : Diviser du texte en morceaux.
  • TEXTJOIN : Réunir des valeurs en une seule chaîne de texte.

Articles associés

Newsletter

Plus d'exemples sur FLATTEN arrivent bientôt.

Nous préparons des mises à jour courtes et pratiques pour les utilisateurs avancés de Sheets.