Formule nommée:une solution aux formules trop longues.
par
, 25/02/2018 à 22h00 (3568 Affichages)
Imaginez un tableau de données...
Imaginez que vous deviez, dans une feuille du classeur, récupérer les données d'une personne en fonction de son matricule...
La formule est un peu longue et inutilement répétitive, non?
=INDEX(t_Contacts[Prénom];EQUIV(A2;t_Contacts[ID];0)) & " " & INDEX(t_Contacts[Nom];EQUIV(A2;t_Contacts[ID];0)) & " (" & INDEX(t_Contacts[Service];EQUIV(A2;t_Contacts[ID];0)) & ")"
Et si on raccourcissait tout ça?
Par exemple avec ceci
=INDEX(t_Contacts[Prénom];Contact_Position) & " " & INDEX(t_Contacts[Nom];Contact_Position) & " (" & INDEX(t_Contacts[Prénom];Contact_Position) & ")"
Ou encore comme ceci...
=Contact
Quoi, c'est possible, ça?
Hé oui, grâce à une formule nommée...
Dans Excel, on peut nommer des cellules ou des plages, par exemple, mais pas uniquement, en sélectionnant une cellule ou une plage puis en lui attribuant un nom via la zone de noms à gauche de la barre de formule...
Mais dans les faits, en créant une plage nommée, nous créons une formule nommée, comme l'illustre le gestionnaire de noms (onglet Formules, Noms définis, Gestionnaire de noms)...
Et si l'on peut y mettre une formule, on peut y mettre n'importe quelleformule... Enfin presque.
Remarquons que
- la plage nommée est attachée à une feuille;
- par défaut, la référence vers laquelle on pointe est absolue (Remarquez bien l'utilisation des $ lorsque la plage nommée est créée de cette façon...).
Cela signifie que l'on peut, en fait, utiliser un nom comme alias d'une formule dans les limites suivantes:
- la formule nommée utilisera toujours les références de la même feuille;
- la formule doit être rédigée en tenant compte des références absolues et relatives qui seront interprétées lors de son utilisation dans une cellule;
la cellule active au moment de la rédaction de la formule dans le gestionnaire de nom est d'une importance capitale (c'est par rapport à elle que les références relatives seront calculées!!
Dans notre exemple, on va d'abord essayer de créer un alias pour la fonction EQUIV qui est répétée trois fois. C'est assez simple. Il suffit de:
- copier cette partie de la formule;
- créer une formule nommée qui utilise la fonction;
- utiliser l'alias au sein de la formule complète.
Voilà le résultat. Comme vous le voyez, ce n'est guère compliqué. Il faut bien comprendre cependant que contact_Position est l'alias de [I]Equiv(A2;t_Contacts[Id];[0)/I], ce qui veut dire que cet alias doit se trouver juste à droite de la cellule qui contient le code utilisé par EQUIV. En effet, le fait d'avoir renseigné A2 sans $ alors que j'étais en B2 veut dire une cellule à gauche. (Pensez toujours aux références relatives par rapport à la cellule active lorque vous créez des plages ou des formules nommées). Vous pouvez donc utiliser cette formule n'importe où dans votre classeur, mais elle utilisera toujours la cellule qui, dans Feuil1, se trouve juste à gauche que la cellule où elle est utilisée! (Comprendre ce point est capital).
Dès lors, on peut s'amuser à aller un peu plus loin, en créant par exemple des alias pour récupérer le prénom, le nom puis le matricule. Et àn peut, bien sûr, créer des alias qui utilisent d'autres alias.
Perso, je trouve cette technique très utile pour créer des classeurs, notamment des plannings, en respectant les règles capitales d'Excel...
Dans un prochain billet, je vous montrerai un exemple concret d'utilisation de plages nommées...
A très bientôt, et je vous souhaite beaucoup de plaisir dans l'utilisation d'Excel...