DEVELOPPER.COL (TOCOL en anglais) est une fonction d'Excel 365 qui transforme un tableau à deux dimensions en une seule colonne. Tu as un tableau de ventes par mois et par produit, un tableau croisé complexe à aplatir, ou plusieurs listes dans des colonnes séparées à fusionner ? DEVELOPPER.COL te permet de « dérouler » toutes ces données en une liste verticale simple, prête pour l'analyse ou le traitement.
C'est la fonction à maîtriser quand tu dois préparer des données pour Power BI, créer des listes uniques, ou nettoyer des imports depuis d'autres systèmes. En bonus, tu peux ignorer automatiquement les cellules vides ou les erreurs grâce à son paramètre ignorer.
Syntaxe de la fonction DEVELOPPER.COL
=DEVELOPPER.COL(matrice; [ignorer]; [parcourir_par_col])DEVELOPPER.COL est une fonction de tableau dynamique : son résultat se déverse automatiquement sur plusieurs cellules vers le bas. Si les cellules en dessous de ta formule ne sont pas vides, Excel retourne l'erreur #DÉVERS!.
Comprendre chaque paramètre de la fonction DEVELOPPER.COL
Seul le premier argument compte vraiment : la matrice que tu veux dérouler. Les deux suivants sont facultatifs mais c'est là que se joue tout le confort : ignorer décide si tu gardes ou jettes les vides et les erreurs, et parcourir_par_col choisit le sens de lecture.
L'ordre est imposé : si tu veux régler le sens de parcours, tu dois quand même passer (ou sauter avec un point-virgule) le paramètre ignorer qui le précède.
matrice
: le tableau ou la plage que tu veux transformer en colonne uniqueÇa peut être une référence comme A1:D10, une plage nommée, ou le résultat d'une autre fonction qui renvoie un tableau (comme FILTRE ou TRI).
Par exemple, si tu as un tableau de 3 lignes × 4 colonnes (12 cellules), DEVELOPPER.COL crée une colonne de 12 valeurs. L'ordre par défaut parcourt ligne par ligne : toutes les cellules de la ligne 1, puis la ligne 2, puis la ligne 3.
ignorer
: ce paramètre te permet d'exclure certaines valeurs du résultat final(facultatif)Les options disponibles :
0 (par défaut) : conserve tout, y compris les cellules vides et les erreurs. 1 : ignore les cellules vides uniquement. 2 : ignore les erreurs (#N/A, #DIV/0!, etc.) uniquement. 3 : ignore à la fois les cellules vides et les erreurs.
Astuce : En pratique, tu utiliseras souvent 1 pour supprimer les vides, ou 3 quand tes données contiennent des erreurs (après un import par exemple). Omettre ce paramètre équivaut à passer 0.
parcourir_par_col
: ce paramètre détermine dans quel ordre Excel parcourt ton tableau(facultatif)FAUX (par défaut) : parcourt ligne par ligne, de gauche à droite sur la ligne 1, puis la ligne 2, etc. VRAI : parcourt colonne par colonne, de haut en bas sur la colonne A, puis la colonne B, etc.
Tu changeras ce paramètre à VRAI principalement quand tes données sont organisées verticalement et que tu veux conserver cet ordre dans le résultat final.
Exemples pratiques pas à pas
Analyste data : conversion d'un tableau croisé en liste plate
Tu es analyste de données et tu as reçu un tableau croisé des ventes par produit et par trimestre. Pour importer ces données dans Power BI ou créer un tableau croisé dynamique, tu as besoin de transformer ce tableau horizontal en liste verticale simple.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Produit | T1 | T2 | T3 | T4 |
| 2 | Laptop | 45 000 | 52 000 | 48 000 | 61 000 |
| 3 | Souris | 12 500 | 14 200 | 13 800 | 15 900 |
| 4 | Clavier | 8 900 | 9 500 | 9 200 | 10 100 |
=DEVELOPPER.COL(B1:E3; 1)La fonction parcourt le tableau ligne par ligne et dépose toutes les ventes dans une colonne unique, le second argument (1) écartant au passage les cellules vides. Il ne te reste qu'à associer une colonne de produits répétés pour obtenir une base normalisée.
Contrôleur de gestion : préparation de données budgétaires pour analyse
Tu es contrôleur de gestion et tu dois analyser les écarts budgétaires par département et par mois. Ton fichier contient des données par département en colonnes, mais ton outil d'analyse attend une liste unique de toutes les valeurs.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Mois | RH | IT | Marketing | Ventes |
| 2 | Janvier | 35 000 | 42 000 | 28 000 | 15 000 |
| 3 | Février | 36 500 | 41 000 | 16 200 | |
| 4 | Mars | 35 800 | 45 000 | 29 500 | 14 800 |
=DEVELOPPER.COL(B1:E3; 1)Ici, la fonction déroule les budgets en une seule colonne et saute la cellule vide du Marketing de février grâce au second argument réglé sur 1. Aucun nettoyage manuel : le résultat est propre et directement exploitable.
Responsable CRM : fusion de plusieurs colonnes de contacts en une liste unique
Tu es responsable CRM et tu as importé des contacts depuis plusieurs sources. Chaque source est dans une colonne différente, avec des cellules vides quand il manque des données. Tu veux créer une liste unique de tous les emails pour ta campagne.
| A | B | C | |
|---|---|---|---|
| 1 | Source A | Source B | Source C |
| 2 | contact1@mail.com | contact4@mail.com | contact7@mail.com |
| 3 | contact2@mail.com | contact8@mail.com | |
| 4 | contact3@mail.com | contact5@mail.com | |
| 5 | contact6@mail.com | contact9@mail.com |
=DEVELOPPER.COL(A1:C4; 1; VRAI)Le troisième argument (VRAI) force un parcours colonne par colonne : tu récupères d'abord tous les emails de la Source A, puis B, puis C, dans leur ordre vertical. Le deuxième argument (1) élimine au passage les cellules vides de chaque source.
Comptable : nettoyage de données importées avec erreurs
Tu es comptable et tu viens d'importer des données depuis ton logiciel de gestion. Le fichier contient des erreurs de calcul (#DIV/0!) et des cellules vides qu'il faut nettoyer avant de faire ton rapprochement bancaire.
| A | B | C | |
|---|---|---|---|
| 1 | Débit 1 | Débit 2 | Débit 3 |
| 2 | 150,50 | 320,00 | |
| 3 | #DIV/0! | 89,90 | 450,00 |
| 4 | 210,00 | 125,75 | |
| 5 | 95,00 | #N/A | 340,00 |
=DEVELOPPER.COL(A1:C4; 3)Le second argument réglé sur 3 écarte en une passe les cellules vides ET les erreurs (#DIV/0!, #N/A) : il ne reste que les huit valeurs numériques valides, dans l'ordre de lecture ligne par ligne. Plus besoin de SIERREUR sur chaque cellule.
Astuces avancées avec DEVELOPPER.COL
Dédoublonne ta liste développée avec UNIQUE
Si ton tableau source contient des valeurs répétées et que tu veux une liste sans doublons, imbrique directement ta formule dans UNIQUE : =UNIQUE(DEVELOPPER.COL(A1:D10; 1)). C'est parfait pour créer des listes de validation dynamiques : quand ton tableau source s'agrandit, la liste s'actualise toute seule.
Tu n'as plus à gérer manuellement les doublons ni à reconfigurer la liste à chaque ajout.
Développe uniquement les lignes pertinentes en combinant avec FILTRE
Tu peux d'abord filtrer ton tableau, puis le développer : =DEVELOPPER.COL(FILTRE(A1:D10; B1:B10>100); 1). Ça te permet de n'aplatir que les lignes qui t'intéressent, par exemple les ventes supérieures à un seuil, sans créer une étape intermédiaire.
Le tout tient en une formule, et le résultat se met à jour automatiquement si les données changent.
Trie le résultat immédiatement avec TRI
Le résultat de DEVELOPPER.COL suit l'ordre du tableau source. Pour trier le résultat alphabétiquement ou numériquement, imbrique dans TRI : =TRI(DEVELOPPER.COL(A1:D10; 1)). Super pratique pour créer des listes de valeurs distinctes triées, utilisables dans un menu déroulant ou un rapport.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction DEVELOPPER.COL
Comme DEVELOPPER.COL déverse son résultat sur des dizaines de cellules, le souci numéro un est l'espace : si une seule cellule en dessous est occupée, tu récoltes #DÉVERS! et rien ne s'affiche. Vient ensuite #NOM?, qui trahit une version d'Excel trop ancienne, la fonction n'existant qu'à partir de 2021 et 365.
Les deux autres cas sont plus sournois : #VALEUR! quand tu donnes à ignorer autre chose que 0 à 3, et un résultat vide quand ignorer à 1 ou 3 a tout balayé parce que ta source ne contenait que des vides ou des erreurs.
Plage de déversement bloquée (#DÉVERS!)
C'est l'erreur la plus fréquente avec DEVELOPPER.COL. Elle survient quand les cellules où le résultat doit s'afficher contiennent déjà des données. Comme la fonction renvoie un tableau dynamique qui peut faire des dizaines ou des centaines de lignes, Excel a besoin que tout cet espace soit vide.
Solution : Supprime le contenu des cellules en dessous de ta formule, ou déplace ta formule vers une colonne complètement vide. Place toujours tes formules de tableau dynamique dans des colonnes dédiées, loin de tes autres données.
Fonction non reconnue (#NOM?)
Si Excel affiche #NOM?, il ne reconnaît pas la fonction DEVELOPPER.COL. Cette fonction fait partie des nouvelles fonctions de tableau dynamique disponibles uniquement dans Excel 365 et Excel 2021+. Les versions 2019 et antérieures ne la supportent pas.
Solution : Vérifie ta version d'Excel via Fichier > Compte. Si tu as une version antérieure à 2021, tu devras utiliser d'autres méthodes ou mettre à jour vers Excel 365. En anglais, la fonction s'appelle TOCOL.
Paramètre optionnel invalide (#VALEUR!)
Cette erreur apparaît quand tu utilises une valeur incorrecte pour les paramètres optionnels. Le paramètre ignorer doit être 0, 1, 2 ou 3 uniquement. Le paramètre parcourir_par_col doit être VRAI ou FAUX (valeur booléenne), pas une chaîne de texte.
Solution : Vérifie que tu as bien écrit =DEVELOPPER.COL(A1:D10; 1; VRAI) et non =DEVELOPPER.COL(A1:D10; 5; "oui"). Les valeurs du paramètre ignorer doivent être exactement 0, 1, 2 ou 3.
Résultat vide inattendu
Si ta formule s'exécute sans erreur mais ne renvoie rien, tu as probablement utilisé ignorer = 1 ou 3 et toutes les cellules de ton tableau source sont vides, ou bien ta plage source est vide.
Solution : Vérifie que ton tableau source contient bien des données. Si tu veux conserver les vides dans le résultat, utilise ignorer = 0 ou omets ce paramètre. Contrôle aussi que ta référence de plage est correcte.
DEVELOPPER.COL vs DEVELOPPER.LIGNE vs EMPILER
Prends DEVELOPPER.COL quand tu veux tout finir en une seule colonne verticale, et DEVELOPPER.LIGNE si c'est une ligne horizontale qu'il te faut : ces deux-là aplatissent vraiment le tableau 2D et savent jeter les vides ou les erreurs au passage.
EMPILER joue dans une autre cour : il n'aplatit rien, il colle des plages bout à bout en gardant leurs colonnes. Si tes listes ont déjà la bonne forme et que tu veux juste les superposer, c'est lui ; dès que tu dois « dérouler » un croisé en une colonne, reviens à DEVELOPPER.COL.
| Critère | DEVELOPPER.COL | DEVELOPPER.LIGNE | EMPILER |
|---|---|---|---|
| Forme du résultat | Colonne unique | Ligne unique | Plusieurs colonnes |
| Aplatit le tableau 2D | Oui | Oui | Non |
| Peut ignorer les vides | Oui | Oui | Non |
| Peut ignorer les erreurs | Oui | Oui | Non |
| Ordre personnalisable | Ligne ou colonne | Ligne ou colonne | Empile tel quel |
| Cas d'usage principal | Aplatir en liste verticale | Aplatir en liste horizontale | Combiner des plages verticalement |
Questions fréquentes sur la fonction DEVELOPPER.COL
Quelle est la différence entre DEVELOPPER.COL et EMPILER ?
DEVELOPPER.COL transforme un tableau 2D en une seule colonne en parcourant les données ligne par ligne ou colonne par colonne, tandis qu'EMPILER combine plusieurs plages verticalement en conservant leur structure.
DEVELOPPER.COL est parfait quand tu veux « aplatir » complètement un tableau, alors qu'EMPILER est utile pour empiler des listes qui ont déjà la bonne forme.
Comment ignorer uniquement les cellules vides avec DEVELOPPER.COL ?
Utilise le deuxième paramètre avec la valeur 1 : =DEVELOPPER.COL(A1:C5; 1). Cela supprime toutes les cellules vides du résultat. C'est pratique pour créer des listes propres sans lignes vides entre tes données.
Pour ignorer à la fois les vides et les erreurs, utilise 3 : =DEVELOPPER.COL(A1:C5; 3).
Puis-je utiliser DEVELOPPER.COL avec des plages nommées ?
Absolument, DEVELOPPER.COL fonctionne parfaitement avec les plages nommées. Par exemple, si tu as une plage nommée VentesTrimestrielles, tu peux utiliser =DEVELOPPER.COL(VentesTrimestrielles; 1). Ça rend tes formules beaucoup plus lisibles et plus faciles à maintenir.
DEVELOPPER.COL fonctionne-t-il avec les tableaux structurés ?
Oui, tu peux utiliser DEVELOPPER.COL avec des tableaux structurés créés avec Ctrl+T. Par exemple : =DEVELOPPER.COL(MonTableau[Ventes]) pour développer uniquement la colonne Ventes, ou =DEVELOPPER.COL(MonTableau) pour tout le tableau. C'est puissant car le résultat s'adapte automatiquement si le tableau source s'agrandit.
Y a-t-il une limite au nombre de valeurs que DEVELOPPER.COL peut gérer ?
La limite dépend de ta version d'Excel. Le résultat ne peut pas dépasser 1 048 576 lignes (la limite d'Excel). Si ton tableau d'origine fait 500 colonnes × 3 000 lignes, ça ferait 1,5 million de cellules développées, ce qui dépasserait la limite.
En pratique, pour des tableaux de taille raisonnable (quelques milliers de cellules), il n'y a pas de contrainte à craindre.
Pour aller plus loin
Les fonctions similaires : DEVELOPPER.LIGNE, EMPILER, ASSEMB.H, ASSEMB.V, UNIQUE
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
