Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Y-Achsen Limits automatisch bei X-Achsen händisch

Y-Achsen Limits automatisch bei X-Achsen händisch
Jens
Liebe herber-Community,
ich habe ein kleines aber nerviges Problem.
Aus einer Riesen-Menge an Daten generiere ich per VBA diverse Diagramme. U.a. kann ich die Achsen-Limits für X- und Y-Achse (jeweils nur eine Achse) händisch setzen (also die Einstellung "automatisch" von Excel überschreiben).
Das Problem tritt auf, wenn ich nur die Limits für die X-Achse händisch setze und die Limits für die Y-Achse auf automatisch belasse.
In diesem Fall wird zwar der korrekte Teil des Diagramms angezeigt, ABER: Die Limits für die Y-Achse berechnet Excel trotzdem auf Basis der gesamten Datenreihe, d.h. es werden auch jene Werte miteinbezogen, die gar nicht angezeigt werden.
Kurz gesagt: Ich hätte gerne, dass Excel die Limits für die Y-Achse nur auf Basis der angezeigten Werte der Reihe berechnet. Ich hab mal zur Veranschaulichung 3 (neutralisierte) Diagramme angehängt, geplottet sind jeweils die gleichen Daten.
(1) X-Achse automatisch Userbild
(2) X-Achse händisch gesetzt auf 0 bis 0.1, aber Y-Achse falsch (Limits zu groß) Userbild
(3) X-Achse händisch gesetzt auf 0. bis 0.1, und Y-Achse richtig Userbild
(Wenn's gar nicht anders geht, könnte ich natürlich auch Min. und Max. für die Y-Achse händisch berechnen und die Y-Achsen-Limits dann händisch festlegen. Aber da müsste ich mir was Gescheites überlegen für's Runden, außerdem soll der Werte 0 immer als Label angezeigt werden etc. Also das wäre wieder eine Bastelei... Darum wäre ich froh, wenn sich eine automatisierte Lösung finden ließe!)
Herzlichen Dank sagt
der Jens

AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 16:01:50
Beverly
Hi Jens,
sorry, aber irgendwie kann ich anhand deiner Bilder nicht verstehen, was du erreichen willst und worin dabei das Problem liegt.


AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 16:38:50
Jens
OK, vielleicht hab ich mich unklar ausgedrückt. Ich versuch's nochmal:
Von Bild 1 auf Bild 2 ist ein anderer X-Achsen-Bereich dargestellt. Auf Bild 1 reicht x von 0 bis 1, auf Bild 2 von 0 bis 0.1
Aber: Die Y-Achse auf Bild 2 hat "falsche" Achsengrenzen. (Denn die Achsengrenzen beziehen sich auf alle Daten der Reihe, auch jene mit X-Werten größer als 0.1)
Wünschenswert wäre daher das Ergebnis von Bild 3: Die X-Achse hat den Bereich 0 bis 0.1, und die Y-Achse hat sinnvolle Achsengrenzen, sodass man auf dem Diagramm auch tatsächlich etwas erkennen kann. D.h. Bild 2 und Bild 3 stellen das gleiche dar, aber mit unterschiedlichen Y-Achsen-Grenzen.
Und ich hätte gern, dass Excel die Y-Achsen-Grenzen so wählt, wie in Bild 3 gezeigt. D.h. die Achsengrenzen sollen sich nur auf die tatsächlich dargestellten Daten beziehen, nicht auf die Daten der Reihe, die gar nicht dargestellt werden (weil sie X-Werte größer 0.1 haben).
Geht das in Excel?
Hoffe das war jetzt verständlicher...
Liebe Grüße sagt
der Jens

Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 17:07:17
Beverly
Hi Jens,
beim Erstellen der Diagramme kannst du doch auch festlegen, welches Maximum/Minimum welcher Achse zugewiesen wird - du musst nur das Maximuim/Minimum aus dem Bereich, welchen du dem Diagramm zuweist, ermitteln und dann ins Maximum/Minimum der jeweiligen Achsen eintragen.


AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 18:09:02
Jens
Ja, das ist mir schon klar. Genau das gleiche steht ja ohnehin ganz unten in meinem ersten Beitrag.
Aber Min und Max, die ich selbst ermittle, sind ja "krumme" Zahlen.
Daher würde ich mir viel lieber die ganze Rumfizelei mit Runden etc. ersparen und auf die Excel-integrierte Funktionalität zur Berechnung der Achsen-Grenzen zurückgreifen.
Dumm daher, dass Excel die Achsengrenzen nicht auf Basis der dargestellten Daten berechnet. Sondern dass Excel die Achsengrenzen auch dann auf die gesamten Daten der Reihe bezieht, wenn nur ein Teil der Daten dargestellt wird...
...oder kann man das dem Excel irgendwie einfacher (= ohne VBA-Keilerei) beibringen?
Danke sagt
der Jens

Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 18:45:52
Beverly
Hi Jens,
auf die von dir genannte "Excel-integrierte Funktionalität zur Berechnung der Achsen-Grenzen" greift Excel doch auch automatisch zurück und stellt die für diesen Werteberich relevanten Skalierungen automatisch ein, wenn du dem Diagramm einen definierten Teil der Daten zuweist.
Angenommen folgende Ausgangssituation:
Tabelle1
 ABC
1178
2245
3376
4467
5558
6667
7778
8897
9989100
10107699
11118998
12128867
13137788

Tabellendarstellung in Foren Version 5.49


Mit dem folgenden Code werden 2 Punkt(XY)-Diagramme mit je 2 Datenreihe erstellt, wobei das 1. den X-Bereich A1:A9 und das 2. den X-Bereich A1:A13 zugewiesen bekommt:
Sub DiasErstellen()
If ActiveSheet.ChartObjects.Count > 0 Then ActiveSheet.ChartObjects.Delete
With ActiveSheet.ChartObjects.Add(Columns(4).Left, 0, 450, 200).Chart
.ChartType = xlXYScatter
With .SeriesCollection.NewSeries
.XValues = Range("A1:A8")
.Values = Range("B1:B8")
End With
With .SeriesCollection.NewSeries
.XValues = Range("A1:A8")
.Values = Range("C1:C8")
End With
End With
With ActiveSheet.ChartObjects.Add(Columns(4).Left, ActiveSheet.ChartObjects(1).Top +  _
ActiveSheet.ChartObjects(1).Height, 450, 200).Chart
.ChartType = xlXYScatter
With .SeriesCollection.NewSeries
.XValues = Range("A1:A13")
.Values = Range("B1:B13")
End With
With .SeriesCollection.NewSeries
.XValues = Range("A1:A13")
.Values = Range("C1:C13")
End With
End With
End Sub
Beim 1. Diagramm ist die Y-Skalierung 10, da das Maximum 9 beträgt und beim 2. Diagramm 120, da das Maximum 100 beträgt - und das ohne jegliche Manipulation per VBA oder nachträglich von Hand. Ich verstehe also leider nach wie vor nicht, wo dein Poblem liegt.
https://www.herber.de/bbs/user/81545.xlsm


Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 19:15:42
Jens
Also, allgemeiner formuliert ist mein Problem das:
Wird in einem XY-Diagramm eine Reihe nur teilweise dargestellt, berechnet Excel die Achsengrenzen trotzdem basierend auf allen Daten der Reihe.
Anders ausgedrückt: Ich kann offenbar nicht die Achsengrenzen der X-Achse manuell setzen, und die Achsengrenzen der Y-Achse sinnvoll automatisch berechnen lassen.
Ich habe ja nicht gesagt, dass Excel Achsengrenzen nicht automatisch berechnen kann. Sondern dass Excel die Achsengrenzen offenbar nicht automatisch "auf Basis der dargestellten Daten" festlegen kann.
Jetzt klarer? :-)
LG
vom Jens

Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 19:49:31
Beverly
Hi Jens,
Excel stellt automatisch immer die Y-Skalierung anhand des zugewiesenen Wertebereichs (Y-Minmalwert bis Y-Maximalwert) und damit folglich auf Basis der im Diagramm vorhandenen Werte ein. Mit anderen Worten: nicht auf Basis der ausgewählten Skalierung der X-Achse.
Wenn du eine andere Y-Skalierung als die von Excel anhand der im Diagramm vorhandenen Werte darstellen willst, also die X-Achse anders als automatisch skalierst und außerhalb des X-Skalierungsbereichs Y-Werte vorhanden sind, die außerhalb deiner gewünschten Y-Skalierung liegen, musst du entweder die Y-Maxima/Minima von Hand anpassen oder irgendwie runden (und per VBA zuweisen) oder du weist dem Diagramm nur den Wertebereich zu, der die für deine Skalierung relevanten Daten enthält. Da du die Diagramme ja sowieso per VBA erstellst, sollte das doch kein Problem sein (siehe mein vorhergehender Beitrag).


Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
23.08.2012 20:22:07
Jens
Ja, hab's jetzt per VBA gelöst...
Find ich aber trotzdem etwas eigenartig, dass Excel das nicht von Haus aus kann...
Danke trotzdem sagt
der Jens

AW: Y-Achsen Limits automatisch bei X-Achsen händisch
24.08.2012 08:39:02
Beverly
Hi Jens,
was soll daran eigenartig sein? Das ist doch ganz logisch: wenn du einen Stab von 1 m Länge hast, benötigst du ein 1 m langes Behältnis um ihn aufzubewahren. Wenn du 0,5 m des Stabes mit irgendetwas abdeckst, ist er auch dann immer noch 1 m lang und du brauchst nach wie vor ein 1 m langes Behältnis. Erst wenn du ihn bei 0,5 m durchtrennst, ist er in Wirklichkeit auch 0,5 m lang und es reicht ein Behältnis von 0,5 m Länge. Und genau so ist das mit der Skalierung - was im Diagramm drin ist, wird als Bezugsbasis genommen und nicht das, was durch Abdecken noch sichtbar geblieben ist.


Anzeige
AW: Y-Achsen Limits automatisch bei X-Achsen händisch
25.08.2012 17:16:50
Jens
Sorry, aber ich finde der Vergleich hinkt doch ziemlich... :-o
Eine AutoScale-Funktion, die sich auf die tatsächlich dargestellten Daten bezieht und die verdeckten außen vor lässt, ist bei anderen wiss. Grafikprogrammen (siehe z.B. Origin, Matlab, etc.) völlig normal (Weil das ja auch die meisten User ständig so benötigen!), bei Excel (noch?) nicht. Klar, Excel ist kein spezialisiertes Grafikprogramm - und was ich beschreibe, ist nur eine Unzulänglichkeiten, die das unterstreichen. (Und das sagt bitte ein eingefleischter Excel-Fan :-)
Nichts für ungut, danke für die Tipps sagt
der Jens
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige