MAKEARRAY est une nouvelle fonction d’Excel 365 qui permet de générer facilement un tableau de valeurs d’une taille de ligne et de colonne spécifiée, en appliquant une fonction LAMBDA.
La première remarque qu’on peut
faire avant de commencer ce cours c’est qu’Excel garde, à l’instant où j’écris
cet article, la nomination anglaise de cette fonction, contrairement à ce qui était
habituel lors de l’utilisation de ses fonctions. Est-ce que la traduction de ce nom apparaitra ou non dans les mises à jour qui vont venir ? je n'ai aucune information pour l'instant à ce propos !
Voilà, c’est juste une petite remarque
à laquelle je voulais attirer votre attention avant de passer à
l’explication de l’utilisation de la fonction MAKEARRAY.
Comment utiliser la fonction MAKEARRAY ?
La syntaxe de cette fonction est
:
MAKEARRAY (nombre de lignes ;nombre
de colonnes ;calcul)
On demande à Excel alors de créer
un tableau se composant du nombre de lignes et de colonnes que l’on définit
dans les deux premiers arguments, puis de remplir ce tableau par les données qui
seront renvoyés par le calcul qui va être effectué (le troisième paramètre) à
l’aide de la fonction LAMBDA.
Note :LAMBDA est une
nouvelle fonction qui vient d’apparaitre récemment. Vous trouvez plus
d’explication sur sa façon d’utiliser en suivant ce lien : Comment utiliser la fonction LAMBDA ?
Exemple simple d’utilisation de MAKEARRAY
Voici comment utiliser MAKEARRAY
pour créer par exemple une table de multiplication très rapidement :
Sélectionnez une cellule, par
exemple A1, puis tapez cette formule :
=MAKEARRAY(10;10;LAMBDA(x;y;x*y))
Lorsque vous validez, Excel va
générer une table de multiplication de dimensions 10×10.
- Nombre de lignes : 10
- Nombre de colonnes : 10
- Calcul : LAMBDA(x;y;x*y), x représente ici l’index de ligne (de 1 à 10) et y l’index de colonne (de 1 à 10 également) qui seront utilisés dans le calcul de LAMBDA (x*y).
Utilisation complexe de MAKEARRAY
- Intégrer INDEX et ALEA.ENTRE.BORNES
dans MAKEARRAY
Supposons par exemple que j’ai un
tableau qui affiche les noms de quelques fruits, et que je veux qu’à partir de
ce tableau créer un autre tableau de dimensions spécifiées qui sera rempli
aléatoirement par ces noms de fruits.
Voici donc mon tableau de départ
composé de 3 lignes et de 4 colonnes:
- Primo, je veux générer aléatoirement les noms des fruits dans un tableau d’une colonne et de 5 lignes :
Pour cela je vais me servir de la
fonction INDEX et de ALEA.ENTRE.BORNES qui vont être insérées dans la fonction
LAMBDA de cette façon :
=MAKEARRAY(5;1;LAMBDA(x;y;INDEX($A$2:$D$4;ALEA.ENTRE.BORNES(1;3);ALEA.ENTRE.BORNES(1;4))))
Voici le résultat obtenu :
J’explique le fonctionnement de cette formule :
Tout d’abord nous savons que la
fonction INDEX nous permet de renvoyer une valeur qui se trouve dans une plage
de cellules à l’intersection d’une ligne et d’une colonne que nous lui
spécifions.
Plus de détails sur l’utilisation
de la fonction INDEX ici : Comment utiliser la fonction INDEX?
Nous savons également que la
fonction ALEA.ENTRE.BORNES renvoie un nombre aléatoire entre les nombres que
l’on spécifie.
Dans notre cas, INDEX va chercher
dans le tableau des noms des fruits (A2:D4) le nom du fruit se trouvant à
l’intersection de la ligne que son numéro sera renvoyé par ALEA.ENTRE.BORNES(1;3)
et de la colonne dont le numéro sera renvoyé par ALEA.ENTRE.BORNES(1;4).
Et puisque notre tableau à créer sera d’une dimension de 5x1, la fonction LAMBDA sera exécutée 5 fois pour remplir les 5 cellules de notre nouveau tableau.
Appuyez sur F9 pour actualiser la
formule :
L’image suivante essaie de vous
rapprocher ce qui était effectué pour générer le tableau créé :
- Secundo, je vais créer un tableau avec avec plus de lignes ou de colonnes :
Cette fois je vais procéder à une
petite modification dans l’écriture de ma formule MAKEARRAY, en effet, au lieu
de saisir à chaque fois les nombres de lignes et de colonnes souhaités, je vais
insérer les références des cellules C8 et C9 qui les contiennent, et de cette
façon il me sera très facile la tâche de modifier ces deux nombres.
=MAKEARRAY(C8;C9;LAMBDA(x;y;INDEX($A$2:$D$4;ALEA.ENTRE.BORNES(1;3);ALEA.ENTRE.BORNES(1;4))))
Voici alors un exemple de
résultat que j’ai obtenu :
En appuyant sur F9 encore, le calcul sera actualisé.
Comme vous pouvez le voir, avec
seulement une formule très réduite, nous sommes arrivés à créer très
facilement un tableau avec des données dynamiques et qui changent chaque fois
que nous actualisons le calcul, en appuyant sur la touche F9.
2. Générer un tableau de lettres aléatoires de A à Z
Vous savez que chaque caractère Windows
(lettre, nombre, symbole, signe…) a un code spécial. Si nous prenons l’exemple
des lettres majuscules de A à Z, leurs codes vont de 65 à 90. (Lisez sur Jeu de
caractères ANSI et Unicode en cherchant sur google pour plus d’informations).
Si vous tapez par exemple :
=CAR(65) dans une cellule, Excel vous affiche A
Choisissez un autre nombre de 65
à 90 pour afficher la lettre qui lui correspond.
J’ai fait cette petite
introduction parce que mon but est de vous préparer à trouver la bonne formule
utilisant MAKEARRAY et CAR pour créer un tableau de 2 lignes et de 6 colonnes qui
va afficher aléatoirement des lettres majuscules de A à Z, et qui sera
actualisé à chaque fois que l’on tape F9.
Voici un tableau pareil à ce que vous pourriez obtenir :
A vous donc de trouver cette
formule et de la partager avec nous dans la zone commentaire ci-dessous.
Je serai à l’attente de votre
réponse.
Bonne chance !
Ouah pas simple tout ça mais très instructif, merci
RépondreSupprimerAvec plaisir
Supprimer