Qu'est-ce que la fonction BYROW ?
BYROW (même nom en anglais) est la fonction à sortir dès que tu dois calculer un résultat par ligne (un total, un écart, une moyenne) sur un tableau qui compte des dizaines ou des centaines de lignes. Elle appartient à la famille LAMBDA d'Excel 365.
Traditionnellement, pour appliquer un calcul à chaque ligne, tu créais une formule puis tu la copiais vers le bas sur des dizaines ou centaines de lignes. BYROW résout ce problème : tu définis une seule fois la logique via LAMBDA, et Excel l'applique automatiquement à chaque ligne. Résultat : une seule formule au lieu de centaines, qui se met à jour automatiquement quand tes données changent.
Syntaxe
Clique sur un argument pour aller à son explication.
BYROW est disponible uniquement dans Excel 365 et Excel 2021+. Elle retourne un tableau dynamique vertical : assure-toi que les cellules en dessous de la formule sont vides pour éviter l'erreur de débordement.

Comprendre chaque paramètre de la fonction BYROW
BYROW attend deux choses dans cet ordre : d'abord le tableau à parcourir, ensuite le LAMBDA qui dit quoi faire de chaque ligne. Les deux sont obligatoires, et le piège n'est pas leur présence mais leur rôle : la première moitié pose les données, la seconde pose le calcul, jamais l'inverse.
Le LAMBDA reçoit une ligne entière (un tableau horizontal de plusieurs valeurs), pas une cellule, donc choisis-y des fonctions qui digèrent un tableau comme SOMME ou MOYENNE.
tableau
: le tableau ou la plage de cellules à traiter ligne par ligneChaque ligne est extraite comme un tableau horizontal et passée à ton LAMBDA.
La plage doit être rectangulaire (toutes les lignes ont le même nombre de colonnes). Par exemple, A1:D10 passe 10 fois un tableau de 4 valeurs à ton LAMBDA.
lambda
: la fonction LAMBDA à appliquer sur chaque ligneElle doit accepter un seul paramètre (la ligne courante, un tableau horizontal) et retourner une valeur unique.
Syntaxe : LAMBDA(ligne; SOMME(ligne)) pour calculer la somme de chaque ligne. Le nom du paramètre (ligne ici) est libre : choisis un nom lisible.

Exemples pratiques pas à pas
Comment calculer le total de chaque ligne avec les fonctions BYROW et LAMBDA
Le bilan annuel arrive et on te demande ce que chaque produit a rapporté sur l'année, pas seulement trimestre par trimestre. Tes huit produits occupent chacun une ligne, avec leurs ventes réparties sur les quatre trimestres, et tu veux le total de chaque ligne sans recopier la même formule huit fois. La fonction BYROW parcourt le tableau ligne par ligne et empile les huit totaux d'un coup, depuis une seule cellule.
- 1Dans une cellule, écris
=BYROW(. - 2En 1er argument : sélectionne la plage à parcourir ligne par ligne,
A2:D9. Elle couvre les quatre trimestres des huit lignes de ventes et démarre sous les en-têtes, car une plage qui remonterait jusqu'à la ligne 1 renverrait un neuvième résultat, calculé sur la ligne de titresT1àT4. - 3En 2ᵉ argument : écris la fonction LAMBDA qui dit quoi faire de chaque ligne et referme-la,
LAMBDA(ligne; SOMME(ligne)). Le premier élément entre ses parenthèses est le nom que tu donnes à la ligne en cours de lecture, et la fonction BYROW le remplit toute seule à chaque tour avec les quatre valeurs de la ligne. Le second est le calcul appliqué à ces quatre valeurs, et la fonction SOMME convient justement parce qu'elle sait additionner un lot entier de nombres, pas seulement une cellule isolée. - 4Ferme la parenthèse de la fonction BYROW et appuie sur Entrée. Celle de la fonction LAMBDA a déjà été refermée à l'étape précédente, et les huit totaux se déversent d'eux-mêmes dans les cellules situées sous la formule.
=BYROW(A2:D9; LAMBDA(ligne; SOMME(ligne)))600, 480, 860, et ainsi de suite jusqu'à 240) qui se déverse sous la cellule où tu as tapé la formule, un total par produit.Comment calculer l'écart entre le maximum et le minimum de chaque ligne avec les fonctions BYROW, MAX et MIN
La revue de production approche et on te demande quelles presses tournent de façon irrégulière, parce que ce sont elles qui cassent les plannings. Tu as la production de chaque presse sur les cinq jours de la semaine, et une moyenne ne dirait rien de l'instabilité : c'est l'écart entre le meilleur et le pire jour qui la révèle. La fonction BYROW applique ce calcul à chaque presse et te sort les quatre écarts empilés l'un sous l'autre.
- 1Dans une cellule, écris
=BYROW(. - 2En 1er argument : sélectionne la plage des relevés de production,
B2:F5. Elle démarre en colonne B pour laisser de côté les noms des presses, qui sont du texte, et couvre les cinq jours de la semaine sur les quatre lignes de machines. - 3En 2ᵉ argument : écris la fonction LAMBDA appliquée à chaque ligne et referme-la,
LAMBDA(ligne; MAX(ligne) - MIN(ligne)). Le nom que tu donnes à la ligne en cours désigne les cinq relevés d'une même presse, et les fonctions MAX et MIN les parcourent toutes les deux en entier. La soustraction ramène ensuite ces deux valeurs à une seule, ce qu'attend la fonction BYROW pour remplir une cellule de résultat. - 4Ferme la parenthèse de la fonction BYROW et appuie sur Entrée. Celle de la fonction LAMBDA a déjà été refermée à l'étape précédente, et les quatre écarts s'empilent l'un sous l'autre dans l'ordre des presses.
=BYROW(B2:F5; LAMBDA(ligne; MAX(ligne) - MIN(ligne)))15 quand la Presse 4 tient dans 4, alors que leurs volumes n'ont rien à voir : c'est bien la régularité que tu lis, pas le niveau de production.Comment éviter l'erreur #DIV/0! sur une ligne vide avec les fonctions BYROW et SIERREUR
Tu dois classer les candidats d'une session de recrutement avant la réunion de sélection de demain, et un dossier n'a pas encore été noté. Chaque candidat a ses trois notes d'entretien sur une ligne, sauf celui dont les entretiens ont été reportés : sa ligne est restée vide. La fonction BYROW calcule la moyenne de chacun d'un seul coup, mais elle doit aussi savoir quoi répondre sur cette ligne sans note.
- 1Dans une cellule, écris
=BYROW(. - 2En 1er argument : sélectionne la plage des notes d'entretien,
B2:D5. Elle démarre en colonne B pour écarter les noms des candidats, et elle garde la ligne vide de Marc Dubois, puisque la zone parcourue doit rester rectangulaire. - 3En 2ᵉ argument : écris la fonction LAMBDA appliquée à chaque candidat et referme-la,
LAMBDA(ligne; SIERREUR(MOYENNE(ligne); "Non évalué")). La fonction MOYENNE calcule la note des trois entretiens de la ligne en cours, et la fonction SIERREUR qui l'entoure prend le relais sur la ligne sans note, où ce calcul échoue. Les guillemets autour deNon évaluésont obligatoires pour qu'Excel traite ces deux mots comme du texte à afficher et non comme un élément de formule. - 4Ferme la parenthèse de la fonction BYROW et appuie sur Entrée. Celles des fonctions SIERREUR et LAMBDA ont déjà été refermées à l'étape précédente, et la colonne obtenue mélange sans souci les trois moyennes et la mention de repli.
=BYROW(B2:D5; LAMBDA(ligne; SIERREUR(MOYENNE(ligne); "Non évalué")))#DIV/0!) et une seule ligne fautive suffirait à salir toute la colonne de résultats. Comme la fonction SIERREUR est imbriquée dans la fonction LAMBDA, elle intercepte l'erreur au moment précis où cette ligne est traitée et pose « Non évalué » à sa place, sans toucher aux trois moyennes valides.
Les erreurs fréquentes avec la fonction BYROW
Avec BYROW, les ennuis viennent presque toujours du LAMBDA ou de la place qu'on laisse au résultat. Une #CALC! signale un calcul impossible sur une ligne (division par zéro, SOMME sur du texte), une #VALEUR! trahit un LAMBDA mal écrit (nom de paramètre oublié, parenthèses bancales).
Les deux autres pièges sont plus sournois : traiter la ligne comme une seule cellule (un ligne > 10 qui ne veut rien dire sur un tableau) et oublier que le résultat déborde vers le bas, donc bloqué dès qu'une cellule en dessous est occupée.
Erreur #CALC! dans le LAMBDA sur certaines lignes
Cette erreur apparaît quand ta fonction LAMBDA contient une opération impossible sur une ligne donnée, par exemple une division par zéro ou SOMME sur une ligne contenant du texte non numérique.
Solution : Vérifie que toutes tes lignes contiennent des données compatibles avec ton LAMBDA. Si certaines lignes peuvent être problématiques, entoure l'expression dans SIERREUR : =BYROW(A1:D10; LAMBDA(ligne; SIERREUR(SOMME(ligne); 0))).
Erreur #VALEUR! avec une syntaxe LAMBDA incorrecte
Cette erreur se produit quand le premier argument n'est pas un tableau valide ou quand la syntaxe LAMBDA est mal formée : nom de paramètre manquant, parenthèses déséquilibrées, ou expression de calcul absente.
Solution : Vérifie que ton LAMBDA suit la syntaxe exacte : LAMBDA(nom_parametre; expression). Le nom du paramètre est libre mais doit être présent. Exemple correct : LAMBDA(r; SOMME(r)) avec r comme paramètre et SOMME(r) comme expression.
Résultats bloqués par des cellules occupées en dessous
BYROW retourne un tableau vertical dynamique. Si les cellules en dessous de ta formule contiennent déjà des données, Excel ne peut pas afficher le résultat complet et retourne une erreur de débordement.
Solution : Libère les cellules en dessous de ta formule BYROW. Si ton tableau source a 20 lignes, BYROW aura besoin de 20 cellules verticales libres. Déplace les données qui bloquent ou place ta formule BYROW dans une colonne vide.
Résultat inattendu car le LAMBDA traite une ligne comme une cellule unique
Erreur conceptuelle fréquente : utiliser dans le LAMBDA une opération qui s'applique à une cellule unique (comme une comparaison directe ligne > 10) alors que le paramètre est un tableau horizontal de plusieurs valeurs.
Solution : Le paramètre de ton LAMBDA est toujours un tableau horizontal, pas une cellule. Utilise des fonctions qui acceptent des tableaux : SOMME, MOYENNE, MAX, MIN, NB.SI, etc. Pour des comparaisons, utilise NB.SI(ligne; ">10") plutôt que ligne > 10.
Erreur sur les lignes avec des longueurs différentes
BYROW nécessite un tableau rectangulaire. Si certaines lignes ont moins de colonnes que d'autres (par exemple en travaillant avec des plages non uniformes), la fonction peut échouer ou produire des résultats incorrects.
Solution : Définis ta plage pour couvrir exactement la zone rectangulaire de données. Si nécessaire, remplis les cellules manquantes avec des valeurs appropriées : 0 pour des calculs numériques, "" pour du texte.
Questions fréquentes
BYROW utilise LAMBDA pour définir une logique personnalisée qui s'applique à chaque ligne individuellement. C'est plus flexible et lisible qu'une formule matricielle classique. De plus, BYROW retourne automatiquement un tableau vertical avec un résultat par ligne, sans avoir besoin de valider avec Ctrl+Maj+Entrée comme les anciennes formules matricielles.
Utilise =BYROW(A1:D10; LAMBDA(ligne; SOMME(ligne))). Cette formule retourne autant de valeurs que de lignes dans ton tableau (10 ici), chacune étant la somme des valeurs de cette ligne.
Tu peux remplacer SOMME par n'importe quelle autre fonction : MOYENNE, MAX, MIN, NB.SI, ou même des formules plus complexes.
Le LAMBDA dans BYROW reçoit uniquement la ligne courante comme paramètre. Si tu as besoin d'informations supplémentaires (comme un seuil stocké dans une cellule fixe), tu peux les référencer directement dans l'expression LAMBDA avec des références absolues.
Par exemple : =BYROW(A1:D10; LAMBDA(ligne; NB.SI(ligne; ">"&$F$1))) utilise le seuil de F1 pour chaque ligne.
Non, BYROW est disponible uniquement dans Excel 365 (abonnement Microsoft 365) et Excel 2021. Elle n'est pas disponible dans Excel 2016, 2019, ou Google Sheets. Si tu dois partager ton fichier avec des utilisateurs d'anciennes versions, utilise des formules SOMME/MOYENNE classiques copiées sur chaque ligne, ou vérifie la compatibilité avant de déployer.
Oui, BYROW est généralement plus performant car Excel optimise le calcul en une seule opération, plutôt que d'évaluer des dizaines ou centaines de formules indépendantes. Mais l'avantage principal est la maintenabilité : une seule formule à gérer au lieu de N formules identiques. Si ta logique change, tu modifies une seule formule.
Pour aller plus loin
Continue sur ta lancée après la fonction BYROW : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



