Comment utiliser la fonction BYCOL dans Google Sheets

La fonction BYCOL dans Google Sheets nous permet d’obtenir des résultats d’agrégation dans chaque colonne d’un tableau ou d’une plage. Si le tableau fourni contient cinq colonnes, la sortie sera également sous forme de cinq colonnes dans une seule rangée.

Vous pouvez donc utiliser cette fonction innovante pour étendre les résultats de SUM, MIN, MAX, COUNTIF, COUNTIFS, SPARKLINE, ISBLANK, etc., dans Google Sheets.

J’ai récemment utilisé les fonctions de base de données pour de telles opérations dans Google Sheets. Voici un exemple qui utilise la fonction DSUM :

=ArrayFormula(dsum(C2:F8,{1,2,3,4},C2:C8))

Mais cela présente deux principales limitations :

  1. Il n’y a aucun moyen d’étendre un résultat de fonction externe, par exemple un résultat de SPARKLINE, car aucune fonction de base de données n’est disponible à cet effet.
  2. Des données structurées sont nécessaires.

La fonction BYCOL est l’une des fonctions auxiliaires LAMBDA (LHF) et son utilisation est similaire à celle de BYROW, une autre LHF.

Elles diffèrent à un point. La première prend une colonne en tant qu’argument de nom dans LAMBDA, tandis que la seconde prend une rangée en tant qu’argument de nom dans LAMBDA.

Si la référence du tableau est A1:Z10, l’argument de nom sera généralement A1:A10 pour BYCOL et A1:Z1 pour BYROW.

La première renvoie un résultat de tableau par colonne (s’étend horizontalement), tandis que la seconde renvoie un résultat de tableau par rangée (s’étend verticalement).

Voyons comment utiliser la fonction BYCOL pour simplifier certaines agrégations dans Google Sheets. C’est parti !

Syntaxe et arguments de la fonction BYCOL dans Google Sheets

Syntaxe BYCOL:

BYCOL(tableau_ou_plage, lambda)

Arguments:

  • tableau_ou_plage – Le tableau ou la plage à séparer par colonne (C3:F8 selon l’exemple ci-dessus).
  • lambda – Une LAMBDA qui prend une colonne, généralement la première colonne du tableau_ou_plage (C3:C8 selon l’exemple ci-dessus), en tant qu’argument de nom unique et calcule un résultat.

La fonction BYCOL l’étendra dans le tableau_ou_plage donné.

Syntaxe LAMBDA : =LAMBDA([**nom** , ...],expression_formule)(appel_de_fonction,...)

Pour apprendre cette fonction relativement NOUVELLE, veuillez consulter mon guide sur les fonctions.

Important (par rapport à LAMBDA) :

  1. L’argument appel_de_fonction n’est pas nécessaire car il est destiné à une utilisation LAMBDA autonome.
  2. La fonction LAMBDA accepte plusieurs arguments de nom, mais avec la fonction BYCOL, nous devons utiliser un seul argument de nom.

Comment utiliser la fonction BYCOL dans Google Sheets

Revenez en haut et regardez la formule DSUM.

Nous pouvons utiliser la fonction BYCOL dans Google Sheets pour la remplacer.

Veuillez vérifier la syntaxe des deux arguments. Il s’agit de tableau_ou_plage et lambda.

Selon nos données d’exemple, voici ce qu’ils sont :

  • tableau_ou_plage – C3:F8
  • lambda – lambda(c,sum(c)) (C3:C8), qui est équivalent à SUM(C3:C8).

Voici la formule BYCOL pour remplacer la DSUM précédente :

=bycol(C3:F8,lambda(c,sum(c)))

Vous devez insérer cette formule uniquement dans la cellule C10. Elle s’étendra jusqu’à F10, à condition que les cellules D10:F10 soient vides. Sinon, vous verrez une erreur #REF.

Veuillez noter que nous avons omis l’appel de fonction LAMBDA dans la formule BYCOL. Vous devez suivre cette règle lors de la rédaction de votre propre formule.

Exemples de formules

Voici quelques exemples supplémentaires pour vous aider à comprendre comment utiliser la fonction BYCOL dans Google Sheets.

Nous utiliserons le même tableau ou plage, c’est-à-dire C3:F8, dans les exemples.

1. COUNTIF pour chaque colonne (C11) :

La formule BYCOL suivante comptera les valeurs supérieures à cinq (>5) et renverra le résultat pour chaque colonne.

=bycol(C3:F8,lambda(c,countif(c,">5")))

2. COUNTIFS pour chaque colonne (C12) :

Lorsque nous voulons compter les valeurs supérieures à deux et inférieures à quatre, nous pouvons utiliser COUNTIFS dans LAMBDA comme suit.

=bycol(C3:F8,lambda(c,countifs(c,">2",c,"<4")))

3. Utilisation de la fonction BYCOL pour étendre un résultat de SPARKLINE (C13) :

Nous pourrions peut-être répondre à nos besoins ci-dessus sans utiliser la fonction BYCOL dans Google Sheets.

Mais, autant que je sache, il était impossible d’étendre un résultat de formule SPARKLINE auparavant.

Maintenant, c’est possible, voyez la formule de graphique en colonnes SPARKLINE ci-dessous qui renvoie quatre graphiques en colonnes pour les valeurs du T1, T2, T3 et T4.

=bycol(C3:F8,lambda(r,SPARKLINE(r,{"charttype","column";"max",30;"color","red";"empty","zero"})))

En guise de note, j’ai utilisé la formule BYROW suivante dans la cellule G10 (voir capture d’écran n° 2 ci-dessus) pour étendre une formule FORMULATEXT :

=BYROW(C10:F13,lambda(f,FORMULATEXT(f)))

ArrayFormula avec la fonction BYCOL

Lorsque vous expérimentez avec la fonction BYCOL dans Google Sheets, vous pouvez rencontrer des erreurs #VALUE à un moment donné.

Si l’infobulle indique « Une valeur de tableau n’a pas pu être trouvée », utilisez la fonction ArrayFormula.

Voici un exemple d’utilisation d’ArrayFormula avec la fonction BYCOL dans Google Sheets :

=ArrayFormula(bycol(C3:F8,lambda(c,sum(-(isblank(c))))))

La formule renvoie le nombre de cellules vides dans chaque colonne du tableau C3:F8, ce qui serait 0, 1, 0 et 0.

Articles en lien