Michael a une feuille de travail qui a des noms de mois (janvier, février, etc.)

dans la colonne A. Dans la colonne B, il veut extraire une valeur de la cellule B11 de la feuille de calcul spécifiée dans la colonne A. Ainsi, si la colonne A contient le mois «mars», dans la cellule juste à droite de mars (dans la colonne B )

il veut tirer la valeur en mars! B11. Michael pense que la fonction INDIRECT devrait aider avec cela, mais il ne peut pas la faire fonctionner.

La bonne nouvelle est que Michael a raison: vous pouvez utiliser la fonction INDIRECT pour ce faire. L’utilisation de base de la fonction ressemble à ceci:

=INDIRECT(A1&"!B11")

Vous pouvez créer une version plus «robuste» de la formule en l’enfermant dans une fonction qui vérifie les erreurs. S’il y a une erreur, alors la phrase « Aucune donnée » s’affiche dans la cellule:

=IFERROR(INDIRECT(A1&"!B11"),"No Data")

Ces approches utilisent directement tout ce qui se trouve dans la cellule A1, ce qui fonctionne à condition que la valeur de A1 soit du texte et un seul mot. S’il peut y avoir un deuxième mot dans A1 (comme « Production de juillet »), alors vous devez modifier un peu la formule pour qu’elle inclue des apostrophes autour de ce qui se trouve dans la cellule A11:

=IFERROR(INDIRECT("'"&A1&"'!B11"),"No Data")

Étant donné que les apostrophes sont utilisées pour entourer un nom de feuille de calcul, vous ne pouvez pas avoir de texte dans la cellule A1 qui inclut des apostrophes. Ainsi, «Production de juillet» dans la cellule A1 fonctionnera correctement (à condition que vous disposiez d’une feuille de calcul nommée «Production de juillet»), mais «Production de juillet» ne fonctionnera pas en raison de l’apostrophe.

De plus, si tout ce qui se trouve dans la cellule A1 peut contenir des espaces de début ou de fin, vous devrez vous débarrasser de ces espaces. Le moyen le plus simple de compenser est d’utiliser la fonction TRIM:

=IFERROR(INDIRECT("'"&TRIM(A1)&"'!B11"),"No Data")

Toutes les variations présentées jusqu’à présent fonctionnent très bien si la valeur de A1 est une chaîne réelle. Ils ne fonctionneront pas si la valeur de A1 est une date réelle, formatée pour ressembler à un nom de mois. Les dates sont stockées en interne sous forme de nombres et l’utilisation de l’une des formules décrites jusqu’à présent tentera d’ajouter le numéro de série de la date à la référence de la cellule, ce qui génère une erreur. À la place, vous devez utiliser la fonction TEXT pour convertir la date en A1 en un nom de mois:

=IFERROR(INDIRECT(TEXT(A1,"mmmm")&"!B11"),"No Data")

Si vous vous attendez à ce que d’autres personnes entrent les noms de mois dans la cellule A1, vous feriez bien de rendre cette entrée aussi infaillible que possible. La meilleure façon de faire est d’utiliser la validation des données pour limiter ce qui peut être entré dans la cellule A1. (La façon dont vous utilisez la validation des données a été traitée dans d’autres numéros de ExcelTips.)

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (12701) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.