Changer automatiquement onglet dans une formule index
amelise
Messages postés
53
Statut
Membre
-
amelise -
amelise -
Bonjour,
Je suis une débutante sous excel donc je vais essayer de m'exprimer du mieux que je peux mais vous excuserez mes erreurs de formulation.
Alors, j'ai cette formule qui me permet d'importer des données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''. Ce sont des données de traffic.
=IFERROR(INDEX('[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$4:$CH$322,MATCH($C47103,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$B$4:$B$322,0),MATCH($F47103&J$1,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$6:$CH$6,0)),0)
Le fichier ''Copy of PRC Mar 1 - Dec 1.xlsx'', contient plusieurs onglets avec des noms différents.
Dans mon fichier qui reçoit les données, pour importer les données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''d'un autre onglet, je change à la main le nom de l'onglet ( dans la formule, le nom de l'onglet est SGG). Ce qui me prend pas mal de temps car j'ai beaucoup de données!
Or, dans mon fichier qui reçoit les données, j'ai une colonne avec tous les noms des onglets et j'aimerais que quand j'étire ma formule vers le bas, et bien le nom de l'onglet dans la formule change en se basant sur le nom de l'onglet dans ma colonne.
Voilà je ne sais pas si c'est trés clair.
Merci de votre aide!
Je suis une débutante sous excel donc je vais essayer de m'exprimer du mieux que je peux mais vous excuserez mes erreurs de formulation.
Alors, j'ai cette formule qui me permet d'importer des données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''. Ce sont des données de traffic.
=IFERROR(INDEX('[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$4:$CH$322,MATCH($C47103,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$B$4:$B$322,0),MATCH($F47103&J$1,'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$6:$CH$6,0)),0)
Le fichier ''Copy of PRC Mar 1 - Dec 1.xlsx'', contient plusieurs onglets avec des noms différents.
Dans mon fichier qui reçoit les données, pour importer les données du fichier ''Copy of PRC Mar 1 - Dec 1.xlsx''d'un autre onglet, je change à la main le nom de l'onglet ( dans la formule, le nom de l'onglet est SGG). Ce qui me prend pas mal de temps car j'ai beaucoup de données!
Or, dans mon fichier qui reçoit les données, j'ai une colonne avec tous les noms des onglets et j'aimerais que quand j'étire ma formule vers le bas, et bien le nom de l'onglet dans la formule change en se basant sur le nom de l'onglet dans ma colonne.
Voilà je ne sais pas si c'est trés clair.
Merci de votre aide!
A voir également:
- Changer automatiquement onglet dans une formule index
- Changer dns - Guide
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Index téléphonique - Guide
6 réponses
Bonjour,
Tu peux utiliser la fonction INDIRECT.
Exemple avec le nom de la feuille en A1 :
A+
Tu peux utiliser la fonction INDIRECT.
Exemple avec le nom de la feuille en A1 :
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$A$6:$CH$6"),0)),0)
A+
Merci! J'ai encore un petit pb!
Lorsque vous dites A1, vous parlez du fichier sur lequel j'importe mes données? Car les données que je reçois sont sur une fichier excel et je les importe dans un autre fichier excel.
Le nom de la feuille sur laquelle je travaille est Traffic!. Il faut que j'inscrive juste le nom de la feuille ou celui du fichier
Si je tape cela, c'est incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$6:$CH$6"),0)),0)
Et si je tape cela, c'est aussi incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$6:$CH$6"),0)),0)
Lorsque vous dites A1, vous parlez du fichier sur lequel j'importe mes données? Car les données que je reçois sont sur une fichier excel et je les importe dans un autre fichier excel.
Le nom de la feuille sur laquelle je travaille est Traffic!. Il faut que j'inscrive juste le nom de la feuille ou celui du fichier
Si je tape cela, c'est incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & '[20131204 dashboard V3.xlsx]Traffic'! & "'!$A$6:$CH$6"),0)),0)
Et si je tape cela, c'est aussi incorrect:
=IFERROR(INDEX(INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$4:$CH$322"),MATCH($C47103,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$B$4:$B$322"),0),MATCH($F47103&J$1,INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & Traffic! & "'!$A$6:$CH$6"),0)),0)
Lorsque tu écris
Donc, la cellule A1 de mon exemple est une cellule de la colonne avec tous les noms des onglets dans ton fichier qui reçoit les données.
A+
INDIRECT("'[Copy of PRC Mar 1 - Dec 1.xlsx]" & A1 & "'!$A$4:$CH$322")
Si la cellule A1 contient le nom de la feuille (SGG par exemple), la formule est équivalente à
'[Copy of PRC Mar 1 - Dec 1.xlsx]SGG'!$A$4:$CH$322
Donc, la cellule A1 de mon exemple est une cellule de la colonne avec tous les noms des onglets dans ton fichier qui reçoit les données.
A+
Merci! je comprends. Par contre, comme je travaille sous excel en anglais, pour les guillemets, je dois bien mettre ceux là: ''
merci beaucoup
merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je joints un exemple avec 2 classeurs :
le classeur Base.xlsm qui contient la procédure et les paramètres de recherche,
Le classeur Copy of PRC Mar 1 - Dec 1.xlsx qui contient les éléments recherchés.
Les 2 classeurs étant ouverts, tu peux lancer le test de recherche puis regarder la syntaxe du code.
https://www.cjoint.com/c/CLfi6oDQx0M
https://www.cjoint.com/c/CLfi6XRpUwu
Pense à renommer le classeur "Copy of PRC Mar 1 - Dec 1.xlsx"
A+
Je joints un exemple avec 2 classeurs :
le classeur Base.xlsm qui contient la procédure et les paramètres de recherche,
Le classeur Copy of PRC Mar 1 - Dec 1.xlsx qui contient les éléments recherchés.
Les 2 classeurs étant ouverts, tu peux lancer le test de recherche puis regarder la syntaxe du code.
https://www.cjoint.com/c/CLfi6oDQx0M
https://www.cjoint.com/c/CLfi6XRpUwu
Pense à renommer le classeur "Copy of PRC Mar 1 - Dec 1.xlsx"
A+
Cela ne marche toujours pas. J'ai essayé avec la formule ci-dessous sachant que $B51076 est le numéro de la cellule qui contient le nom du magasin dans mon fichier oú j'écris la formule et qui reçoit les données.
Les données sont extraites du fichier 'Copy of PRC Mar 1 - Dec 8.xlsx.
=IFERROR(INDEX(INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$4:$CH$330),MATCH($C51076,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$B$4:$B$330),0),MATCH($F51076&J$1,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$6:$CH$6),0)),0)
Merci pour votre aide!
Les données sont extraites du fichier 'Copy of PRC Mar 1 - Dec 8.xlsx.
=IFERROR(INDEX(INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$4:$CH$330),MATCH($C51076,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$B$4:$B$330),0),MATCH($F51076&J$1,INDIRECT($B51076&"!"&'[Copy of PRC Mar 1 - Dec 8.xlsx]SIF'!$A$6:$CH$6),0)),0)
Merci pour votre aide!