Formule Excel: référence de feuille de calcul dynamique -

Table des matières

Formule générique

=INDIRECT(sheet_name&"!A1")

Sommaire

Pour créer une formule avec un nom de feuille dynamique, vous pouvez utiliser la fonction INDIRECT. Dans l'exemple illustré, la formule en C6 est:

=INDIRECT(B6&"!A1")

Remarque: Le but d'INDIRECT ici est de construire une formule où le nom de la feuille est une variable dynamique. Par exemple, vous pouvez changer le nom d'une feuille (peut-être avec un menu déroulant) et extraire des informations d'une feuille de calcul différente.

Explication

La fonction INDIRECT essaie d'évaluer le texte en tant que référence de feuille de calcul. Cela permet de créer des formules qui assemblent une référence sous forme de texte à l'aide de la concaténation et d'utiliser le texte résultant comme référence valide.

Dans cet exemple, nous avons des noms de feuille dans la colonne B, nous joignons donc le nom de feuille à la référence de cellule A1 en utilisant la concaténation:

=INDIRECT(B6&"!A1")

Après concaténation, nous avons:

=INDIRECT("Sheet1!A1")

INDIRECT reconnaît cela comme une référence valide à la cellule A1 dans la feuille Sheet1 et renvoie la valeur dans A1, 100. Dans la cellule C7, la formule s'évalue comme ceci:

=INDIRECT(B7&"!A1") =INDIRECT("Sheet2!A1") =Sheet2!A1 =200

Et ainsi de suite, pour chaque formule de la colonne C.

Gestion des espaces et de la ponctuation dans les noms de feuille

Si les noms de feuille contiennent des espaces ou des caractères de ponctuation, vous devrez ajuster la formule pour mettre le nom de la feuille entre guillemets simples (') comme ceci:

=INDIRECT("'"&sheet_name&"'!A1")

nom_feuille est une référence contenant le nom de la feuille. Pour l'exemple sur cette page, la formule serait:

=INDIRECT("'"&B6&"'!A1")

Notez que cette exigence n'est pas spécifique à la fonction INDIRECT. Toute formule qui fait référence à un nom de feuille avec un espace ou une ponctuation doit mettre le nom de la feuille entre guillemets simples.

Articles intéressants...