it-swarm.com.de

Dynamischer Diagrammbereich mit INDIRECT: Diese Funktion ist ungültig (trotz hervorgehobenem Bereich)

Ich versuche, mit der Funktion INDIRECT ein Diagramm mit einem dynamisch erstellten Bereich zu erstellen. Excel erkennt den Bereich, den ich mit INDIRECT erstelle, indem es den entsprechenden Bereich auf dem Blatt hervorhebt:

enter image description here

Beim Speichern des Diagramms erhalte ich jedoch die Fehlermeldung, dass die Funktion ungültig ist:

enter image description here

Weiß jemand, wo das Problem liegt/wie man einen dynamischen Diagrammbereich von einem bestimmten Anfang bis zu einem bestimmten Endpunkt erstellt?

PS: Sie können die obige Tabelle hier herunterladen . Die Formel, die ich verwendete:
=INDIRECT("sheet!"&E2&":"&E3)

28
Max

Meine ist ähnlich wie Seans hervorragende Antwort, erlaubt aber einen Start- und Endtag. Erstellen Sie zunächst zwei benannte Bereiche, die Index-/Match-Formeln verwenden, um Anfangs- und Endtage basierend auf E2 und E3 auszuwählen:

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

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

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

enter image description here

Hier ist ein Nizza Chandoo-Beitrag zur Verwendung dynamischer Bereiche in Diagrammen.

15
Doug Glancy

Die Art und Weise, wie Sie es versuchen, ist nicht möglich. Der Kartendatenbereich muss eine feste Adresse haben.

Es gibt einen Weg, dies zu umgehen, und benannte Bereiche werden verwendet

Geben Sie die gewünschte Anzahl von Zeilen in Ihren Daten in eine Zelle ein (z. B. E1).
Also füge ich in Ihrem Beispiel Number of Rows in D1 und 6 in E1 ein. 

Definieren Sie im Namensmanager die Namen für Ihre Daten und Titel
Ich verwendete xrange und yrange und definierte sie als: 

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

jetzt zu Ihrem Diagramm - Sie müssen den Namen der Arbeitsmappe kennen (wenn Sie diese eingerichtet haben, sorgt Excel für die Nachverfolgung von Änderungen dafür, dass der Verweis unabhängig von der Umbenennung korrekt bleibt).

Lassen Sie den Chart data range leer
Geben Sie für Legend Entries (Series) wie üblich den Titel und dann den Namen ein, den Sie für die Daten definiert haben (beachten Sie, dass der Name der Arbeitsmappe erforderlich für die Verwendung benannter Bereiche ist).
data points

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

wenn Sie nun die Zahl in E1 ändern, sehen Sie die Diagrammänderung:
6 in E14 in E1

20
SeanC

Nur eine weitere Antwort für Bits und Googles ..

Wenn Sie weiterhin auf Ihre Start- und Endzellen verweisen möchten, müssen Sie eine separate Formel für Ihren Tagesbereich und Ihren Wertebereich hinzufügen. Formeln sind unten und der Screenshot zeigt die verwendeten Formeln.

Tagesbereich:

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

Wertebereich:

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

enter image description here

Fügen Sie dann zwei Bereiche hinzu, die auf die INDIRECT Werte dieser Zellen verweisen

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", der sich auf =INDIRECT(Sheet1!$F$5) bezieht

Fügen Sie schließlich in Ihrem Diagramm eine Reihe hinzu, die auf =nameOfYourWorkbook!chart_values verweist.

und Bearbeiten Sie die Kategorie, um auf =nameOfYourWorkbook!chart_days zu verweisen.

3
Jaycal

Wenn der Bereich eines Liniendiagramms eine benannte Variable ist und die Variable INDIRECT () -Verweise durch eine Zelle auf einen Bereich enthält, muss die Variable mindestens 2 INDIRECT () -Verweise haben, die durch ein Komma getrennt sind.

0
singduck

Entsprechend der Formel, die Sie angezeigt haben: = INDIRECT ("Tabelle!" & E2 & ":" & E3).

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

Alle obigen Antworten, die den Namen des Blatts angeben, haben Ihren Fehler korrigiert, aber nicht erwähnt ...;)

0
KiwiSteve

Ich verwende OFFSET, um eine definierte Namensformel zu erstellen, sodass ich alle Bereiche für die Daten definieren kann, sodass ich ein Anfangsdatum (oder die Anfangs- und Endposition eines Datensatzes) festlegen kann.

Für ein einfaches Diagramm 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 müssen so viele Namen wie Serien definieren, die Sie hinzufügen möchten, und zwar nach demselben Verfahren. In diesem einfachen Fall habe ich nur Autoverkäufe eingeschlossen.

Anfangsmonat und letzter Monat sind Bereichsnamen, die für einzelne Zellen definiert werden, um anzugeben, welche Monate des Diagramms eingeschlossen werden (von Anfang bis Ende).

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

Benannte Formeln mit indirekten Funktionen funktionieren nicht in Zeichensätzen. Es funktioniert in anderen Quellen, da Ihre gewünschte dynamische Quelle hervorgehoben wird. Wenn Sie sie jedoch im Diagramm anzeigen, wird sie nicht ausgewertet. Hoffe, Microsoft hat dieses Problem behoben.

0