La fonction Indirect (a)
Il y a longtemps que nous n’avons pas parlé de la fonction indirect(), qui est pourtant une
fonction particulièrement originale, et importante, d’Excel.
Supposez qu’en B1, vous ayez récupéré (cf. formule
reproduite en B8) un montant de dépense provenant d’un autre classeur. Vous
souhaitez rendre cette recherche paramétrable, en vous gardant la possibilité
de modifier le nom du classeur, celui de la feuille, ou l’adresse de la cellule
concernée.
Cela se fait très bien en utilisant la solution proposée en B2
(cf. formule en B9), grâce à la fonction indirect().
L’argument de la fonction sert uniquement à reconstituer, caractère par
caractère, la formule que nous avions en B1 (cf. formule en B8).
Remarque 1 – Si
le classeur référencé dans la formule n’est pas ouvert, le résultat de la
formule est le message d’erreur #REF !
Remarque 2 –
Dans le cas ci-dessus, qu’il y ait $B$129 ou B129 dans la cellule B6 revient
strictement au même.
Syntaxe de la fonction
La syntaxe de la fonction est =indirect(référence[;A1]).
Les crochets dans la syntaxe indiquent que cet argument est facultatif.
Remarque 3 – Notez que, contrairement à Microsoft, nous mettons bien – dans nos syntaxes – le ";" à l'intérieur des crochets. Dans l'aide d'Excel, Microsoft les met toujours, à tort, en dehors...
Les crochets dans la syntaxe indiquent que cet argument est facultatif.
Remarque 3 – Notez que, contrairement à Microsoft, nous mettons bien – dans nos syntaxes – le ";" à l'intérieur des crochets. Dans l'aide d'Excel, Microsoft les met toujours, à tort, en dehors...
Si l’argument facultatif A1 est FAUX,
la référence doit être de type L1C1.
S’il est VRAI ou absent,
la référence doit être de type A1, c’est-à-dire une ou plusieurs lettres pour
la colonne et un nombre pour la ligne.
2 Commentaire(s):
Si la fonction "indirect" est importante et très utile, elle présente le désavantage d'être volatile (tout comme décaler), ce qui peut être un désavantage pour des modèles Excel de grande taille. Si la fonction décaler peut facilement être remplacé par une autre fonction ("index" ou "somme.si" en l’occurrence), je ne vois pas d'alternative à indirect (sauf à recourir aux fonctions personnalisées de VBA). Peut-être avez-vous une solution à ce "léger" problème ?
Cordialement.
By Stéphane Ntonga, sur 5:40 PM
Comme vous avez pu le constater, le titre de l'article précédent était suivi de "(a)", ce qui signifiait qu'il allait y avoir une suite.
Nous parlerons plus des fonctions volatiles dans les jours qui viennent...
By Hervé Thiriez, sur 7:37 AM
Enregistrer un commentaire
<< Accueil