Analyser et traiter les lignes avec la fonction BYROW

Analyser et traiter les lignes avec la fonction BYROW
Dernière mise à jour le 25/10/2023
Temps de lecture : 3 minutes

Une des nouvelles fonctions récemment apparue dans Excel permet de traiter une matrice de lignes en lignes, cette fonction c’est BYROW. Dans un précédent article sur les RTT, nous l'avions utilisé mais voyons plus en détail comment elle fonctionne.

Comment utiliser BYROW pour traiter des lignes

Avec la fonction BYROW, seuls deux arguments sont nécessaires

  1. La matrice

    C'est la plage de données concernée

  2. La fonction LAMBDA qui est obligatoire

    C'est cette fonction qui va indiquer l'opération qui sera effectuée

Prenons cet exemple simple :

Ligne de base byrow

Nous avons plusieurs lignes avec des chiffres et nous souhaitons ajouter 1 à toutes les lignes en une seule manipulation.

  1. Nous allons donc saisir notre matrice de A1 à A7 comme premier argument.
  2. Puis nous utilisons LAMBDA avec un paramètre que nous nommons x. Ce dernier représente la plage de A1 à A7, pour faciliter la saisie ensuite, et le calcul est donc x+1.

Nous avons bien 1 ajouté à chaque ligne avec cette fonction :

=BYROW(A1:A7;LAMBDA(x;x+1))

1 ajoute aux lignes byrow

Autre exemple avec une autre fonction LAMBDA

L'utilisation de la fonction LAMBDA est extrêmement puissante. Dans l'exemple précédent, nous avons construit une addition mais toutes les opérations sont possibles.

Par exemple ici, nous allons construire un test qui va nous renvoyer les jours fériés qui tombent un jour de semaine (pas le week-end)

  • X, notre variable, représente notre liste des jours fériés
  • Pour chaque date, nous faisons un test avec la fonction JOURSEM pour savoir si la date tombe un week-end ou non
  • Enfin, ce test est intégré dans une fonction FILTRE.

=BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)))

jours feries filtres byrow

La fonction marche mais nous avons des #CALC ce qui signifie qu’une partie du tableau est vide, et renvoie une erreur.

Avec une SI.ERREUR, si nous remplaçons les erreurs par vide nous pourrions nous en sortir, mais on ne va pas faire cela, je vais vous montrer avec une autre fonction.

Utilisation de la fonction DANSCOL

Surprise !

Voici la fonction qui va nous sauver et plus appropriée aux matrices, avec deux arguments obligatoires :

  • Array : la matrice souhaitée
  • Ignore : de 0 à 3 en choix, pour laisser comme tel ou ignorer les espaces, les erreurs, ou tout d’un coup
  • [scan_by_column] : permet de choisir le mode de scan en ligne ou en colonne en fonction des valeurs et de leur organisation

Donc tout simplement :

=DANSCOL(BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)));3)

formule danscolbyrow

Notre matrice est bien sans erreur, il ne nous reste plus qu’à obtenir le nombre de jours, en rajoutant un NB devant

=NB(DANSCOL(BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)));3))

J’espère que cela vous a plu.

EXCEL_LENTE journée ! (Rémi)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Analyser et traiter les lignes avec la fonction BYROW

Reading time: 3 minutes
Dernière mise à jour le 25/10/2023

Une des nouvelles fonctions récemment apparue dans Excel permet de traiter une matrice de lignes en lignes, cette fonction c’est BYROW. Dans un précédent article sur les RTT, nous l'avions utilisé mais voyons plus en détail comment elle fonctionne.

Comment utiliser BYROW pour traiter des lignes

Avec la fonction BYROW, seuls deux arguments sont nécessaires

  1. La matrice

    C'est la plage de données concernée

  2. La fonction LAMBDA qui est obligatoire

    C'est cette fonction qui va indiquer l'opération qui sera effectuée

Prenons cet exemple simple :

Ligne de base byrow

Nous avons plusieurs lignes avec des chiffres et nous souhaitons ajouter 1 à toutes les lignes en une seule manipulation.

  1. Nous allons donc saisir notre matrice de A1 à A7 comme premier argument.
  2. Puis nous utilisons LAMBDA avec un paramètre que nous nommons x. Ce dernier représente la plage de A1 à A7, pour faciliter la saisie ensuite, et le calcul est donc x+1.

Nous avons bien 1 ajouté à chaque ligne avec cette fonction :

=BYROW(A1:A7;LAMBDA(x;x+1))

1 ajoute aux lignes byrow

Autre exemple avec une autre fonction LAMBDA

L'utilisation de la fonction LAMBDA est extrêmement puissante. Dans l'exemple précédent, nous avons construit une addition mais toutes les opérations sont possibles.

Par exemple ici, nous allons construire un test qui va nous renvoyer les jours fériés qui tombent un jour de semaine (pas le week-end)

  • X, notre variable, représente notre liste des jours fériés
  • Pour chaque date, nous faisons un test avec la fonction JOURSEM pour savoir si la date tombe un week-end ou non
  • Enfin, ce test est intégré dans une fonction FILTRE.

=BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)))

jours feries filtres byrow

La fonction marche mais nous avons des #CALC ce qui signifie qu’une partie du tableau est vide, et renvoie une erreur.

Avec une SI.ERREUR, si nous remplaçons les erreurs par vide nous pourrions nous en sortir, mais on ne va pas faire cela, je vais vous montrer avec une autre fonction.

Utilisation de la fonction DANSCOL

Surprise !

Voici la fonction qui va nous sauver et plus appropriée aux matrices, avec deux arguments obligatoires :

  • Array : la matrice souhaitée
  • Ignore : de 0 à 3 en choix, pour laisser comme tel ou ignorer les espaces, les erreurs, ou tout d’un coup
  • [scan_by_column] : permet de choisir le mode de scan en ligne ou en colonne en fonction des valeurs et de leur organisation

Donc tout simplement :

=DANSCOL(BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)));3)

formule danscolbyrow

Notre matrice est bien sans erreur, il ne nous reste plus qu’à obtenir le nombre de jours, en rajoutant un NB devant

=NB(DANSCOL(BYROW(Jferiés;LAMBDA(x;FILTRE(x;JOURSEM(x;2)<6)));3))

J’espère que cela vous a plu.

EXCEL_LENTE journée ! (Rémi)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.