SCAN est une fonction Microsoft 365 qui applique un calcul cumulatif à un tableau via LAMBDA et te retourne toutes les valeurs intermédiaires, pas seulement le résultat final. C'est la grande différence avec REDUCE : là où REDUCE te donne le total, SCAN te montre chaque étape du chemin.
En pratique, SCAN est l'outil idéal pour suivre un budget consommé mois après mois, reconstituer le solde bancaire après chaque transaction, tracker le CA cumulé vers un objectif trimestriel, ou surveiller l'avancement d'un projet heure par heure. Il transforme une colonne de valeurs périodiques en une colonne de totaux progressifs, prête à alimenter un graphique ou une alerte de dépassement.
Syntaxe de la fonction SCAN
=SCAN(valeur_initiale; tableau; fonction_lambda)SCAN nécessite Microsoft 365 avec les fonctions LAMBDA (déployées à partir de 2022). Elle n'est pas disponible dans Excel 2021, 2019 ou versions antérieures. Si tu vois #NOM?, vérifie ta version.
Comprendre chaque paramètre de la fonction SCAN
valeur_initiale
: le point de départ de l'accumulationPour un total cumulé, mets 0. Pour un produit cumulé, mets 1. Pour une concaténation de texte, mets "" (chaîne vide). Cette valeur apparaîtra comme premier élément du résultat, avant même le premier calcul : si ton tableau source a 5 éléments, le résultat en aura 6.
Astuce : Si la valeur initiale te gêne dans le résultat (elle apparaît en première position), enveloppe SCAN avec DROP pour l'éliminer : =DROP(SCAN(0;A1:A10;LAMBDA(cumul;v;cumul+v));1). Le tableau résultant aura alors exactement la même taille que ta source.
tableau
: la plage de cellules à parcourirÇa peut être une colonne (A1:A10), une ligne (B2:F2) ou un tableau bidimensionnel. SCAN traite chaque élément dans l'ordre : de haut en bas pour une colonne, de gauche à droite pour une ligne.
fonction_lambda
: une fonction LAMBDA avec exactement 2 paramètres : l'accumulateur (le résultat de l'étape précédente) et la valeur courante (l'élément actuel du tableau)Par exemple : LAMBDA(cumul;valeur;cumul+valeur) pour additionner progressivement. Cette fonction est appliquée à chaque élément du tableau, en passant le résultat d'un tour à l'autre.
Nomme tes paramètres de façon explicite : LAMBDA(cumul;vente;cumul+vente) est bien plus lisible que LAMBDA(a;v;a+v) pour toi et pour tes collègues.
Attention : La LAMBDA doit avoir exactement 2 paramètres. Si tu en mets 1 ou 3, Excel retourne #CALC!. Même si tu n'utilises qu'un des deux dans le corps de la formule, tu dois les déclarer tous les deux.
Pas envie d'écrire la formule SCAN à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Contrôleur financier : suivre le budget cumulé par rapport au plan annuel
Tu dois présenter au comité de direction l'évolution du budget consommé mois après mois pour anticiper les dépassements. Une liste de dépenses mensuelles ne suffit pas : tu as besoin de voir à quel moment tu atteins 50 % du budget annuel et comment la courbe progresse.
| A | B | C | |
|---|---|---|---|
| 1 | Mois | Dépenses | Cumulé |
| 2 | 0 € | ||
| 3 | Janvier | 45 000 € | 45 000 € |
| 4 | Février | 52 000 € | 97 000 € |
| 5 | Mars | 48 000 € | 145 000 € |
| 6 | Avril | 61 000 € | 206 000 € |
=SCAN(0;B2:B5;LAMBDA(cumul;depense;cumul+depense))La fonction génère automatiquement la colonne des dépenses cumulées : la première valeur (0) est la valeur initiale, puis chaque ligne montre le total progressif. Tu peux ensuite tracer un graphique en ligne sur ce résultat pour visualiser la trajectoire et la comparer au budget prévu.
Astuce de pro : Divise le résultat de SCAN par le budget annuel total pour obtenir directement le pourcentage consommé à chaque étape : =SCAN(0;B2:B12;LAMBDA(c;d;c+d))/budget_annuel. Applique ensuite une mise en forme conditionnelle pour colorer en rouge les cellules qui dépassent 80 %.
Directeur commercial : tracker le CA cumulé vers l'objectif trimestriel
Ton équipe a un objectif de 500 000 € pour le trimestre. Tu veux voir semaine après semaine si vous êtes sur la bonne trajectoire pour l'atteindre, et repérer les semaines creuses qui menacent l'objectif.
| A | B | C | |
|---|---|---|---|
| 1 | Semaine | CA | CA cumulé |
| 2 | 0 € | ||
| 3 | S1 | 85 000 € | 85 000 € |
| 4 | S2 | 92 000 € | 177 000 € |
| 5 | S3 | 78 000 € | 255 000 € |
| 6 | S4 | 105 000 € | 360 000 € |
=SCAN(0;B2:B5;LAMBDA(total;vente;total+vente))La fonction transforme ta liste de CA hebdomadaires en une progression cumulative : après 4 semaines, l'équipe est à 360 000 € sur 500 000 € visés. En ajoutant une colonne avec l'objectif prorata (500k/13 × numéro de semaine), tu identifies immédiatement si tu es en avance ou en retard.
Gestionnaire de trésorerie : calculer le solde après chaque transaction
Tu dois anticiper les moments où le compte sera en tension pour éviter les incidents de paiement. Tu pars d'un solde initial de 50 000 € et tu as une liste de transactions prévues (entrées et sorties en montants signés).
| A | B | C | |
|---|---|---|---|
| 1 | Transaction | Montant | Solde |
| 2 | Solde initial | 50 000 € | |
| 3 | Facture client A | +25 000 € | 75 000 € |
| 4 | Paie salariés | -35 000 € | 40 000 € |
| 5 | Loyer | -8 000 € | 32 000 € |
| 6 | Facture client B | +18 000 € | 50 000 € |
=SCAN(50000;B2:B5;LAMBDA(solde;mvt;solde+mvt))Ici, la valeur initiale est le solde de départ (50 000 €) et non 0, et la fonction produit le solde après chaque transaction. Tu vois immédiatement que le point bas est 32 000 € après le paiement du loyer. Si ce niveau passe sous ton seuil d'alerte, tu peux négocier des délais de paiement ou activer une ligne de crédit de façon préventive.
Chef de projet : suivre les heures consommées vs budget projet
Ton projet dispose d'un budget de 480 heures. Tu veux suivre semaine après semaine combien d'heures ont été consommées pour déclencher une alerte auprès de ton sponsor avant d'atteindre 80 % du budget (384 heures).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Semaine | Heures | Cumulé | % Budget (480 h) |
| 2 | Début | 0 h | 0 % | |
| 3 | S1 | 65 h | 65 h | 14 % |
| 4 | S2 | 72 h | 137 h | 29 % |
| 5 | S3 | 58 h | 195 h | 41 % |
| 6 | S4 | 81 h | 276 h | 58 % |
=SCAN(0;B2:B5;LAMBDA(cumul;heures;cumul+heures))La colonne « Cumulé » montre qu'à la semaine 4, 276 heures ont été consommées sur 480, soit 58 %. Le rythme moyen de 69 heures par semaine suggère que le budget sera épuisé vers la semaine 7. Cette visibilité te permet d'alerter le sponsor bien avant le dépassement.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction SCAN
Erreur #CALC! : nombre de paramètres LAMBDA incorrect
SCAN exige que ta fonction LAMBDA ait exactement 2 paramètres : l'accumulateur (résultat précédent) et la valeur courante. Si tu en déclares 1 ou 3, Excel retourne #CALC!.
Solution : Vérifie que ta LAMBDA suit bien le format LAMBDA(param1;param2;calcul). Même si tu n'utilises qu'un des deux paramètres dans le corps, tu dois les déclarer tous les deux.
Mauvaise valeur initiale qui fausse tous les résultats
Si tu veux un total cumulé mais que tu démarres avec 100 au lieu de 0, tous tes résultats auront 100 de trop. Pour un produit cumulé, démarrer avec 0 donnera toujours 0.
Solution : Choisis la valeur neutre selon ton opération : 0 pour une addition ou soustraction, 1 pour une multiplication ou division, "" (chaîne vide) pour une concaténation de texte. Pour un solde bancaire, utilise le solde réel de départ.
Erreur #NOM? : fonction non disponible dans ta version
SCAN nécessite Microsoft 365 avec les fonctions LAMBDA (déployées à partir de 2022). Elle n'existe pas dans Excel 2021, 2019, 2016 ou versions antérieures.
Solution : Vérifie que tu as Microsoft 365 à jour via Fichier > Compte > Mettre à jour maintenant. Si tu ne peux pas mettre à jour, crée une colonne auxiliaire avec des formules qui référencent la cellule précédente : =B2+C1 répété sur chaque ligne imite le comportement de SCAN.
Erreur #DÉBORD! : résultat qui déborde sur d'autres données
SCAN retourne un tableau dynamique qui a besoin d'espace. Si tu as des données dans les cellules en dessous (ou à côté), Excel ne peut pas déverser le résultat et affiche #DÉBORD!.
Solution : Libère N+1 cellules verticales pour le résultat, où N est le nombre d'éléments dans ton tableau source. SCAN retourne toujours un élément de plus que ta source (la valeur initiale en position 0). Supprime ou déplace les données qui occupent cet espace.
SCAN vs REDUCE vs MAP
Ces trois fonctions LAMBDA itèrent sur un tableau, mais pour des objectifs différents. SCAN est la seule à conserver toutes les étapes intermédiaires, ce qui en fait l'outil des visualisations progressives.
| Critère | SCAN | REDUCE | MAP |
|---|---|---|---|
| Retourne les valeurs intermédiaires | Oui (toutes les étapes) | Non (valeur finale uniquement) | Oui (chaque transformation) |
| Calculs cumulatifs | Parfait | Oui (résultat final) | Non |
| Transformations indépendantes | Non (dépend des précédents) | Non | Parfait |
| Taille du résultat | N+1 éléments | 1 valeur unique | N éléments (même taille) |
| Cas d'usage typique | Totaux cumulés, soldes progressifs | Total final, agrégation | Calcul sur chaque ligne indépendamment |
| Disponibilité | Microsoft 365 uniquement | Microsoft 365 uniquement | Microsoft 365 uniquement |
Astuces avancées avec SCAN
Retire la valeur initiale avec DROP
Le premier élément du tableau retourné par SCAN est toujours la valeur initiale, ce qui décale tout d'une ligne par rapport à ta source. Si ce décalage gêne ton tableau, enveloppe SCAN avec DROP : =DROP(SCAN(0;A1:A10;LAMBDA(c;v;c+v));1). Le résultat aura alors exactement la même taille que ta plage source.
C'est particulièrement utile quand tu allignes le résultat avec une colonne de dates ou de labels existants.
Alimente directement un graphique en courbe
Le tableau retourné par SCAN est parfait pour un graphique en courbe de progression. Sélectionne la plage déversée (par exemple C2# si SCAN est en C2), insère un graphique en courbes, et tu obtiens immédiatement la visualisation de la progression.
Pour aller plus loin, ajoute une deuxième série avec l'objectif prorata et tu vois en un coup d'oeil si la trajectoire est bonne.
Nomme les paramètres LAMBDA de façon explicite
Au lieu de LAMBDA(a;v;a+v), écris LAMBDA(cumul;vente;cumul+vente). Cette habitude rend ta formule immédiatement compréhensible par tes collègues et par toi-même dans 6 mois, sans avoir à reconstituer la logique.
Quand tu imbriques des SCAN dans des formules plus complexes, des noms explicites évitent les confusions entre les différents accumulateurs.
Questions fréquentes sur la fonction SCAN
Quelle est la différence entre SCAN et REDUCE ?
REDUCE retourne uniquement la valeur finale après toutes les itérations, comme un total global. SCAN retourne un tableau complet contenant la valeur à chaque étape intermédiaire, ce qui te permet de voir l'évolution du calcul pas à pas.
C'est comme voir le film complet avec SCAN, contre voir uniquement la fin avec REDUCE. Pour un rapport mensuel de dépenses cumulées, tu as besoin de SCAN ; pour simplement connaître le total annuel, REDUCE suffit.
Pourquoi SCAN retourne-t-il un tableau plus grand que l'original ?
SCAN inclut toujours la valeur initiale comme premier élément du résultat. Si ton tableau source a 5 éléments, SCAN retournera 6 valeurs : la valeur initiale en première position, puis les 5 résultats d'accumulation.
Si tu veux un résultat de la même taille que ta source, utilise =DROP(SCAN(...);1) pour supprimer ce premier élément.
Comment utiliser SCAN pour calculer des totaux cumulés ?
Utilise =SCAN(0;ta_plage;LAMBDA(total;valeur;total+valeur)). Cela génère un tableau où chaque cellule contient la somme de toutes les valeurs précédentes plus la valeur courante. Parfait pour suivre des ventes cumulées ou des budgets progressifs.
Si tu veux partir d'un solde non nul (par exemple 50000 € en caisse au départ), remplace le 0 initial par ce montant : =SCAN(50000;B2:B12;LAMBDA(solde;mvt;solde+mvt)).
SCAN peut-il traiter des tableaux bidimensionnels ?
Oui, SCAN parcourt les tableaux 2D cellule par cellule, ligne par ligne, de gauche à droite puis de haut en bas. Le résultat conserve la même forme que le tableau d'entrée, avec une cellule supplémentaire au début pour la valeur initiale.
Mais pour la plupart des cas d'usage métier (totaux cumulés, soldes), on travaille avec des colonnes ou lignes simples, ce qui est plus intuitif à interpréter.
SCAN fonctionne-t-il dans toutes les versions d'Excel ?
Non. SCAN nécessite Microsoft 365 avec les fonctions LAMBDA activées, déployées à partir de 2022. Elle n'est pas disponible dans Excel 2021, 2019 ou versions antérieures.
Si tu n'as pas accès à SCAN, tu peux créer des colonnes auxiliaires avec des formules qui référencent la cellule précédente : en C2 tu mets =B2, puis en C3 tu mets =C2+B3, et tu copies vers le bas. C'est plus laborieux mais donne le même résultat.
Pour aller plus loin
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

