MAP applique une fonction LAMBDA personnalisée à chaque valeur d'un ou plusieurs tableaux et retourne un nouveau tableau de résultats de même dimension. Elle te permet de transformer toute une colonne en une seule formule, sans copier-coller : augmenter tous les prix de 20 %, convertir des unités, nettoyer du texte, catégoriser des scores.
C'est la version Excel de la fonction « map » connue en programmation : parcourir chaque élément, appliquer une transformation, renvoyer le résultat. Disponible depuis Excel 365, MAP est particulièrement puissante combinée avec FILTRE, TRIER ou UNIQUE pour enchaîner des transformations complexes sur des données dynamiques.
Syntaxe de la fonction MAP
=MAP(tableau1; [tableau2]; ...; lambda)MAP est disponible uniquement dans Excel 365. Sur une version antérieure, la formule retourne #NOM?. Si LAMBDA n'est pas disponible non plus, utilise des formules matricielles classiques confirmées avec Ctrl+Maj+Entrée.
Comprendre chaque paramètre de la fonction MAP
Tu donnes d'abord un ou plusieurs tableaux, et tu termines TOUJOURS par la LAMBDA : c'est elle qui décrit le calcul à appliquer. Seul tableau1 et la LAMBDA sont obligatoires ; les tableaux supplémentaires sont facultatifs, mais dès que tu en ajoutes un, ta LAMBDA doit gagner un paramètre de plus, sinon Excel te renvoie #CALC!.
tableau1
: le premier tableau à transformerCe peut être une plage de cellules (A2:A10), un tableau nommé, ou le résultat d'une autre fonction dynamique comme FILTRE ou UNIQUE.
MAP parcourt chaque cellule de ce tableau dans l'ordre et passe sa valeur à la fonction LAMBDA comme premier paramètre.
tableau2, ...
: tableaux supplémentaires à combiner élément par élément avec `tableau1`(facultatif)Chaque tableau supplémentaire ajoute un paramètre à ta fonction LAMBDA.
Si tu passes deux tableaux, LAMBDA reçoit deux valeurs à chaque itération (une de chaque tableau). Tous les tableaux fournis doivent avoir la même taille ou être extensibles à la même taille.
Astuce : Utilise plusieurs tableaux quand tu as besoin de combiner deux colonnes ligne par ligne : quantité × prix unitaire, prénom + espace + nom, etc.
lambda
: la fonction LAMBDA qui définit la transformation à appliquer à chaque élémentElle doit avoir autant de paramètres qu'il y a de tableaux fournis à MAP.
Le dernier argument de MAP est toujours LAMBDA. Si tu passes deux tableaux, ta LAMBDA s'écrit LAMBDA(x; y; calcul_avec_x_et_y). Les paramètres peuvent porter n'importe quel nom : préfère des noms explicites comme prix, quantite plutôt que x, y.
Attention : Si le nombre de paramètres dans LAMBDA ne correspond pas au nombre de tableaux fournis à MAP, Excel retourne #CALC!. Compte bien : un tableau = un paramètre LAMBDA.
Exemples pratiques pas à pas
Commercial : appliquer une augmentation de prix de 20 %
Tu es commercial et tu dois appliquer une hausse de 20 % à toute ta grille tarifaire de 4 produits. Plutôt que d'écrire une formule dans chaque cellule et de la copier vers le bas, MAP traite toute la colonne d'un coup.
| A | B | |
|---|---|---|
| 1 | Prix original | Prix après +20 % |
| 2 | 100 | 120 |
| 3 | 250 | 300 |
| 4 | 75 | 90 |
| 5 | 320 | 384 |
=MAP(A2:A5; LAMBDA(prix; prix*1.2))La fonction reçoit chaque prix dans le paramètre prix et le multiplie par 1,2, puis construit automatiquement un tableau avec tous les résultats. Si tu ajoutes un prix en A6, étend la plage à A2:A6 et le résultat s'adapte.
Gestionnaire de stock : calculer le total ligne par ligne
Tu gères un stock et tu dois calculer le montant total de chaque ligne de commande (quantité × prix unitaire). MAP peut traiter deux tableaux simultanément, ce qui évite de créer une colonne intermédiaire.
| A | B | C | |
|---|---|---|---|
| 1 | Quantité | Prix unitaire | Total |
| 2 | 5 | 10 | 50 |
| 3 | 12 | 8,5 | 102 |
| 4 | 3 | 25 | 75 |
=MAP(A2:A4; B2:B4; LAMBDA(qte; prix; qte*prix))La formule passe à LAMBDA deux valeurs à chaque itération : la quantité et le prix de la même ligne. Pour chaque ligne, la multiplication est appliquée et le résultat est placé dans le tableau de sortie.
Responsable formation : catégoriser des scores d'évaluation
Tu es responsable formation et tu dois catégoriser automatiquement les scores d'une évaluation. Les scores supérieurs ou égaux à 80 sont "Élevés", les autres sont "Normaux".
| A | B | |
|---|---|---|
| 1 | Score | Catégorie |
| 2 | 85 | Élevé |
| 3 | 45 | Normal |
| 4 | 92 | Élevé |
| 5 | 67 | Normal |
=MAP(A2:A5; LAMBDA(score; SI(score>=80; "Élevé"; "Normal")))La LAMBDA évalue chaque score avec une condition SI, et MAP applique cette logique à toute la colonne en une seule formule. Tu peux imbriquer n'importe quelle fonction Excel dans la LAMBDA, y compris plusieurs SI ou des formules complexes.
Astuce de pro : Nomme tes paramètres LAMBDA de façon explicite (score plutôt que x) : la formule reste lisible même des mois plus tard, et facilite le débogage quand LAMBDA est imbriquée dans une expression plus longue.
Data analyst : appliquer plusieurs fonctions imbriquées
Tu es data analyst et tu dois normaliser une série de valeurs : calculer la racine carrée de chaque nombre et l'arrondir à l'entier le plus proche.
| A | B | |
|---|---|---|
| 1 | Nombre | Racine arrondie |
| 2 | 50 | 7 |
| 3 | 100 | 10 |
| 4 | 23 | 5 |
| 5 | 200 | 14 |
=MAP(A2:A5; LAMBDA(n; ARRONDI(RACINE(n); 0)))La formule montre comment imbriquer plusieurs fonctions dans la LAMBDA : pour chaque nombre n, on calcule d'abord la racine carrée, puis on arrondit le résultat à 0 décimale. Tu peux imbriquer autant de fonctions que nécessaire.
Administrateur : générer des phrases à partir de trois colonnes
Tu dois générer des libellés automatiques à partir de trois colonnes : prénom, verbe et complément. MAP peut combiner trois tableaux simultanément : chaque itération reçoit trois valeurs, une de chaque colonne.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Prénom | Verbe | Complément | Phrase |
| 2 | Marie | mange | une pomme | Marie mange une pomme |
| 3 | Paul | lit | un livre | Paul lit un livre |
| 4 | Sophie | écrit | une lettre | Sophie écrit une lettre |
=MAP(A2:A4; B2:B4; C2:C4; LAMBDA(nom; action; objet; nom&" "&action&" "&objet))La formule concatène les trois valeurs de la même ligne avec des espaces. Cette technique est utile pour générer des rapports, des messages personnalisés ou des libellés comptables à partir de colonnes séparées.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction MAP
Neuf fois sur dix, le souci vient d'un décompte qui ne colle pas : ta LAMBDA doit avoir exactement autant de paramètres que de tableaux passés, faute de quoi Excel renvoie #CALC!. Le #NOM? est différent, il ne pointe aucune faute de frappe mais une version d'Excel trop ancienne (MAP exige Microsoft 365).
Méfie-toi aussi du cas sournois : des tableaux de tailles différentes ne déclenchent aucune erreur, MAP rallonge le plus court en répétant sa dernière valeur et te sort des résultats faux sans prévenir.
Erreur #CALC! sur la formule MAP
Le nombre de paramètres dans LAMBDA ne correspond pas au nombre de tableaux fournis à MAP. Si tu passes 2 tableaux et que LAMBDA n'a qu'un paramètre, Excel retourne #CALC!.
Solution : Compte les tableaux que tu passes à MAP et assure-toi que LAMBDA a exactement le même nombre de paramètres. Pour 2 tableaux : =MAP(A1:A5; B1:B5; LAMBDA(x; y; x+y)).
Erreur #VALEUR! dans certaines cellules du résultat
Ta LAMBDA tente une opération mathématique sur une cellule contenant du texte non numérique. MAP applique la transformation à toutes les cellules sans distinction de type.
Solution : Ajoute une vérification avec ESTNUM() ou SIERREUR() dans LAMBDA : =MAP(A1:A5; LAMBDA(x; SI(ESTNUM(x); x*2; 0))) renvoie 0 pour les cellules non numériques au lieu d'une erreur.
Erreur #NOM? à la place du résultat
MAP et LAMBDA nécessitent Microsoft 365. Sur Excel 2019 ou une version antérieure, ces fonctions ne sont pas reconnues.
Solution : Vérifie ta version d'Excel via Fichier > Compte. Si MAP n'est pas disponible, remplace-la par des formules matricielles classiques confirmées avec Ctrl+Maj+Entrée, comme =A2:A5*1.2.
Résultats inattendus avec des tableaux de tailles différentes
Quand les tableaux n'ont pas les mêmes dimensions, MAP étend le plus petit en répétant ses dernières valeurs, ce qui donne des résultats trompeurs sans afficher d'erreur.
Solution : Vérifie que tous tes tableaux ont exactement les mêmes dimensions en comparant =LIGNES(A2:A10) et =LIGNES(B2:B10) avant d'utiliser MAP. Utilise ETENDRE pour uniformiser des tableaux de tailles différentes.
MAP vs BYROW vs BYCOL vs MAKEARRAY
Choisis MAP quand tu veux transformer chaque cellule une à une (majorer un prix, nettoyer un texte) ou combiner plusieurs colonnes ligne par ligne. Si au contraire tu dois résumer une ligne ou une colonne entière en une seule valeur (somme, max…), passe à BYROW ou BYCOL ; et quand tu n'as aucune donnée en entrée mais une grille à générer de toutes pièces, c'est MAKEARRAY qu'il te faut.
| Critère | MAP | BYROW | BYCOL | MAKEARRAY |
|---|---|---|---|---|
| Ce que ça fait | Transforme chaque élément d'un tableau | Applique LAMBDA à chaque ligne entière | Applique LAMBDA à chaque colonne entière | Crée un tableau via LAMBDA(ligne; col) |
| Tableau en entrée | Oui (1 ou plusieurs) | Oui (1) | Oui (1) | Non (spécifie les dimensions) |
| Unité traitée | Cellule par cellule | Ligne par ligne | Colonne par colonne | Coordonnée (i; j) |
| Cas d'usage typique | Transformer des valeurs individuelles | Agréger chaque ligne (somme, max...) | Agréger chaque colonne | Créer une table de multiplication, une matrice |
| Disponibilité | Excel 365 | Excel 365 | Excel 365 | Excel 365 |
Questions fréquentes sur la fonction MAP
Quelle différence entre MAP et MAKEARRAY ?
MAP applique une fonction LAMBDA aux éléments de tableaux existants : tu fournis les données, MAP les transforme. MAKEARRAY crée un nouveau tableau en générant chaque valeur avec LAMBDA selon ses coordonnées ligne/colonne : tu ne fournis pas de données, tu définis une règle de génération.
Peut-on utiliser MAP avec plusieurs tableaux simultanément ?
Oui, MAP accepte plusieurs tableaux. La LAMBDA reçoit alors autant de paramètres qu'il y a de tableaux, permettant des opérations combinées élément par élément. Si tu passes 3 tableaux, ta LAMBDA doit avoir 3 paramètres : LAMBDA(a; b; c; calcul).
Comment MAP gère les tableaux de tailles différentes ?
MAP étend automatiquement les tableaux plus petits pour correspondre au plus grand. Les valeurs manquantes sont répétées en prolongeant la dernière valeur disponible. Pour éviter des résultats trompeurs, il vaut mieux s'assurer que tous les tableaux ont les mêmes dimensions avant d'appeler MAP.
MAP fonctionne-t-il avec les plages nommées ?
Oui, tu peux utiliser des plages nommées comme arguments de MAP. Par exemple, =MAP(MesVentes; LAMBDA(x; x*1.2)) fonctionne parfaitement si MesVentes est une plage nommée dans ton classeur.
Quelle est la différence entre MAP et une formule matricielle classique ?
Une formule matricielle comme =A2:A5*1.2 fait la même chose que =MAP(A2:A5; LAMBDA(x; x*1.2)) pour une transformation simple. MAP prend tout son intérêt quand la logique est complexe (conditions imbriquées, appels à plusieurs fonctions) ou quand tu veux nommer les paramètres pour la lisibilité.
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
