BYCOL (BY COLumn en anglais) applique une fonction LAMBDA à chaque colonne d'un tableau et retourne un résultat par colonne sous forme de tableau horizontal. C'est l'une des fonctions les plus puissantes introduites dans Excel 365 : là où tu écrirais autrefois une formule répétée pour chaque colonne, BYCOL traite tout en une seule opération.
Concrètement, c'est elle qui calcule la somme de ventes de chaque vendeur en une ligne, la moyenne de chaque matière pour un professeur, la température maximale de chaque ville sur une période, ou la volatilité de chaque actif financier. Elle s'adapte automatiquement quand on ajoute ou supprime des colonnes.
Syntaxe de la fonction BYCOL
=BYCOL(tableau; lambda)Comprendre chaque paramètre de la fonction BYCOL
BYCOL ne prend que deux choses, dans cet ordre : d'abord le tableau à découper, ensuite la LAMBDA qui dira quoi faire de chaque colonne. Les deux sont obligatoires. Le piège n'est pas l'ordre mais ce que reçoit la LAMBDA : non pas une cellule isolée, mais la colonne entière sous forme de tableau vertical, d'où l'usage de fonctions d'agrégation comme SOMME ou MOYENNE.
tableau
: le tableau ou la plage à traiter colonne par colonneÇa peut être une plage comme A1:C10 ou un tableau structuré. Excel parcourt le tableau de gauche à droite et extrait chaque colonne sous forme de tableau vertical pour la passer à la LAMBDA.
Si tu as 4 colonnes dans ton tableau, BYCOL va créer 4 tableaux verticaux (un par colonne), appliquer ta LAMBDA à chacun, puis retourner 4 résultats en une ligne horizontale.
Astuce : Pour exclure la ligne d'en-tête, définis ta plage à partir de la deuxième ligne : BYCOL(A2:D100; LAMBDA(col; SOMME(col))). Ou utilise un tableau structuré (Ctrl+T) dont BYCOL connaît nativement les bornes.
lambda
: la fonction LAMBDA à appliquer sur chaque colonneElle reçoit une colonne entière (tableau vertical) et doit retourner une valeur unique.
Sa syntaxe est LAMBDA(nomParamètre; calcul) : nomParamètre est le nom que tu donnes à la colonne à l'intérieur du calcul (souvent col ou c), et calcul est l'opération à effectuer. Par exemple LAMBDA(col; SOMME(col)) additionne toutes les valeurs de chaque colonne.
Exemples pratiques pas à pas
Commercial : calculer le total des ventes par vendeur
Tu gères une équipe commerciale dont chaque vendeur a ses ventes saisies par période dans une colonne. Tu veux le total par vendeur en bas du tableau, sans créer trois formules SOMME séparées.
| A | B | C | |
|---|---|---|---|
| 1 | Vendeur A | Vendeur B | Vendeur C |
| 2 | 1 200 | 1 500 | 980 |
| 3 | 1 350 | 1 420 | 1 100 |
| 4 | 1 180 | 1 680 | 1 050 |
| 5 | 1 400 | 1 550 | 1 200 |
=BYCOL(A1:C4; LAMBDA(col; SOMME(col)))La formule additionne chaque colonne séparément et renvoie trois valeurs sur une seule ligne : 5 130, 6 150 et 4 330. La LAMBDA reçoit tour à tour chaque colonne entière (et non une cellule) et lui applique SOMME. Quand tu ajoutes un quatrième vendeur en colonne D, tu étends simplement la plage.
Enseignant : calculer la moyenne par matière
Tu es enseignant et tu dois calculer la moyenne de chaque matière sur ta classe pour identifier celles qui posent problème. Avec 4 matières et une cinquantaine d'élèves, une formule MOYENNE répétée quatre fois est fastidieuse à maintenir.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Maths | Français | Histoire | Sciences |
| 2 | 15 | 14 | 16 | 13 |
| 3 | 12 | 15 | 14 | 15 |
| 4 | 18 | 13 | 15 | 17 |
| 5 | 14 | 16 | 13 | 14 |
| 6 | 16 | 14 | 17 | 16 |
=BYCOL(A1:D5; LAMBDA(col; MOYENNE(col)))Ici, la formule applique MOYENNE à chaque matière prise une colonne à la fois et renvoie 15, 14,4, 15, 15 sur une seule ligne. Le résultat s'ajuste automatiquement si tu ajoutes ou modifies des notes.
Astuce de pro : Pour arrondir les moyennes à un décimale, intègre ARRONDI dans la LAMBDA : =BYCOL(A1:D5; LAMBDA(col; ARRONDI(MOYENNE(col); 1))). Tu peux aussi combiner plusieurs calculs en une LAMBDA plus complexe.
Météorologue : trouver la température maximale par ville
Tu analyses des températures mensuelles pour trois villes et tu veux identifier la température record de chaque ville sur la période, pour produire un rapport climatique.
| A | B | C | |
|---|---|---|---|
| 1 | Paris | Lyon | Marseille |
| 2 | 12 | 14 | 18 |
| 3 | 15 | 16 | 21 |
| 4 | 18 | 19 | 24 |
| 5 | 22 | 24 | 28 |
| 6 | 25 | 27 | 32 |
=BYCOL(A1:C5; LAMBDA(col; MAX(col)))La formule extrait le maximum de chaque colonne ville et renvoie 25, 27 et 32. Cette approche est idéale pour repérer les pics dans des séries temporelles ou des données de monitoring, sans créer de formules MAX répétitives.
Responsable commercial : compter les dépassements d'objectif
Tu pilotes trois équipes commerciales et tu veux savoir combien de fois chacune a dépassé l'objectif mensuel de 100 unités, pour décider des bonus.
| A | B | C | |
|---|---|---|---|
| 1 | Équipe Alpha | Équipe Beta | Équipe Gamma |
| 2 | 95 | 105 | 110 |
| 3 | 110 | 98 | 115 |
| 4 | 88 | 112 | 92 |
| 5 | 125 | 101 | 108 |
=BYCOL(A1:C4; LAMBDA(col; NB.SI(col; ">100")))Ici, la formule compte dans chaque colonne le nombre de valeurs supérieures à 100 et renvoie 2, 3, 3. Elle montre qu'on peut appliquer une fonction conditionnelle comme NB.SI à chaque colonne séparément, ce qui est particulièrement utile pour les analyses de performance.
Analyste financier : mesurer la volatilité de chaque actif
Tu analyses un portefeuille d'actions et tu dois mesurer la volatilité de chaque titre pour conseiller ton client sur le niveau de risque. L'écart-type des cours historiques est la mesure de volatilité standard en finance.
| A | B | C | |
|---|---|---|---|
| 1 | Action A | Action B | Action C |
| 2 | 45,2 | 102,5 | 28,3 |
| 3 | 47,1 | 101,8 | 29,1 |
| 4 | 44,8 | 103,2 | 27,9 |
| 5 | 46,5 | 100,9 | 28,7 |
| 6 | 45,9 | 102,1 | 28,5 |
=BYCOL(A1:C5; LAMBDA(col; ECARTYPE.STANDARD(col)))La formule calcule l'écart-type de chaque colonne d'actions et renvoie 0,89, 0,87 et 0,45. Un écart-type plus faible (comme 0,45 pour l'Action C) indique une volatilité moindre et potentiellement un investissement plus stable.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction BYCOL
Avec BYCOL, les ennuis viennent presque toujours de deux fronts : ce que tu mets dans la LAMBDA, et la place que le résultat réclame autour de lui. Le #CALC! et le #VALEUR! signalent une LAMBDA qui trébuche (calcul impossible sur une colonne, ou syntaxe bancale), tandis qu'une erreur de débordement veut juste dire que les cellules à droite sont occupées. Reste un classique conceptuel : croire que ta LAMBDA reçoit une valeur quand elle reçoit toute la colonne.
#CALC! : erreur dans la fonction LAMBDA
Cette erreur se produit quand la LAMBDA contient une erreur logique ou essaie d'effectuer une opération impossible sur une colonne, par exemple appliquer MOYENNE à une colonne contenant du texte.
Solution : Vérifie que ta LAMBDA peut traiter tous les types de données dans tes colonnes. Encadre avec SIERREUR si nécessaire : =BYCOL(A1:C10; LAMBDA(col; SIERREUR(MOYENNE(col); 0))).
#VALEUR! : tableau invalide ou syntaxe LAMBDA incorrecte
Se produit quand le premier argument n'est pas un tableau valide ou quand la syntaxe LAMBDA est incorrecte. La LAMBDA doit avoir exactement un paramètre (la colonne) et un calcul.
Solution : Assure-toi que ton premier argument est bien une plage rectangulaire comme A1:C10 et que ta LAMBDA suit la syntaxe LAMBDA(paramètre; calcul). Exemple correct : =BYCOL(A1:C4; LAMBDA(col; SOMME(col))).
Erreur de débordement : le résultat empiète sur des cellules occupées
BYCOL retourne un tableau horizontal. Si les cellules à droite de ta formule contiennent déjà des données, Excel affiche une erreur de débordement.
Solution : Assure-toi que les cellules à droite de ta formule sont vides. Si ton tableau source a 5 colonnes, BYCOL a besoin de 5 cellules horizontales pour afficher le résultat.
La LAMBDA reçoit une colonne entière, pas une valeur unique
Erreur conceptuelle fréquente : penser que la LAMBDA reçoit une seule valeur alors qu'elle reçoit toute la colonne comme tableau vertical. Une opération scalaire comme col*2 renverrait un tableau, pas une valeur unique.
Solution : Utilise exclusivement des fonctions d'agrégation dans ta LAMBDA : SOMME, MOYENNE, MAX, MIN, NB.SI, ECARTYPE, etc. Ces fonctions savent transformer un tableau en valeur unique.
Tableau source avec colonnes de hauteurs différentes
BYCOL nécessite un tableau rectangulaire parfait. Si tes colonnes ont des hauteurs différentes (plages non alignées), la fonction échoue.
Solution : Définis ta plage pour qu'elle couvre exactement le tableau rectangulaire, ou remplis les cellules manquantes avec des valeurs neutres (0 ou texte vide selon le contexte) avant d'appliquer BYCOL.
BYCOL vs BYROW vs MAP vs REDUCE
Le bon choix dépend du sens dans lequel tu veux résumer tes données. BYCOL replie chaque colonne en un résultat (un total par vendeur), BYROW fait pareil mais ligne par ligne. Si au contraire tu veux transformer chaque cellule sans rien agréger, c'est MAP ; et si tu veux tout faire fondre en une seule valeur finale (un produit cumulé, par exemple), c'est REDUCE. Les quatre demandent Excel 365.
| Critère | BYCOL | BYROW | MAP | REDUCE |
|---|---|---|---|---|
| Direction de traitement | Par colonne (vertical) | Par ligne (horizontal) | Cellule par cellule | Accumulation vers 1 valeur |
| Nombre de résultats | 1 par colonne | 1 par ligne | 1 par cellule (même taille) | 1 seul résultat |
| Cas d'usage typique | Total ventes par vendeur | Calcul par ligne de tableau | Transformer chaque valeur | Produit cumulé, running total |
| Disponibilité | Excel 365 uniquement | Excel 365 uniquement | Excel 365 uniquement | Excel 365 uniquement |
Questions fréquentes sur la fonction BYCOL
Quelle différence entre BYCOL et BYROW ?
BYCOL applique une fonction LAMBDA à chaque colonne d'un tableau et retourne un résultat par colonne sous forme de ligne horizontale. BYROW fait la même chose mais par ligne, retournant une colonne verticale de résultats.
Si tu as un tableau de 5 colonnes et 10 lignes, BYCOL retournera 5 résultats (un par colonne) et BYROW retournera 10 résultats (un par ligne).
Comment calculer la moyenne de chaque colonne avec BYCOL ?
Utilise =BYCOL(A1:C10; LAMBDA(col; MOYENNE(col))). Cette formule applique MOYENNE à chaque colonne individuellement et retourne les moyennes en une seule ligne horizontale.
Tu peux remplacer MOYENNE par n'importe quelle fonction d'agrégation : MAX, MIN, SOMME, ECARTYPE, NB.SI, etc. La LAMBDA reçoit chaque colonne comme un tableau vertical.
BYCOL fonctionne-t-il avec des colonnes de taille différente ?
Non, BYCOL nécessite un tableau rectangulaire où toutes les colonnes ont exactement la même hauteur. Pour des colonnes de tailles différentes, tu devras utiliser des formules séparées ou remplir les cellules manquantes avec des valeurs neutres.
Utilise un tableau structuré (Ctrl+T) si tes données grandissent dynamiquement : BYCOL s'adapte alors automatiquement à la taille du tableau.
Peut-on combiner plusieurs fonctions dans la LAMBDA de BYCOL ?
Oui, ta LAMBDA peut contenir n'importe quelle logique complexe. Par exemple, =BYCOL(A1:D10; LAMBDA(col; SI(MAX(col)>100; SOMME(col); MOYENNE(col)))) applique une condition différente selon le maximum de chaque colonne.
Tu peux aussi imbriquer d'autres fonctions comme SIERREUR pour gérer les erreurs, ou FILTRE pour n'agréger que certaines valeurs de la colonne.
Peut-on utiliser BYCOL avec des tableaux structurés ?
Oui, et c'est même recommandé pour les données dynamiques. Avec un tableau structuré (Ctrl+T), tu peux référencer les colonnes par leur nom : =BYCOL(Tableau1[#Données]; LAMBDA(col; SOMME(col))). La formule s'adapte automatiquement quand le tableau s'agrandit.
Cette approche est plus robuste que les plages fixes car elle suit les insertions et suppressions de lignes sans que tu aies à modifier la formule.
Pour aller plus loin
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
