Formule générique
=INDIRECT("'("&workbook&")"&sheet&"'!"&ref)
Sommaire
Pour créer une référence de feuille de calcul dynamique - une référence à un autre classeur qui est créé avec une formule basée sur des variables qui peuvent changer - vous pouvez utiliser une formule basée sur la fonction INDIRECT.
Dans l'exemple illustré, la formule en E6 est:
=INDIRECT("'("&B6&")"&C6&"'!"&D6)
Explication
L'essentiel de cette formule consiste à créer une référence complète à une plage dans un autre classeur sous forme de texte, puis à utiliser la fonction INDIRECT pour convertir le texte en référence réelle.
Une référence à une feuille de calcul externe ressemble à ceci:
'(exemple de données.xlsx) Feuille1'! A1
Notez les crochets (()) autour du nom du classeur, les guillemets simples ('') autour de la feuille de calcul + feuille et le point d'exclamation (!) Qui suit.
Pour créer une référence comme celle-ci à l'aide de texte, nous utilisons la concaténation pour joindre les valeurs des colonnes B, C et D avec les crochets, guillemets et points d'exclamation requis:
=INDIRECT("'("&B6&")"&C6&"'!"&D6)
Le résultat est introduit dans INDIRECT en tant que ref_text:
=INDIRECT("'(sample data.xlsx)Sheet1'!A1")
La fonction INDIRECT évalue ensuite le texte et le convertit en référence. Excel suit la référence et renvoie la valeur à la référence donnée.
Remarque: si la référence n'est pas valide ou si le classeur référencé n'est pas ouvert, INDIRECT lancera une erreur #REF. Vous pouvez attraper cette erreur avec la fonction IFERROR et afficher un résultat personnalisé si vous le souhaitez.