Aller au contenu principal

Qu'est-ce que la fonction BYROW ?

Définition
La fonction BYROW parcourt un tableau ligne par ligne, applique la fonction LAMBDA fournie à chaque ligne (passée comme tableau horizontal), et retourne les résultats sous forme de tableau vertical, un résultat par ligne.

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

=BYROW(tableau; lambda)

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.

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

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.

1

tableau

: le tableau ou la plage de cellules à traiter ligne par ligne

Chaque 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.

2

lambda

: la fonction LAMBDA à appliquer sur chaque ligne

Elle 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.

Attention : Le paramètre LAMBDA représente toute une ligne (tableau horizontal), pas une cellule unique. Utilise des fonctions qui acceptent des tableaux : SOMME, MOYENNE, MAX, MIN, NB.SI. Si tu tentes d'utiliser une opération valable sur une cellule unique, tu obtiendras une erreur.

Le combo gagnant
BYROW parcourt les lignes et empile un résultat par ligne dans une colonne ; sa jumelle BYCOL balaie les colonnes et aligne un résultat par colonne sur une ligne. Même logique, orientation inverse.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =BYROW(.
  2. 2
    En 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 titres T1 à T4.
  3. 3
    En 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.
  4. 4
    Ferme 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.
Au final, ta formule devrait ressembler à ça :=BYROW(A2:D9; LAMBDA(ligne; SOMME(ligne)))
Explication
La fonction BYROW découpe la plage en huit lignes et passe chacune, entière, à la fonction LAMBDA qui l'additionne. Le résultat n'est donc pas un total unique mais une colonne de huit totaux (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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =BYROW(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    Ferme 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.
Voici la formule que tu obtiens à la fin :=BYROW(B2:F5; LAMBDA(ligne; MAX(ligne) - MIN(ligne)))
Explication
Ici, la fonction LAMBDA ne contient plus un seul appel mais un vrai calcul : la fonction MAX retient le meilleur jour de la ligne, la fonction MIN retient le plus faible, et la soustraction donne l'écart. La Presse 3 ressort à 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.
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =BYROW(.
  2. 2
    En 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.
  3. 3
    En 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 de Non évalué sont obligatoires pour qu'Excel traite ces deux mots comme du texte à afficher et non comme un élément de formule.
  4. 4
    Ferme 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.
Une fois les morceaux assemblés, ta formule donne ça :=BYROW(B2:D5; LAMBDA(ligne; SIERREUR(MOYENNE(ligne); "Non évalué")))
Explication
La fonction MOYENNE bute sur la ligne vide (il n'y a rien à diviser, d'où l'erreur #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.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Le savais-tu ?
BYROW n'existe que dans Excel 365 et Excel 2021 : elle est absente d'Excel 2019, 2016 et de Google Sheets. Sur ces versions, tu retombes sur une formule copiée ligne par ligne.
FAQ

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.

Ressources

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