La fonction SCAN est l’une des fonctions auxiliaires LAMBDA dans Google Sheets qui renvoie un résultat sous forme de tableau en appliquant une formule personnalisée LAMBDA. Elle analyse un tableau ou une plage en appliquant une formule LAMBDA à chaque valeur en se déplaçant ligne par ligne. Elle produit un tableau contenant chaque valeur intermédiaire.
Mais pouvez-vous donner un exemple de fonctionnement de cette nouvelle fonction dans des scénarios réels de Google Sheets ?
Avec l’aide de la fonction SCAN, nous pouvons facilement obtenir le total cumulé d’un tableau de valeurs dans Google Sheets. Le meilleur avantage est que nous pouvons réinitialiser le total cumulé lorsqu’il atteint un certain seuil ou une valeur spécifique dans la plage ou le tableau analysé, par exemple, à chaque cellule vide. Nous pouvons également réinitialiser les totaux cumulés en fonction des changements de mois, d’année ou de catégorie en nous basant sur une colonne d’aide. Nous aborderons cette partie dans des tutoriels ultérieurs.
Cela peut donner l’impression erronée que la fonction SCAN est uniquement destinée à la somme cumulative. Ce n’est pas le cas.
Syntaxe de la fonction SCAN dans Google Sheets
Syntaxe : SCAN(valeur_initiale, tableau_ou_plage, LAMBDA)
Arguments :
valeur_initiale
– La valeur de départ de l’accumulateur.tableau_ou_plage
– Un tableau ou une plage à analyser.LAMBDA
– Une formule LAMBDA qui prend deux arguments nommés pour analyser letableau_ou_plage
.
Syntaxe LAMBDA : =LAMBDA([nom, ...], expression_formule)(appel_de_fonction, ...)
Remarque : L’appel_de_fonction n’est requis que dans l’utilisation autonome de LAMBDA. Veuillez consulter mon guide des fonctions Google Sheets pour apprendre cette fonction.
Ici, pour la fonction SCAN, nous pouvons lire la syntaxe comme LAMBDA(nom1, nom2, expression_formule).
Où nom1
est la valeur actuelle de l’accumulateur et nom2
est la valeur actuelle du tableau_ou_plage
.
Comment utiliser la fonction SCAN dans Google Sheets
Contrairement aux LHFs BYROW et BYCOL, nous devons directement coder une formule SCAN, et non une formule LAMBDA autonome, pour comprendre son utilisation.
J’ai inclus ci-dessous quatre exemples faciles à suivre pour vous aider à maîtriser la fonction SCAN dans Google Sheets.
Avec du texte
1. Formule B1 (Joindre des caractères) :
=SCAN("✻", A1:A3, LAMBDA(a,v,(a&v)))
Où :
valeur_initiale
– « ✻ »tableau_ou_plage
– A1:A3LAMBDA
– lambda(a,v,(a&v)) oùa
est la valeur actuelle de l’accumulateur etv
est la valeur actuelle dans A1:A3.
L’accumulateur a
est mis à jour à chaque étape avec la valeur intermédiaire obtenue lors de la dernière étape/précédente.
2. Formule C6 (Joindre des caractères) :
J’assume que la deuxième formule SCAN suivante dans la cellule C6 est explicite.
=SCAN("✻", A6:B7, LAMBDA(a,v,(a&v)))
Ci-dessous, vous pouvez trouver l’utilisation de la fonction SCAN avec des nombres dans un tableau dans Google Sheets.
Avec des nombres
3. Formule B11 (Total cumulé) :
=SCAN(0, A11:A14, LAMBDA(a,v,(a+v)))
Où :
valeur_initiale
– 0tableau_ou_plage
– A11:A14LAMBDA
– lambda(a,v,(a+v)) oùa
est la valeur actuelle de l’accumulateur etv
est la valeur actuelle dans A11:A14.
Comme précédemment, l’accumulateur a
est mis à jour à chaque étape avec la valeur intermédiaire obtenue lors de la dernière étape/précédente.
4. Formule B18 (Total cumulé) :
=SCAN(100, A18:A21, LAMBDA(a,v,(a+v)))
Dans cette formule SCAN, j’ai défini valeur_initiale
à 100. C’est la seule différence par rapport à la formule B11 ici.
Exemples avancés de la fonction SCAN dans Google Sheets
Vous trouverez ci-dessous trois utilisations astucieuses de la fonction SCAN dans Google Sheets.
1. Réinitialiser le total cumulé lorsqu’un certain seuil est atteint
Nous avons déjà vu comment utiliser la fonction SCAN pour un total cumulé dans Google Sheets. Veuillez faire défiler vers le haut et voir l’exemple n°3.
Pour le réinitialiser lorsqu’un certain seuil est atteint, disons 10, nous pouvons utiliser un test logique IF avec le nom1
(accumulateur) dans la partie expression_formule
.
Au lieu de lambda(a,v,(a+v))
donné dans l’exemple précédent, utilisez lambda(a,v,(if(a>=10,v,a+v)))
.
=SCAN(0, B2:B16, LAMBDA(a,v,(if(a>=10,v,a+v))))
Remarque : Dans l’exemple ci-dessus, le tableau_ou_plage
est des données verticales, et le résultat est également vertical. S’il est horizontal, les valeurs retournées seront également alignées horizontalement.
2. Réinitialiser le total cumulé aux cellules vides
Si vous voulez que votre formule SCAN réinitialise le total cumulé à une ligne spécifique, insérez une ligne vide et utilisez la formule ci-dessous.
En modifiant légèrement la partie logique IF de la formule précédente, nous pouvons réinitialiser le résultat de la formule SCAN aux cellules vides au lieu d’atteindre le seuil.
Remplacez simplement v>=10
par v=""
et voilà !
=SCAN(0, B2:B16, LAMBDA(a,v,(if(v="",v,v+a))))
3. Comment utiliser la fonction SCAN pour un comptage par groupe
Supposons que nous avons des noms de pays dans la plage de cellules A1:A6 dans l’ordre Royaume-Uni, États-Unis, États-Unis, Émirats arabes unis, Émirats arabes unis et Émirats arabes unis.
Nous attendons donc Royaume-Uni = 1, États-Unis = 2, Émirats arabes unis = 3, c’est-à-dire le nombre d’occurrences des noms de pays dans la plage.
Nous pouvons en fait utiliser une combinaison UNIQUE et NB.SI pour obtenir le résumé ci-dessus.
Pour cela, entrez =unique(A1:A6)
dans la cellule C1 et =ArrayFormula(countif(A1:A6,F1:F3))
dans la cellule D1.
Nous pouvons utiliser la fonction SCAN dans Google Sheets pour remplacer la formule NB.SI ci-dessus.
Dans la cellule D1, insérez =ArrayFormula(SCAN(0,unique(A1:A6),LAMBDA(a,v,SUM((v=A1:A6)*1))))
.
Et l’exemple ci-dessus sert simplement à vous faire comprendre le potentiel de la fonction SCAN dans Google Sheets.
Est-ce que la formule SCAN ci-dessus fonctionne avec des nombres et aussi avec des valeurs non triées ?
Et oui ! Aucun problème de ce genre n’a été constaté.