Formule avec une case

Bonjour,

J'aimerais mettre dans une formule une référence à une case je m'explique :

=DECALER(INDEX('XXXXXXXXXXXX'!$B:$O;EQUIV('ConsoGAZ-CHALEUR'!$AC4;'XXXXXXXXXXXX'!$B:$B;0);1);3;13)

J'aimerais que XXXXXXXXXXXX fasse référence à une case en l’occurrence BN1

BN1 est une liste déroulante

Je sais pas si c'est possible de faire une sorte de formule dynamique. Quand je modifie mon BN1 cela va chercher dans l'onglet correspondant à la valeur de la case

Merci pour votre aide

Tropico

Bonjour, à tester :

=DECALER(INDEX(INDIRECT("'"&BN1&"'!$B:$O";vrai);EQUIV('ConsoGAZ-CHALEUR'!$AC4;INDIRECT("'"&BN1&"'!$B:$O";vrai);0);1);3;13)

J'avais essayé ça sans le indirect mais marche pas non plus.

Jme retrouve avec un erreur

D'un autre côté sans ton fichier ou tout du moins une version simplifiée de celui-ci, je ne vois pas trop ce qu'on peut faire de plus.

Bonjour,

Je crois qu'il y a juste une petite faute de frappe dans la formule sur le 2è indirect (O au lieu de B).

=INDEX(INDIRECT("'"&BN1&"'!$B:$O");EQUIV('ConsoGAZ-CHALEUR'!$AC4;INDIRECT("'"&BN1&"'!$B:$B");0);1)

sinon essayez :

=INDEX(INDIRECT(BN1&"!$B:$O");EQUIV('ConsoGAZ-CHALEUR'!$AC4;INDIRECT(BN1&"!$B:$B");0);1)

En revanche, DECALER, nécessitant une référence, risque de ne pas fonctionner avec INDEX EQUIV, renvoyant une valeur. Si cette valeur est à nouveau une chaine représentant une référence, alors rebelotte avec INDIRECT :

=DECALER(INDIRECT(INDEX EQUIV CI DESSUS);3;13)

Cordialement,

La formule au complet sij'ai bien compris le besoin :

=DECALER(INDIRECT(INDEX(INDIRECT("'"&BN1&"'!$B:$B");EQUIV('ConsoGAZ-CHALEUR'!$AC4;INDIRECT("'"&BN1&"'!$B:$B"))));3;13)
ou
=DECALER(INDIRECT(INDEX(INDIRECT(BN1&"!$B:$B");EQUIV('ConsoGAZ-CHALEUR'!$AC4;INDIRECT(BN1&"!$B:$B"))));3;13)
6excel.xlsx (20.89 Ko)

Je vous joint un fichier simplifié
BN1 équivaut à A1
Je n'ai pas mis tous les onglets mais cela corresponds à la liste de gauche
Mon objectif est de récupérer le mot chameau1 et chameau 2 pour les mois correspondants en fonction de l'année

3GB malheureusement ça marche pas

Bonjour,

Pour le fun, parce qu'avec un fichier organisé comme ça, c'est franchement pas évident ...

Du coup, comme la structure de tes tableaux est toujours la même, tu peux utiliser cela :

=SI(INDIRECT("'"&$A$1&"'!"&CAR(COLONNE()+63)&5+(LIGNE(A1)-1)*11;VRAI)=0;"";INDIRECT("'"&$A$1&"'!"&CAR(COLONNE()+63)&5+(LIGNE(A1)-1)*11;VRAI))

Il faut juste que tu rajoutes une ligne sur ta feuille ConsoGAZ-CHALEUR, pour que la 1ère donnée soit en D5, comme sur l'image ci-dessous.

capture

Merci ça marche bien

Mais presque ...

Je sais c'est pas facile je vais trouver un autre moyen car j'ai des trous dans mes données à tous se décale à partir de 2016 avec cette formule "si"

Oui, ensuite tu n'as sauté qu'une ligne entre tes tableaux. Si tu rajoutes la ligne entre chaque, ça fonctionnera.

Pour automatiser des choses qui ne respectent pas vraiment de règles communes, c'est pas évident ...

Rechercher des sujets similaires à "formule case"