Diviser une colonne de valeurs avec Excel

L'astuce présentée ici vous permettra de diviser une colonne de valeurs en plusieurs colonnes (sans modifier la colonne d'origine), par exemple pour répartir une liste de noms sur 4 colonnes.

Cette formule fonctionne même si la longueur de la colonne de données est variable.

Notez que bien que la formule puisse sembler complexe ici, vous n'avez pas besoin de la comprendre pour pouvoir l'utiliser.


Exemple d'utilisation

L'objectif ici est de diviser en 4 colonnes les valeurs présentes dans la colonne A :

excel diviser colonne png

Copiez la formule suivante :

=LET(p;A:A;c;4;l;NBVAL(p);lc;ARRONDI.SUP(l/c;0);MAP(TRANSPOSE(SEQUENCE(c;lc));LAMBDA(v;SI(v<=l;INDEX(p;v);""))))

Si nécessaire, remplacez la plage (A:A) et le nombre de colonnes souhaitées (4) dans la formule.

Pour obtenir les 4 colonnes :

excel formule diviser colonne en 4 colonnes

Si vous souhaitez plutôt répartir les valeurs ligne par ligne (au lieu de colonne par colonne), utilisez cette formule :

=LET(p;A:A;c;4;l;NBVAL(p);lc;ARRONDI.SUP(l/c;0);MAP(SEQUENCE(lc;c);LAMBDA(v;SI(v<=l;INDEX(p;v);""))))

Pour obtenir alors :

excel formule diviser colonne en 4 colonnes ligne par

Si vous souhaitez mieux comprendre la signification des variables de LET, p représente la plage contenant les valeurs (vous pouvez y définir une colonne entière si vous le souhaitez), c représente le nombre de colonnes souhaitées, l représente le nombre de lignes de valeurs de la plage et lc représente le nombre de lignes par colonne (au maximum).

Fonction personnalisée

Pour simplifier son utilisation, vous pouvez créer une fonction personnalisée pour pouvoir ensuite l'utiliser très facilement :

=DIVISER_COLONNE(A:A;4)

excel fonction diviser colonne

Dans ce cas, créez une nouvelle fonction personnalisée, entrez DIVISER_COLONNE dans le premier champ, puis la formule suivante dans le dernier champ :

=LAMBDA(plage;colonnes;LET(l;NBVAL(plage);lc;ARRONDI.SUP(l/colonnes;0);MAP(TRANSPOSE(SEQUENCE(colonnes;lc));LAMBDA(v;SI(v<=l;INDEX(plage;v);"")))))

Pour pouvoir utiliser ensuite une formule bien plus simple :

excel fonction personnalisee diviser colonne

Ou entrez cette formule pour la version ligne par ligne :

=LAMBDA(plage;colonnes;LET(l;NBVAL(plage);lc;ARRONDI.SUP(l/colonnes;0);MAP(SEQUENCE(lc;colonnes);LAMBDA(v;SI(v<=l;INDEX(plage;v);"")))))
Il existe aussi une fonction Excel nommée ORGA.LIGNES qui permet de faire ce travail, ligne par ligne, cette fonction est néanmoins moins pratique car elle ne permet pas d'entrer une colonne entière pour obtenir un résultat dynamique et affiche des 0 ou des #N/A à la dernière ligne si elle est incomplète.
Remarque : nécessite Office 365 (ou une version d'Excel suffisamment récente).