Syntaxe de la fonction
MAP(tableau1; [tableau2; …]; LAMBDA(nom1; [nom2; …]; formule))
- tableau1 : le premier tableau à analyser ;
- tableau2; … : le ou les tableau(x) supplémentaire(s) à analyser ;
- LAMBDA() : la fonction LAMBDA à appliquer. Dans ce cas spécifique, la fonction LAMBDA attend les arguments suivants :
- nom1 : un nom à donner à la cellule de tableau1 traitée actuellement par la fonction LAMBDA ;
- nom2, … – [FACULTATIF, absent par défaut] : le ou les nom(s) à donner à la cellule des tableau(x) supplémentaire(s) traitée actuellement par la fonction LAMBDA ;
- formule : une formule pouvant manipuler les différentes cellules nommées précédemment.
Exemples d'utilisation
- MAP(A1:A5;LAMBDA(cellule;cellule*2))
- MAP(A1:A5;B1:B5;LAMBDA(cellule1;cellule2;MAX(cellule1;cellule2)))
Exercices d'application
Dans cet exercice, nous disposons d’un tableau de données contenant des noms et des prénoms. Nous souhaitons afficher en colonnes E et F la concaténation de ceux-ci. Par exemple, Anna et Tomie donnera Anna Tomie.
Pour cela, voici la formule utilisée :
=MAP(A2:B8;C2:D8;LAMBDA(cellule1;cellule2;CONCATENER(cellule1;" ";cellule2)))
Détaillons cette formule afin d’en comprendre le mécanisme :
- MAP récupère deux tableaux : les colonnes A et B d’une part, les colonnes C et D de l’autre ;
- la fonction LAMBDA donne alors le nom « cellule1 » à la cellule actuellement parcourue du tableau 1 ;
- le nom « cellule2 » est donné pour la cellule actuellement parcourue du tableau 2 ;
- nous demandons alors une concaténation de la cellule 1 avec un espace puis avec la cellule 2 ;
- ainsi, en premier lieu, la formule récupère le contenu de la cellule A2 (Anna), y ajoute un espace puis le contenu de la cellule C2 (Tomie) ;
- l’opération est répétée pour chaque cellule des deux tableaux.
💡 L’astuce Numericoach : pourquoi utiliser MAP dans ce cas précis ?
Le but ici est de ne taper qu’une seule formule qui traitera d’un coup toutes mes données. Or, la fonction ArrayFormula ne fonctionne pas avec CONCATENER. De plus, la fonction BYROW ne marche que sur des lignes et BYCOL ne marche que sur des colonnes : ici nous souhaitons traiter des lignes et des colonnes en même temps.
Démonstration
F1
=MAP(A2:B8;C2:D8;LAMBDA(cellule1;cellule2;CONCATENER(cellule1;" ";cellule2)))
A | B | C | D | E | F | G | |
---|---|---|---|---|---|---|---|
1 | Anna | Gina | Tomie | Bricot | =MAP(A2:B8;C2:D8;LAMBDA(cellule1;cellule2;CONCATENER(cellule1;" ";cellule2))) | Gina Bricot | |
2 | Gilles | Gérard | Parbal | Menfaim | Gilles Parbal | Gérard Menfaim | |
3 | Sandy | Eva | Ferrance | Sion | Sandy Ferrance | Eva Sion | |
4 |