Comment utiliser la fonction REDUCE dans Google Sheets

La fonction REDUCE dans Google Sheets est facile à comprendre si vous connaissez la fonction SCAN. Savez-vous pourquoi ?

Les deux sont des fonctions auxiliaires LAMBDA (LHF) et appliquent une fonction LAMBDA à chaque valeur du tableau.

La première réduit un tableau à une valeur cumulée et renvoie la valeur totale dans l’accumulateur.

La seconde renvoie un tableau qui contient chaque valeur intermédiaire de l’accumulateur.

Par exemple, la sortie de la formule SCAN suivante sera le total cumulé, c’est-à-dire {5;9;18;28}.

=scan(0,{5;4;9;10},lambda(a,v,a+v))

Si vous utilisez la formule REDUCE suivante, vous obtiendrez 28, la valeur finale dans la cellule de sortie de la formule ci-dessus, c’est-à-dire la valeur totale dans l’accumulateur.

=reduce(0,{5;4;9;10},lambda(a,v,a+v))

Comprendre cette différence peut vous aider à choisir la bonne LHF pour résoudre votre problème dans Google Sheets.

Syntaxe et arguments de la fonction REDUCE dans Google Sheets

Syntaxe de REDUCE :

REDUCE(valeur_initiale, tableau_ou_plage, LAMBDA)

Où :

  • valeur_initiale – pour définir la valeur initiale/départ de l’accumulateur.
  • tableau_ou_plage – un tableau ou une plage à réduire.
  • LAMBDA – Un LAMBDA appelé pour réduire le tableau_ou_plage. Il prend deux arguments nommés.

Syntaxe de LAMBDA :

=LAMBDA([nom, …],expression_formule)(appel_de_fonction, …)

Remarque : Nous sommes seulement obligés d’utiliser l’argument appel_de_fonction dans l’utilisation autonome de LAMBDA. Veuillez consulter mon guide des fonctions Google Sheets pour apprendre cette fonction.

Nous pouvons lire la syntaxe de la fonction REDUCE comme LAMBDA(nom1, nom2, expression_formule).

Où nom1 est l’accumulateur et nom2 est le calcul appliqué à chaque élément du tableau_ou_plage.

Pour mieux comprendre la syntaxe de la fonction REDUCE dans Google Sheets, essayez les exemples ci-dessous.

Comment utiliser la fonction REDUCE dans Google Sheets

Au début, nous avons vu deux exemples d’utilisation des fonctions auxiliaires LAMBDA SCAN et REDUCE dans Google Sheets.

Voyons-les dans une feuille de calcul Google Sheets et comparons-les.

SCAN and REDUCE Functions - Similarities

Les deux fonctions ont les mêmes arguments : valeur_initiale, tableau_ou_plage et LAMBDA, et les voici dans la formule.

  • valeur_initiale – 0
  • tableau_ou_plage – {5;4;9;10} ou vous pouvez utiliser B2:B également.
  • LAMBDA (LAMBDA(nom1, nom2, expression_formule)
  • nom1 – a (accumulateur)
  • nom2 – v (le calcul appliqué à chaque élément du tableau)

Le SCAN dans la cellule D6 renvoie la valeur de l’accumulateur pour chaque élément du tableau, tandis que le REDUCE dans la cellule E6 renvoie la valeur finale de l’accumulateur.

Nous pouvons donc les utiliser dans différents scénarios.

Par exemple, nous pouvons utiliser le LHF SCAN pour des totaux cumulés (conditionnels) et le LHF REDUCE pour le dénombrement (conditionnel) ou la somme.

Exemples (LHF pour le dénombrement conditionnel et la somme)

Ci-dessous, vous trouverez quatre exemples de fonctions auxiliaires LAMBDA REDUCE. Je vais les expliquer un par un.

Dans tous les exemples, la valeur initiale de l’accumulateur est 0 (zéro).

Si nous la définissons à 100 à titre d’exemple, les sorties dans les cellules mises en évidence en cyan seront 102, 165, 202 et 103 respectivement.

REDUCE Function Examples in Google Sheets

1. Fonction REDUCE pour la somme conditionnelle

Les formules D4 et D6 sont des exemples d’utilisation de la fonction REDUCE pour la somme conditionnelle.

La formule D4 suivante fait la somme de B2:B (tableau_ou_plage) si les valeurs de ce tableau sont supérieures à 30.

=REDUCE(0,B2:B,LAMBDA(a,v,IF(v>30,a+v,a)))

C’est équivalent à utiliser un SOMME.SI comme ci-dessous.

=sumif(B2:B, »>30″)

La formule applique v>30 à chaque élément du tableau. La fonction SI effectue ce test logique.

Si elle évalue à VRAI, elle effectue a+v (ajoute la valeur à l’accumulateur), sinon elle conserve a, la valeur de l’accumulateur.

Elle le fait dans toute la colonne et renvoie la valeur finale appelée résultat du tableau réduit.

La formule D6 suivante additionne les valeurs impaires et renvoie le total.

=reduce(0,B2:B,lambda(a,v,if(isodd(v),a+v,a)))

Alternative SOMME.SI : =ArrayFormula(sumif(isodd(B2:B),TRUE,B2:B))

Ce sont des exemples d’utilisation de la fonction REDUCE pour des sommes conditionnelles dans Google Sheets.

2. Fonction REDUCE pour le dénombrement conditionnel

Les deux autres formules en D2 et D8 agissent comme des dénombrements conditionnels.

Supposons que les valeurs de B2:B représentent l’âge des participants à une compétition.

La formule D2 renvoie le dénombrement des participants de plus de 30 ans.

=reduce(0,B2:B,lambda(a,v,a+(v>30)))

C’est équivalent à utiliser le COUNT.SI suivant dans Google Sheets.

=countif(B2:B, »>30″)

La deuxième formule REDUCE dans la cellule D8 agit comme une formule COUNTIFS qui renvoie le nombre de participants dans la tranche d’âge de 20 à 30 ans.

=reduce(0,B2:B,lambda(a,v,a+(and(v>20,v<30))))

Voici l’alternative COUNTIFS.

=countifs(B2:B, »>20″,B2:B, »<30″)

Autres cas d’utilisation

En parcourant les exemples ci-dessus, vous pourriez être amené à penser que la fonction REDUCE ne nécessite pas beaucoup d’attention.

Si c’est le cas, vous avez tort !

Nous pouvons utiliser cette fonction auxiliaire LAMBDA de Google Sheets non seulement pour le dénombrement ou la somme en fonction de conditions. Elle a d’autres utilisations.

Par exemple, la formule basée sur la fonction REDUCE suivante peut renvoyer la dernière valeur de la colonne B numérique.

=reduce(0,B:B,lambda(a,v,(if(v= » »,v+a,v))))

Pour renvoyer la dernière valeur dans la ligne n°2 (numérique), remplacez B:B par 2:2.

Si vous avez des valeurs de types mixtes, remplacez la valeur_initiale, c’est-à-dire 0, par «  » et v+a par v&a.

La formule REDUCE suivante totalisera la colonne B si les valeurs de la colonne A sont « pomme ».

=reduce(0,A:A,lambda(a,v,if(v= »pomme »,offset(v,0,1)+a,a)))

Vous pouvez utiliser de telles formules pour créer également des fonctions nommées plus courtes.

Pour plus d’astuces et de conseils sur les fonctions Google Sheets, rendez-vous sur Crawlan.com.

Articles en lien