2013-08-16 8 views
22

Ich versuche ein Diagramm mit einem Bereich zu erstellen, der dynamisch unter Verwendung der INDIRECT-Funktion erstellt wird. Excel erkennt den Bereich I zu schaffen bin mit INDIRECT, da sie dem entsprechenden Bereich auf dem Blatt Highlights:Dynamischer Diagrammbereich mit INDIRECT: Diese Funktion ist nicht gültig (trotz hervorgehobenem Bereich)

enter image description here

jedoch, wenn das Diagramm zu speichern, erhalte ich eine Fehlermeldung, die Funktion sagen will, ist nicht gültig:

Weiß jemand, was das Problem ist/wie man einen dynamischen Diagrammbereich von einem spezifischen Anfang zu einem bestimmten Endpunkt erstellt?

PS: You can download the above spreadsheet here. Die Formel, die ich verwendete:
=INDIRECT("sheet!"&E2&":"&E3)

+1

Ich denke, es ist nicht die Funktion 'INDIRECT' dauert :(Wenn Sie zu verwenden versuchen '= INDIREKT (" Blatt! $ A $ 3: $ B $ 7 ") Auch das wirft einen Fehler auf. Warten, um zu sehen, ob jemand anderes eine Umgehungslösung hat! – Jerry

+0

Es scheint so zu sein .. Was frustrierend ist, ist, dass es den richtigen Bereich hervorhebt. – Max

+0

Möchten Sie den Bereich für das Diagramm verwenden? Sie können 'INDIREKT' nicht verwenden, um einen" Bereich "von Zellen zu erstellen, die auf diese Weise verwendet werden können. –

Antwort

13

Mine ist vergleichbar mit Seans ausgezeichneter Antwort, erlaubt aber einen Start- und Endtag.Die ersten zwei benannte Bereiche erstellen, die Index/Spiel Formeln verwenden, um die auf E2 und E3 basierend Tage beginnen und enden zu holen:

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)) 

können Sie Klicken Sie dann auf die Reihe im Diagramm und ändern Sie die Formel wie folgt:

=SERIES(Sheet1!$B$1,Sheet1!rngDay,Sheet1!rngValue,1) 

enter image description here

Hier ist ein schönes Chandoo post, wie dynamische Bereiche in Diagrammen zu verwenden.

+0

Könnten Sie auch OFFSET (RngDay, 0,1) verwenden zum die Referenz, um ein bisschen Tipparbeit zu sparen? – AER

+0

Ich denke schon. Sehen Sie, ob es für Sie funktioniert. Ich würde es wahrscheinlich unabhängig lassen und die Verwendung von OFFSET vermeiden, aber beides ist nicht kritisch. –

+0

Ja, es hat funktioniert, tolle Antwort danke. – AER

18

Die Art, wie Sie es versuchen, ist nicht möglich. Der Chart-Datenbereich muss eine feste Adresse haben.

Es gibt einen Weg, um dieses, und das ist benannt unter Verwendung reicht

die Anzahl der Zeilen Setzen Sie in Ihre Daten in einer Zelle wollen (zB E1)
So, Ihr Beispiel verwenden, habe ich Number of Rows in D1 und 6 in E1

im Namen Manager definieren die Namen für Ihre Daten und Titel
I verwendet xrange und yrange und definiert sie als:

xrange: = OFFSET
yrange (Sheet1 $ A $ 2,0,0, Sheet1 $ E $ 1 treffen!): = OFFSET (Sheet1 $ B $ 2,0! ! 0, Sheet1 $ E 1 $)

jetzt, zu Ihrem Diagramm - Sie müssen den Namen der Arbeitsmappe kennen (wenn Sie es eingerichtet haben, die Excel-Funktion der Verfolgung von Änderungen wird die Referenz stellen Sie sicher, korrekt bleibt , unabhängig von einer Umbenennung)

Lassen Sie die Chart data range leere
für die Legend Entries (Series), geben Sie den Titel wie üblich, und dann den Namen, den Sie für die Daten definiert (beachten Sie, dass der Name der Arbeitsmappe erforderlich ist für benannte Bereiche unter Verwendung)
data points

für die Horizontal (Category) Axis Labels, geben Sie den Namen definiert für die Etiketten
data labels

jetzt, indem Sie die Nummer in E1 zu ändern, werden Sie das Diagramm ändern sehen:
6 in E14 in E1

+0

+1 Haben Sie nicht daran gedacht, benannte Bereiche zu verwenden. Wirklich nett! – Jerry

+1

Nizza. Ich dachte, ich wüsste, wie man das macht, aber es hat lange gedauert, mich daran zu erinnern! Das Hauptproblem, das ich fand, war, dass Sie nicht nur benannte Bereiche verwenden können, sondern sich mit dem Namen der Arbeitsmappe oder des Arbeitsblatts qualifizieren müssen. –

+0

Thx. In Ihrem Beispiel war das Ende der Serie dynamisch (basierend auf der Anzahl der Reihen in $ E $ 1, aber der Start war nicht. Ich habe 'Doug Glancys' Beispiel angepasst: Sagen wir, ich definiere den Starttag in Zelle $ E $ 2 ', dann wird' yrange' zu ​​'= OFFSET (INDIREKT (" Sheet1! $ A $ "& MATCH (Sheet1! $ E $ 2, Sheet1! $ A: $ A, 0)), 0,0, Sheet1! $ E $ 1) '. – Max

2

einfach eine andere Antwort für Bits und Googles ..

Wenn Sie noch zu Ihrem Start- und Zielzellen beziehen, müssen Sie eine separate Formel für Ihren Tag Bereich und Ihre Werte liegen im Bereich hinzuzufügen. Formeln sind unten und der Screenshot zeigt die verwendeten Formeln.

Nach Datum:

="Sheet1!"&$F$2&":"&ADDRESS(ROW(INDIRECT($F$3)),COLUMN(INDIRECT($F$2)))

Werte Bereich:

="Sheet1!"&ADDRESS(ROW(INDIRECT($F$2)),COLUMN(INDIRECT($F$3)))&":"&$F$3

enter image description here

Dann zwei Bereiche hinzufügen Referenzierung der INDIRECT Werte dieser Zellen

Drücken Sie Strg + F3, klicken Sie auf Neu, und fügen Sie einen neuen Bereich mit dem Namen "chart_days" hinzu, der sich auf =INDIRECT(Sheet1!$F$4) bezieht; und ein neuer Bereich mit dem Namen „chart_values“, die sich auf =INDIRECT(Sheet1!$F$5)

schließlich in Ihrem Diagramm, fügen Sie eine Serie, die auf =nameOfYourWorkbook!chart_values

und Bearbeiten der Kategorie bezieht sich auf beziehen sich auf =nameOfYourWorkbook!chart_days

+2

Danke 'Jaycal', es ist nur eine Schande, dass du die' F4/F5' Formeln nicht in deine Antwort selbst geschrieben hast, wir können keine Screenshots kopieren/einfügen :( – Max

+2

yeaaaaaa ..... :) mein b. Für zukünftige Referenz aktualisiert. – Jaycal

0

I OFFSET verwenden um eine definierte Namensformel zu erstellen, so dass ich alle Bereiche für die Daten definieren kann, so dass ich ein Enddatum (oder die Anfangs- und Endposition jedes Datensatzes) haben kann.

Für eine einfache grafische Darstellung, definiere ich den Namen CategoryLabels wie folgt:

= OFFSET($A$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1)) 

und DataCars wie folgt:

= OFFSET($B$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1)) 

Sie haben so viele Namen wie Series definieren Sie aufnehmen möchten , nach dem gleichen Verfahren. In diesem einfachen Fall habe ich nur Autoverkäufe eingeschlossen.

Anfangsmonat und letzter Monat sind Bereichsnamen für einzelne Zellen definiert, die angeben, welche Monate des Diagramms einbezogen werden (vom Anfang bis zum Ende der Monate).

Denken Sie daran, wie von Sean Cheshire und anderen erläutert, dass zur Verwendung der Namen für die Diagrammwerte der Name der Tabelle enthalten sein muss.

0

Nach der Formel Sie gezeigt haben: = INDIRECT ("Blatt" & E2 & ":" & E3) Sie das Blatt nicht richtig benennen.

Ich hätte gedacht, es wäre Sheet1! oder Blatt2! usw. Ihre Formel löst sich in = Blatt! E2: E3, die keine gültige Adresse ist. Die Fehlermeldung, die Sie erhalten, bedeutet, dass Excel die Eingabe nicht in INDIRECT auflösen kann. INDIRECT ist eine gültige Funktion, so dass das von Ihnen angebotene Argument ungültig sein muss.

Alle oben genannten Antworten, die die Blattnamen angeben haben Ihre Fehler korrigiert es aber nicht erwähnen ...;)

+0

Dies wäre besser in einem Kommentar zusammengefasst. Auch wenn der Tippfehler behoben ist, können Sie in Excel immer noch keine INDIREKTE in einen Diagrammdatenbereich einfügen. – Nattgew

Verwandte Themen