La fonction MAP d'Excel est une nouvelle fonction propagée d'Excel 365 qui s'adresse avant tout à des développeurs ou des scientifiques. Son intérêt principal c'est d'optimiser la mémoire pour des calculs longs ou complexes. En une seule formule, vous allez pouvoir remplir plusieurs lignes de votre tableau. C'est grâce à cette fonction que nous avons construit notre simulateur de prêt dynamique.
Cet article a pour but de vous montrer au travers de plusieurs exemples comment se construit une fonction MAP dans Excel et son utilisation.
Construction de la fonction MAP
La fonction MAP a besoin de une ou plusieurs matrices (ou plus simplement de plage de cellules) et opère une opération mathématique sur ces matrices. La fonction s'écrit de la façon suivante :
- Matrice 1. C'est soit une plage de données ou le résultat d'une fonction. Obligatoire
- Matrice 2. Facultative
- Matrice 3. Facultative
- ...........
- Fonction Lambda pour faire le calcul attendu.
=MAP(Matrice 1; Matrice 2; ...... ; LAMBDA())
La fonction MAP dans un exemple très simpliste
Comme premier exemple, nous allons faire un extrêmement simple, voir sans intérêt. Mais cela va avoir l'avantage de comprendre la construction de la fonction.
Nous allons ajouter la valeur 10 à notre première série de valeurs en colonne B. Certes, dans une situation normale d'utilisation d'Excel, nous écrirons la fonction =B2+10 puis nous recopierons la formule.
La même situation avec la fonction MAP s'écrit de la façon suivante (les explications sont données plus bas)
=MAP(B2:B11;LAMBDA(x;x+10))
Nombre à la puissance 2
Si maintenant, au lieu de faire une addition nous voulons faire une suite de valeurs élévées à la puissance 2, rien de plus facile. Il suffit de remplacer dans la fonction LAMBDA l'opération x+10 par PUISSANCE(x;2)
Optimisation de la fonction MAP
Maintenant, allons une étape plus loin. En fait, grâce à la fonction SEQUENCE, nous pouvons remplacer le premier argument de la fonction. En effet, dans ce cas de figure, nous avons simplement une série de valeur de 1 à 10. Ce qui s'écrit =SEQUENCE(10). Appliqué à notre exemple, nous pouvons écrire la fonction suivante pour le même résultat
L'optimisation n'est peut-être pas très visible mais elle est fondamentale. En fait, plutôt que de créer une liste de valeur dans des cellules, nous construisons la liste en mémoire. Revenez au tout début de l'article et vous verrez que nous pouvons, soit utliser une plage de cellules ou une fonction comme matrice.
L'avantage d'utiliser une fonction comme argument permet de moins utiliser la mémoire. En effet, une plage de cellules sollicite plus la mémoire à cause du coté "visuel". Si la conception de la série de nombre est en mémoire, la fonction MAP est plus "rapide".
Cas pratique de l'utilisation de la fonction MAP
Prenons le cas où vous voulez appliquer une augmentation de salaire à vos employés. Vous avez en colonne A les salaires actuels et en colonne B l'augmentation.
Avec la fonction MAP, nous allons multiplier les 2 colonnes.
- La première colonne sera identifiée par la lettre x dans la fonction LAMBDA
- La seconde colonne sera identifiée par la lettre y.
- Ensuite, nous procédons à la multiplication des valeurs dans les 2 colonnes.
Mais nous pouvons également intégrer ce résultat dans une fonction SOMME pour obtenir le résultat de la multiplication de chaque ligne. De cette façon, nous obtenons un résultat similaire à la fonction SOMMEPRODUIT
Mais si nous voulons faire la moyenne des hausses, alors la combinaison de la fonction MOYENNE et MAP va pouvoir nous retourner le résultat.
Conclusion
Les exemples proposées sont très simple et l'utilisation de la fonction MAP n'est pas nécessaire (sauf pour le dernier exemple). Mais ces exemples vont vous permettre de comprendre comment construire des tableaux en mémoire pour des fonctions complexes.
Clément
23/08/2024 @ 14:17
Bonjour,
Dans le dernier exemple est-ce que l'utilisation de la fonction MAP a fondamentalement plus d'intérêt que faire SOMMEPROD()/NB() pour calculer la moyenne ?
A-t-on un moyen d'évaluer le gain en performance vs d'autres formules ?
Peut-on intégrer des connecteurs logiques dans les opérations mises en mémoire via la fonction LAMBDA ?
Merci
Frédéric LE GUEN
23/08/2024 @ 15:31
Je ne m'attendais pas à avoir si vite un retour (juste 2H après avoir publié l'article 😁😉)
Je vais être honnête, ... Je n'en sais rien.
La fonction MAP s'adresse à une communauté très réduites d'utilisateurs avancés d'expert en data. Je vais me renseigner et je reviens vers vous dès que j'ai la réponse.