Aller au contenu principal

Qu'est-ce que la fonction DANSCOL ?

Définition
La fonction DANSCOL transforme un tableau rectangulaire en une seule colonne verticale. Elle lit les valeurs ligne par ligne (par défaut) ou colonne par colonne, avec la possibilité d'ignorer les vides et les erreurs.

DANSCOL (TOCOL en anglais) te sert quand une fonction en aval, comme UNIQUE ou NB.SI, n'accepte qu'une plage à une seule dimension, alors que tes données sont réparties sur plusieurs colonnes. Elle t'évite de recomposer cette liste à la main à chaque fois que le tableau source change.

Introduite avec Excel 365, elle s'avère précieuse pour préparer une liste à partir d'une matrice de compétences, alimenter un graphique depuis un tableau croisé, dédoublonner des données réparties sur plusieurs colonnes avec UNIQUE, ou simplement réorganiser tes informations pour qu'elles entrent dans une autre formule dynamique. Ce qui prenait avant une macro ou un copier-coller minutieux se fait maintenant en une seule formule.

Syntaxe

Clique sur un argument pour aller à son explication.

DANSCOL est disponible uniquement dans Excel 365 et Excel 2021+. Dans Google Sheets, la fonction équivalente s'appelle FLATTEN.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction DANSCOL

DANSCOL n'a qu'une seule entrée obligatoire, tableau : le bloc de cellules que tu veux empiler en colonne. Les deux suivants sont facultatifs mais positionnels, donc [ignorer] passe toujours avant [par_colonne]. [ignorer] attend un chiffre (1 pour sauter les vides, 2 pour les erreurs, 3 pour les deux), et [par_colonne] à VRAI bascule la lecture de gauche-droite vers haut-bas, ce qui change tout l'ordre du résultat.

1

tableau

: le tableau ou la plage de cellules à transformer en colonne

Ça peut être une référence comme A1:D10, un tableau nommé, ou le résultat d'une autre fonction dynamique comme FILTRE ou TRIER.

Toutes les cellules du tableau seront extraites et empilées dans une seule colonne verticale. Le nombre total de cellules du résultat est égal au nombre de lignes multiplié par le nombre de colonnes du tableau source.

2

[ignorer]

: indique quels types de valeurs ignorer dans la colonne résultat(facultatif)

C'est un code numérique : 0 pour ne rien ignorer (comportement par défaut), 1 pour ignorer les cellules vides, 2 pour ignorer les erreurs, et 3 pour ignorer les deux simultanément.

Ce paramètre est particulièrement utile quand tu travailles avec des données importées qui contiennent des trous ou des erreurs que tu ne veux pas voir apparaître dans ta liste consolidée.

3

[par_colonne]

: définit l'ordre de lecture du tableau(facultatif)

Avec la valeur par défaut FAUX, DANSCOL lit par lignes (de gauche à droite, puis ligne suivante, comme on lit un texte). Avec VRAI, elle lit par colonnes (de haut en bas, puis colonne suivante).

Ce paramètre change fondamentalement l'ordre des résultats et est crucial quand tu combines DANSCOL avec d'autres fonctions comme UNIQUE ou INDEX.

Attention : L'ordre de lecture est crucial quand tu combines DANSCOL avec d'autres fonctions. Assure-toi de choisir le bon mode selon tes besoins, surtout pour des données chronologiques où la séquence a du sens.

Le savais-tu ?
Le deuxième argument filtre à la volée : 1 saute les cellules vides, 2 les erreurs, 3 les deux. DANSCOL(plage; 1) te rend une colonne compacte, sans les trous d'un planning ou d'un import.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment transformer un tableau en une seule colonne avec la fonction DANSCOL

Tu prépares le plan de formation de l'année et tu dois savoir quels outils l'équipe maîtrise déjà. Les compétences sont rangées par domaine, une colonne pour la bureautique, une pour la data, une pour le développement, et tu veux la liste complète d'un seul tenant pour alimenter un menu déroulant ou un rapport. La fonction DANSCOL empile les trois colonnes en une seule d'un coup, sans copier-coller ni macro.

Les étapes
  1. 1
    Dans une cellule, écris =DANSCOL(.
  2. 2
    En 1er argument : sélectionne le bloc des compétences à empiler, A2:C7. Tu laisses la ligne d'en-tête dehors, sinon les titres Bureautique, Data et Développement descendraient dans la colonne au milieu des outils. La sélection couvre 6 lignes sur 3 colonnes, et la fonction ne regarde rien en dehors d'elle.
  3. 3
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=DANSCOL(A2:C7)
Explication
La fonction parcourt les 6 lignes et les 3 colonnes dans l'ordre de lecture, puis déverse les 18 compétences les unes sous les autres à partir de la cellule où tu as saisi la formule. Le résultat est un tableau dynamique (tu n'as rien à recopier vers le bas) qui se réajuste dès que la matrice de départ change.
Exemple 2

Comment ignorer les cellules vides et les erreurs avec la fonction DANSCOL

Tu récupères trois exports de références produits qui arrivent chacun dans sa colonne, et l'inventaire de demain se prépare à partir de cette liste. Le souci, c'est que les lots sont troués : certaines cellules sont vides, d'autres affichent une erreur #N/A héritée d'une recherche ratée à la source. Tu veux une liste propre, sans avoir à faire le tri à la main à chaque nouvel export. La fonction DANSCOL empile les trois lots et laisse au passage tout ce qui n'est pas une vraie référence.

Les étapes
  1. 1
    Dans une cellule, écris =DANSCOL(.
  2. 2
    En 1er argument : sélectionne les trois lots d'un seul bloc, A2:C5. La ligne d'en-tête reste dehors, et les 4 lignes de références des trois colonnes suffisent à la fonction.
  3. 3
    En 2ᵉ argument : saisis le code qui écarte ce que tu ne veux pas voir descendre dans ta liste, 3. Un 1 ne sauterait que les cellules vides et un 2 que les erreurs, alors que ton import cumule les deux problèmes. Avec 3, les 2 cases vides et les 2 #N/A restent à la porte.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=DANSCOL(A2:C5; 3)
Explication
Sur les 12 cellules de la plage, la fonction en écarte 4 (deux cellules vides et deux erreurs #N/A) et empile les 8 références restantes. Sans le 3, les trous et les erreurs descendraient tels quels dans ta colonne et il faudrait refaire le ménage à chaque export.
Exemple 3

Comment lire un tableau colonne par colonne avec la fonction DANSCOL

Ton chiffre d'affaires est suivi dans un tableau à double entrée, les trimestres en lignes et les années en colonnes, et on te demande une courbe d'évolution pour le prochain comité. Un graphique attend une série continue, donc il te faut les huit montants empilés dans l'ordre du temps : les quatre trimestres de 2024, puis ceux de 2025. La fonction DANSCOL sait descendre colonne par colonne au lieu de balayer les lignes, ce qui remet ta série dans le bon ordre.

Les étapes
  1. 1
    Dans une cellule, écris =DANSCOL(.
  2. 2
    En 1er argument : sélectionne la plage des seuls montants, B2:C5. La colonne Trimestre reste dehors, sans quoi les libellés T1 à T4 viendraient se glisser entre tes chiffres.
  3. 3
    En 2ᵉ argument : saisis le code qui n'écarte rien, 0. Ton tableau est complet, il n'y a donc ni vide ni erreur à filtrer. Ce zéro n'est pourtant pas décoratif, puisque les arguments s'écrivent dans l'ordre et qu'il faut passer par lui pour atteindre le troisième.
  4. 4
    En 3ᵉ argument : écris la valeur qui bascule la lecture en colonnes, VRAI. Sans elle, la fonction lirait de gauche à droite et sortirait 120 000 € puis 138 000 €, en changeant d'année à chaque valeur.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=DANSCOL(B2:C5; 0; VRAI)
Explication
Ici, la fonction change son sens de balayage : elle vide la colonne 2024 de haut en bas, puis seulement après la colonne 2025. Ta série sort donc dans l'ordre chronologique, prête pour un graphique ou un calcul de tendance, alors que la lecture par défaut aurait alterné les deux années.
Exemple 4

Comment dédoublonner un tableau entier avec les fonctions DANSCOL et UNIQUE

Chaque boutique a saisi ses propres familles de produits dans sa colonne, et tu dois maintenant bâtir le référentiel commun qui servira au prochain catalogue. Les mêmes catégories reviennent d'une boutique à l'autre, quelques cases sont restées vides, et tu veux la liste de toutes les familles citées, chacune une seule fois. La fonction UNIQUE ne sait dédoublonner qu'une colonne à la fois, alors tu lui donnes ton tableau déjà aplati par la fonction DANSCOL.

Les étapes
  1. 1
    Dans une cellule, écris =UNIQUE(.
  2. 2
    En 1er argument : écris l'aplatissement des trois colonnes et referme-le, DANSCOL(A2:C5; 1). La fonction UNIQUE ne dédoublonne qu'une seule colonne à la fois, et la fonction DANSCOL lui en fabrique une à partir des trois boutiques. Le 1 écarte au passage les 2 cases vides, qui arriveraient sinon dans le référentiel comme une famille de plus.
  3. 3
    Ferme la parenthèse de la fonction UNIQUE et appuie sur Entrée. Celle de la fonction DANSCOL a déjà été refermée à l'étape précédente.
En mettant tout bout à bout, tu écris :=UNIQUE(DANSCOL(A2:C5; 1))
Explication
La fonction DANSCOL aplatit d'abord les 12 cases en une colonne de 10 valeurs (les 2 cases vides sont écartées), puis la fonction UNIQUE supprime les répétitions et ne conserve que les 4 familles distinctes, dans leur ordre d'apparition. Une catégorie ajoutée dans n'importe quelle boutique vient compléter le référentiel toute seule.
Le combo gagnant
Enroule DANSCOL dans UNIQUE et tu dédoublonnes un tableau entier d'un coup : UNIQUE(DANSCOL(A1:D10; 1)) aplatit les colonnes puis ne garde qu'une occurrence de chaque valeur. Idéal pour bâtir un référentiel de catégories éparpillées sur plusieurs colonnes.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction DANSCOL

Comme DANSCOL déverse son résultat vers le bas, il lui faut la colonne libre sous la formule : dès qu'une cellule y traîne déjà, tu récoltes un #EPARPILL! et rien ne s'affiche, donc vide la zone ou pose ta formule ailleurs. L'autre souci ne crie aucune erreur : tes valeurs sortent dans le désordre parce que la lecture ligne par ligne ne colle pas à ta structure. C'est [par_colonne] à VRAI qui remet la séquence d'aplomb.

Erreur #EPARPILL! : pas assez d'espace pour le résultat

Le tableau dynamique résultant n'a pas assez de place pour s'afficher. D'autres données se trouvent dans les cellules en dessous de la formule et bloquent l'expansion.

Solution : Libère les cellules en dessous de ta formule pour permettre au tableau dynamique de s'étendre. Tu peux aussi déplacer ta formule dans une zone vide de la feuille.

Ordre inattendu des valeurs dans la colonne résultat

Les valeurs ne sont pas dans l'ordre attendu parce que le mode de lecture par défaut (ligne par ligne) ne correspond pas à la structure de tes données.

Solution : Utilise par_colonne=VRAI pour lire par colonnes au lieu de lignes. Expérimente les deux modes pour voir lequel correspond à l'ordre dont tu as besoin.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec DANSCOL

1Astuce

Dédoublonner tout un tableau en une formule

Pour extraire toutes les valeurs uniques d'un tableau 2D sans intermédiaire, combine DANSCOL avec UNIQUE : =UNIQUE(DANSCOL(A1:D10; 1)) aplatit d'abord le tableau en ignorant les vides, puis élimine les doublons.
C'est la façon la plus rapide de créer un référentiel unique depuis une matrice, par exemple pour une liste de catégories ou de codes produits éparpillés sur plusieurs colonnes.

2Astuce

Compter une valeur dans tout un tableau 2D

NB.SI n'accepte qu'une plage 1D par défaut, mais en passant le résultat de DANSCOL, tu contournes cette limite : =NB.SI(DANSCOL(A1:D10); "Oui") compte les occurrences de "Oui" dans tout le tableau, quelle que soit la colonne.
Même logique pour SOMME.SI ou RECHERCHEV quand ta valeur peut être dans n'importe quelle colonne.

3Astuce

Alimenter un graphique depuis une matrice

Les graphiques Excel attendent des données en une seule colonne ou ligne. Quand tes valeurs sont dans une matrice (par exemple, des ventes par produit et par mois), DANSCOL te permet de les empiler en une série continue : =DANSCOL(B2:M12; 1) aplatit 12 mois × 11 produits en une seule série sans valeurs vides.
Combine-le avec SEQUENCE pour générer les étiquettes correspondantes automatiquement.

FAQ

Questions fréquentes

DANSCOL transforme un tableau en une seule colonne verticale, tandis que DANSLIGNE le transforme en une seule ligne horizontale. Les deux fonctions aplatissent le tableau mais dans des directions différentes.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction DANSCOL : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir