J'essaie de créer un graphique avec une plage construite de manière dynamique à l'aide de la fonction INDIRECT
. Excel reconnaît la plage que je crée en utilisant INDIRECT
car il met en évidence la plage correspondante sur la feuille:
Cependant, lors de la sauvegarde du graphique, un message d'erreur indiquant que la fonction n'est pas valide s'affiche:
Quelqu'un sait-il quel est le problème/comment créer une plage de graphique dynamique allant d'un point de départ à un point final?
PS: Vous pouvez télécharger la feuille de calcul ci-dessus ici . La formule que j'utilisais:=INDIRECT("sheet!"&E2&":"&E3)
La mienne ressemble à l'excellente réponse de Sean, mais permet un jour de début et de fin. Commencez par créer deux plages nommées utilisant des formules Index/Match pour choisir les jours de début et de fin en fonction de E2 et E3:
rngDay
=INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
rngValue
=INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
Vous pouvez ensuite cliquer sur la série dans le graphique et modifier la formule pour:
=SERIES(Sheet1!$B$1,Sheet1!rngDay,Sheet1!rngValue,1)
Voici un article de Nice Chandoo sur l'utilisation des plages dynamiques dans les graphiques.
La façon dont vous essayez de le faire n'est pas possible. La plage de données du graphique doit avoir une adresse fixe.
Il y a un moyen de contourner cela, et c'est d'utiliser des plages nommées.
Placez le nombre de lignes que vous souhaitez dans vos données dans une cellule (par exemple, E1).
Donc, en utilisant votre exemple, je mets Number of Rows
dans D1 et 6
dans E1
Dans le gestionnaire de noms, définissez les noms de vos données et titres.
J'ai utilisé xrange et yrange, et les ai définis comme suit:
xrange: = OFFSET (Sheet1! $ A 2,0,0,0 $, Sheet1! $ E $ 1)
yrange: = OFFSET (Feuille1! $ B 2,0,0,0 $, Feuille1! $ E $ 1)
maintenant, à votre graphique - vous devez connaître le nom du classeur (une fois que vous l'avez configuré, la fonction de suivi des modifications d'Excel s'assurera que la référence reste correcte, quel que soit le nom renommé).
Laissez le Chart data range
vide
pour Legend Entries (Series)
, entrez le titre comme d'habitude, puis le nom que vous avez défini pour les données (notez que le nom du classeur est required pour utiliser des plages nommées).
pour Horizontal (Category) Axis Labels
, entrez le nom que vous avez défini pour les étiquettes
maintenant, en changeant le nombre dans E1, vous verrez le graphique changer:
Selon la formule que vous avez indiquée: = INDIRECT ("sheet!" & E2 & ":" & E3) Vous ne nommez pas la feuille correctement.
J'aurais pensé que ce serait Sheet1! ou Sheet2! etc . Votre formule résout en = feuille! E2: E3 qui n'est pas une adresse valide. Le message d'erreur que vous obtenez signifie que Excel ne peut pas résoudre l'entrée INDIRECT. INDIRECT est une fonction valide, donc l'argument que vous lui proposez doit être invalide.
Toutes les réponses ci-dessus qui indiquent le nom de la feuille ont corrigé votre erreur mais ne la mentionnent pas ...;)
J'utilise OFFSET
pour créer une formule de nom défini afin de pouvoir définir toutes les plages pour les données, ce qui me permet d'avoir une date de début (ou la position de début et de fin de tout jeu de données).
Pour un graphique simple, je définis le nom CategoryLabels comme suit:
= OFFSET($A$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1))
et DataCars comme suit:
= OFFSET($B$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1))
Vous devrez définir autant de noms que de séries que vous souhaitez inclure, en suivant la même procédure. Dans ce cas simple, je n'ai inclus que les ventes de voitures.
Le mois initial et le dernier mois sont des noms de plage définis pour des cellules individuelles, utilisés pour indiquer les mois du graphique à inclure (mois de début à mois de fin).
N'oubliez pas, comme l'ont expliqué Sean Cheshire et d'autres, que pour utiliser les noms des valeurs de graphique, le nom de la feuille de calcul doit être inclus.
La formule nommée avec des fonctions indirectes ne fonctionne pas dans les graphiques. Cela fonctionne dans d'autres sources lorsque la source dynamique souhaitée est mise en surbrillance, mais si vous la visualisez sous forme de graphique, elle ne sera pas évaluée. J'espère que Microsoft a corrigé cela.