Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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

Diagrammbeschriftung mit Autofilter

Diagrammbeschriftung mit Autofilter
17.01.2024 13:17:41
ogogIV
Liebes Forum

Ich bilde auf einem kombinierten Diagramm (Linien und Punkte) Datenpunkte ab, welche mit einem Autofilter gefiltert sind. Es geht mir um die Beschriftung der Datenpunkte im Diagramm. Diese erhalte ich über die Beschriftungsoption "Beschriftung enthält Wert aus Zellen", d.h. die X- resp. Y-Werte möchte ich nicht verwenden. Ungefiltert habe ich kein Problem mit der Beschriftung. Sobald ich Daten filtere, stimmen die Beschriftungen und die Datenpunkte nicht mehr überein. Dies passiert jedoch nur dann, wenn im Filter Zeilen angewählt wurden, welche gleichzeitig nachfolgend (also z.B. Zeile 34, 35) und nicht-nachfolgend sind (also noch zusätzlich Zeile 100 und Zeile 122). nur nachfolgende Zeilen oder nicht-nachfolgende Zeilen ist kein Problem. Die Beschriftung, welche ich ins Diagramm holen will, steht in Zellen auf dem gleichen Tabellenblatt und auch auf den gleichen Zeilen.

Ist das grundsätzlich mit Excel 365 nicht möglich und gibt es hier einen Lösungsansatz (z.B. mit VBA)?

Ich danke euch für eine Rückmeldung!
Gruss, ogogIV

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Beispielmappe hochladen - o.w.T.
17.01.2024 14:27:38
Beverly
Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Lösungsvorschlag
17.01.2024 22:48:41
Beverly
1. das ist offensichtlich ein Automatismus von Excel, dass dieses Problem auftritt wenn "Werte aus Zellen" angewendet wird - bei Verwendung der X- oder der Y-Werte tritt es nicht auf. Du hast also nur folgened Möglichkeit: du musst die darzustellenden Daten per Formeln aus deinen Originaldaten "extrahieren", indem du nur diese im Tabellenblatt anzeigst und die nicht benötigten eben nicht. Dein Diagramm baust du dann auf diesen Zellen auf. Ich habe dazu mal deine ausgeblendete Tabelle eingeblendet und in den Spalten AH:AK per Formel die Daten entsprechend aufgelistet - das Diagramm baut auf diesen Spalten auf, wobei Spalte AI die Datenbeschriftung ausgibt, die im Diagramm dann angezeigt wird.
Es gibt dabei allerdings ein Problem: um nur die darzustellenden Daten extrahieren zu können muss irgendwo in einer Zelle ein Bezug stehen, wonach die Daten gefiltert werden sollen - ich habe dazu mal Zelle T24 im Blatt '2 Lohnrunde' genommen und den "Filterwert" von Hand eingetragen. Mir ist bekannt, dass man per Formel feststellen kann, wonach eine Tabelle gefiltert ist, aber ich bin kein Formelexperte, sodass ich dir dahingehend leider nicht weiterhelfen kann. Aber es gibt im Forum genügend Formelexperten die dir sicher eine Lösung anbieten können, sodass du zu diesem speziellen Formel-Problem einen extra Thread eröffnen solltest.

2. dein Diagramm ist falsch: deine Daten haben einen minimalen X-Wert von 1 - schau dir aber mal die Werte ganz links im Diagramm an, sie liegen auf der Vertikalachse, also bei 0. Ursache dafür ist, dass du eine Kombination aus Punkt- und Liniendiagramm verwendest und alle Datenreihen auf dieselbe, nämlich die Primärachse zeichnest. Ein Punkt-Diagramm hat jedoch eine andere Achsenkonstruktion als das Liniendiagramm. Du musst also für das Punkt-Diagramm die Sekundärachsen verwenden - ich habe das mal entsprechend geändert und auch die Achsenskalierung angepasst.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
Ergänzung
18.01.2024 07:19:11
Beverly
Ich habe nun noch etwas recherchiert und die Formel für die Ermittlung des Filterwertes gefunden: https://www.herber.de/excelformeln/pages/Autofilter_Ueberpruefung_ob_und_wonach_eine_Liste_gefiltert_ist.html und habe sie in T24 entsprechend angepasst eingetragen - sobald die Liste gefiltert wird, zeigt die Zelle dort den Wert an und das Diagramm passt sich entsprechend an.
Außerdem habe ich die Formeln in Spalte AH noch dahingehend erweitert, dass alle Werte angezeigt werden wenn die Liste nicht gefiltert ist.

Das ganze System hat jedoch einen Haken: es funktioniert nur dann, wenn ausschließlich nach EINEM Wert gefiltert wird. Wenn also nach mehreren Werten gleichzeitig gefiltert werden soll ist es so nicht mehr anwendbar.

https://www.herber.de/bbs/user/166172.xlsx

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Ergänzung
19.01.2024 10:45:28
ogogIV
Liebe Karin

Ganz herzlichen Dank für deine Antwort, deine Recherche und deinen produktiven Vorschlag. Zuallererst bin ich natürlich von den Entwicklern von Excel enttäuscht, dass diese die Datenbeschriftung für den "Wert aus Zellen" in der Grafik gegenüber den X- und Y-Werte unterschiedlich behandeln. Ich habe dein vorgeschlagenes Vorgehen für die Darstellung/Beschriftung begriffen und habe mir schon auch gedacht, dass die Daten auf ein separates Tabellenblatt gebracht werden müssen. Das werde ich auch so vornehmen - daher nochmals vielen Dank für die prompte und produktive Rückmeldung.

Es stellt sich bei das Problem, dass die User tatsächlich mehrere Filter setzen wollen/müssen und ich muss dies daher berücksichtigen. Daher muss ich eine Möglichkeit finden, Excel mitzugeben, welche Zeilen ein- resp. ausgeblendet sind. Wenn ich das schaffe, dann kann ich die noch eingeblendeten Zeilen direkt adressieren und mittels einer Index-Vergleich-Formel die entsprechenden Daten auf das separate Blatt bringen. Meine Recherche dazu ergab dazu, dass dies mittels einer eigenen Funktions-Definition möglich ist. Die Formel ermittelt, ob eine Zeile/Spalte sichtbar oder ausgeblendet ist. Als Ergebnis liefert die Funktion WAHR (sichtbar) oder FALSCH (ausgeblendet). Die Formel geht in etwa so:

Public Function SICHTBAR(Zelle _
As Range) As Boolean SICHTBAR = Not ( _
Zelle.EntireRow.Hidden Or _
Zelle.EntireColumn.Hidden)
End Function

Diese Formel habe ich aus https://www.computerwissen.de/software/office/excel/vba-makros-excel/tabellen-bearbeiten/sichtbarkeit-einer-zelle-ermitteln/ und sie wurde durch Martin Althaus gepostet. Wahrscheinlich gibt es das auch hier im Forum - Google hat mir das halt so vorgeschlagen....

Ich werde nun versuchen, diese Formel dazu zu verwenden, in einer Hilfsspalte die eingeblendeten Zeilen zu nummerieren (wenn Ziele eingeblendet, dann erhöhe die maximale Zahl der vorangegangen Zeilen um 1 ansonsten Zelle leer lassen). Damit kann ich dann die entsprechenden Informationen aus dem gefilterten Tabellenblatt holen und in das separate Blatt übertragen. Dann spielt es eben auch keine Rolle, wieviele Filter gesetzt werden.

Nochmals herzlichen Dank für deine Unterstützung - das ist ein Super Forum!

Gruss
Yves

P.S. Die X-Achsen-Werte der Punkt-Diagram-Daten sind schon korrekt, sie werden gebildet, indem zum Originalwert "1" dazugezählt wird und dann stimmt die Darstellung im kombinierten Diagramm - ich möchte unbedingt verhindern, eine 2. X- oder Y-Achse einzubinden.
Anzeige
AW: Ergänzung
19.01.2024 15:51:52
Beverly
Hi Yves,

mir war nicht bekannt dass du VBA anwenden darfst, dann ist die Lösung natürlich viel leichter - siehe Anhang.

Wo bitteschön sind denn die X-Werte im Diagramm korrekt? Erst durch deinen Hinweis habe ich gesehen, dass du in deiner Hilsspalte jeweils 1 zu jedem X-Wert addiert hast, damit die Werte im Liniendiagramm korrekt positioniert sind. Halte aber mal in deiner Originalmappe den Cursor auf einen deiner Datenpunkte, die auf der Vertikalachse liegen (was ich gemacht und so die falsche Positionierung festgestellt habe) - dann siehst du, dass z.B. bei Name 471 steht: Reihe "Daten" Punkt " 1" (1, 134,8%) und das ist falsch, weil dein Originalwert X nicht 1 sondern 0 ist. Du gaukelst dem unbedarften Betrachter also etwas vor was gar nicht stimmt - und das tut man nicht. ;-)
Benutze besser 4 Achsen, also Primär- und Sekundär-Achsen statt nur die 2 Achsen des Liniendiagramms und somit eine Kombination aus Punkt(XY)- und Liniendiagramm - die Beschriftung der Sekundärachsen kannst du ja ausblenden (siehe Anhang). Das ist doch kein Problem, da sich deine Werte nicht ständig ändern und die Skalierung der vertikalen Sekundärachse nicht ständig angepasst werden muss.
Die Spalte mit deinen "verschobenen" X-Werten kannst du dir auch noch sparen und kannst in der Hilfstabelle auf die Originalspalte M in Tabelle '2 Lohnrunde' zugreifen.

https://www.herber.de/bbs/user/166205.xlsm

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Ergänzung
21.01.2024 10:01:10
ogogIV
Liebe Karin

Lieben Dank für deine Verbesserung der Funktion - das ist sehr willkommen.

Bezüglich deinen Ausführung zur Beschriftung der Achsen im Diagramm hast absolut recht, damit das wirklich korrekt in der Grafik beschriftet ist, muss ich die Punktgrafiken auf der Sekundärachse abbilden. Wie du bereits richtig bemerkt hast, geht das dann gut, wenn die Achsen jeweils fix gehalten werden können. Leider kann ich das nicht gewährleisten resp. die Anwender müssen/wollen manchmal - je nach Datenlage - diese verändern können. Daher ist dieser "Dirty Trick" für mich solange das kleinere Übel, als ich eine Methode wüsste, wie ich die beiden Achsen auf eine einfache Weise jeweils synchron halten kann. Das könnte sicherlich irgendwie mittels VBA gehen - das werde ich mal recherchieren.

Übrigens: in der Grafik sind die Linien nicht mal das Problem - die könnte ich ebenfalls als Punkte abbilden. Ich habe aber noch das farbige Band, welches ich als Fläche erstellen muss.

Aber trotzdem werde ich nochmals darüber nachdenken, ob ich hier meine Methode nicht ändere.

Vielen Dank für deinen Anstubser.

Gruss
Yves
Anzeige
Rückfrage und Lösungsvorschlag
21.01.2024 11:21:32
Beverly
Hi Yves,

wann müssten denn die Min-/Max-Werte neu angepasst werden und wie häufig kommt das vor? Anhand deines Mappenaufbaus würde ich mal annehmen, nur dann wenn die Daten für die Linien/Fläche in Tabelle "Skala" durch händische Eingabe geändert werden?
In diesem Fall könnte die Anpassung ganz einfach durch Ausführung dieses Makros erfolgen:

Sub DiaAnpassen()

Dim chrDia As Chart
Dim serReihe As Series
Set chrDia = Worksheets("2 Lohnrunde").ChartObjects(1).Chart
' sekundäre Vertikalachse anpassen
With chrDia.Axes(xlValue, xlSecondary)
If .MinimumScale > chrDia.Axes(xlValue, xlPrimary).MinimumScale Then _
.MinimumScale = chrDia.Axes(xlValue, xlPrimary).MinimumScale
If .MaximumScale > chrDia.Axes(xlValue, xlPrimary).MaximumScale Then _
.MaximumScale = chrDia.Axes(xlValue, xlPrimary).MaximumScale
End With
' sekundäre Horizontalachse anpassen
For Each serReihe In chrDia.SeriesCollection
If serReihe.AxisGroup = xlPrimary Then
With chrDia.Axes(xlCategory, xlSecondary)
.MinimumScale = 0
.MaximumScale = serReihe.Points.Count - 1
End With
Exit For
End If
Next serReihe
End Sub


Wenn sich die Anzahl an Rubriken der horizontalen Primärachse niemals ändert, kannst du den Teil für die Anpassung dieser Achse natürlich weglassen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige