Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MedianWert in Diagramm als Linie

Forumthread: MedianWert in Diagramm als Linie

MedianWert in Diagramm als Linie
22.03.2018 09:39:10
Burak
Guten Morgen,
Ich habe mehrere Diagramme mit jeweils 1 Spalte als Datenreihe. Diese ist eingebunden und als Linie dargestellt.
Für jede Datenreihe habe ich jetzt auch den Median berechnet (welcher in der Datnereihe ganz unten steht) und möchte mir den in dem jeweiligen Diagramm als Linie miteinzeichnen lassen.
Da ich weder weiß, wie es in VBA, noch in Excel geht, kann ich auch nich aufs Makro aufzeichnen zugreifen :D

'Zeitverlaufsdiagramm des Auftrags hinzufügen
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
'Zeitwerte kopieren
Worksheets(linie).Range("E" & szeile + 1 & ":E" & ezeile).Copy Columns(d + 25)
'Kopierte Zeitwerte in Minuten umwandeln
For i = 1 To ezeile - szeile
Cells(i, d + 25).Value = Cells(i, d + 25).Value / 60
Next i
letzte = WorksheetFunction.CountA(Columns(d + 25))
'Median berechnen
Cells(letzte + 1, d + 25) = Application.WorksheetFunction.Quartile(Columns(d + 25), 2)
'Median gelb färben
Cells(letzte + 1, d + 25).Interior.ColorIndex = 6
'Datenbereich auswählen
.SetSourceData Source:=Range(Cells(1, d + 25), Cells(ezeile - szeile, d + 25))
'X-Achsen-Werte festlegen
.SeriesCollection(1).XValues = "='" & linie & "'!$N$" & szeile + 1 & ":$N$" & ezeile
'Diagrammtyp gestapelte Balken
.ChartType = xlLine
Da das nicht der gesamte Code ist kurze Erläuterung dazu.
Die Werte fürs erste Diagramm stehen in Spalte 26/Z ab Zeile 1 ohne Überschrift bis zur Zeile (berechnet aus ezeile-szeile). Dementsprechend steht der Median zu diesen Werten auch in Spalte 26/Z aber in Zeile (ezeile-szeile+1)
Die Werte fürs zweite Diagramm Spalte 27/AA...
... dritte 28/AB... usw
Hoffe das sind genug Informationen und nicht zu durcheinander :(
Vielen Dank im Voraus :*
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Beispielmappe hochladen - o.w.T.
24.03.2018 10:56:07
Beverly


vorerst gelöst.
26.03.2018 09:18:24
Burak
Habs schon hinbekommen. noch nicht perfekt, aber ich hoffe ich kriege den letzten Feinschliff noch hin. Dennoch vielen Dank :)
Dann poste deine Lösung - o.w.T.
26.03.2018 10:59:50
Beverly


Anzeige
Meine Lösung
28.03.2018 07:57:21
Burak
Für jedes Verlaufsdiagramm stehen die Werte in jeweils einer Spalte. Den Median berechne ich und schreibe ihn genauso oft wie oft die Werte des Diagramms vorkommen direkt darunter.
Also für Diagramm 1: 510 Werte, Median berechnen und 510 mal unter die 510 Werte schreiben.
Und dann diese 510 MEDIAN-Werte als zweite Linie in die Grafik einzeichnen.
  median = Application.WorksheetFunction.Quartile(Columns(d + 25), 2)
For i = 1 To letzte
'Median berechnen
Cells(letzte + i, d + 25) = median
Next i

With ActiveChart
'Median mit einzeichnen
.SeriesCollection.NewSeries
.SeriesCollection(2).values = "='Linienauswertung - Grafiken'!" & Cells(letzte, d + 25). _
Address & ":" & Cells(medianletzte, d + 25).Address
End With
Und falls es jmd interessiert, hier nochmal der Code im Gesamten:

Sub verlaufsdiagramm()
'Variablendeklaration
Dim linie As String, barcode As Integer, bartest As String, szeile, ezeile, szeile2, ezeile2,  _
lastRowInList As Long, rowHelper As Long, d As Integer, letzte As Long, median As Double, medianletzte As Long
'Makrobremsen lösen
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
With ActiveSheet
'Blattschutz aufheben
.Unprotect
'Alle Diagramme löschen
If .ChartObjects.Count > 0 Then .ChartObjects.Delete
End With
'Spalten ab Spalte Z leeren
Columns(26).Resize(, 20).EntireColumn.Clear
'Startwert für Spaltenvariable
d = 1
'Usereingabe für Linie
linie = barcodewahl.liniebox
'Abbruch
If linie = "" Then Exit Sub
'Usereingabe für Barcode
bartest = barcodewahl.barcodebox
'Abbruchbedingung leer/nicht numerisch
If bartest = "" Or Not IsNumeric(bartest) Then
Unload barcodewahl
Exit Sub
End If
'Umwandlugn string in Integer
barcode = CInt(bartest)
'Eingabemaske ausblenden
Unload barcodewahl
'Letzte Zeile ermitteln
lastRowInList = Worksheets(linie).Range(Worksheets(linie).Range("A1").End(xlDown), Worksheets( _
linie).Range("A65536").End(xlUp)).Row
'Startwert für letzte Zeile
ezeile = 1
Do Until IsError(Application.Match(barcode, Worksheets(linie).Range("A" & ezeile + 1 & ":A" &  _
lastRowInList), 0)) Or ezeile = lastRowInList
'Startzeile des Auftrags ermitteln
szeile = Application.Match(barcode, Worksheets(linie).Range("A" & ezeile + 1 & ":A" &  _
lastRowInList), 0) + ezeile
'Rüstwechsel/1. Barcode rausfiltern
Do Until Worksheets(linie).Range("B" & szeile)  Worksheets(linie).Range("B" & szeile + 1)
szeile = szeile + 1
Loop
ezeile = szeile
'Endzeile des Auftrags ermitteln
For rowHelper = ezeile + 1 To lastRowInList
'Zähle hoch bis zur ersten Nicht-Übereinstimmung des Barcodes
If Worksheets(linie).Cells(rowHelper, 1) = barcode Then
ezeile = rowHelper
Else
'Schleifenabbruch
Exit For
End If
Next
'Zeitwerte kopieren
Worksheets(linie).Range("E" & szeile + 1 & ":E" & ezeile).Copy Columns(d + 25)
letzte = ezeile - szeile
'Kopierte Zeitwerte in Minuten umwandeln
For i = 1 To letzte
Cells(i, d + 25).Value = Cells(i, d + 25).Value / 60
Next i
'Median berechnen
median = Application.WorksheetFunction.Quartile(Columns(d + 25), 2)
For i = 1 To letzte
'Median mehrfach eintragen
Cells(letzte + i, d + 25) = median
Next i
'Letzten Medianwert finden
medianletzte = ActiveSheet.Cells(Rows.Count, d + 25).End(xlUp).Row
'Zeitverlaufsdiagramm des Auftrags hinzufügen
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
'Datenbereich auswählen
.SetSourceData Source:=Range(Cells(1, d + 25), Cells(ezeile - szeile, d + 25))
'X-Achsen-Werte festlegen
.SeriesCollection(1).XValues = "='" & linie & "'!$N$" & szeile + 1 & ":$N$" & ezeile
'Diagrammtyp Verlaufsdiagramm
.ChartType = xlLine
'Diagrammtitel anzeigen und beschriften
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = "Linie " & linie & " - " & Left(barcode, 3) & "." & Right(barcode, 1) & " _
- Auftrag " & d & " - Stückzahl: " & (ezeile - szeile)
'Legende ausblenden
.HasLegend = False
'Intervalle festlegen
.Axes(xlValue).MajorUnit = 2
.Axes(xlCategory).TickLabelSpacing = ((ezeile - szeile) / 10) - 1
.Axes(xlCategory).TickMarkSpacing = (ezeile - szeile) / 10
'y -achsenbeschriftung
.SetElement (msoElementPrimaryValueAxisTitleHorizontal)
Selection.Left = 9
Selection.Top = 9
.Axes(xlValue, xlPrimary).AxisTitle.Text = "in min"
'Median mit einzeichnen
.SeriesCollection.NewSeries
.SeriesCollection(2).values = "='Linienauswertung - Grafiken'!" & Cells(letzte, d + 25). _
Address & ":" & Cells(medianletzte, d + 25).Address
'Hintergrund des Diagramms
With .PlotArea.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent5
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.8000000119
.Transparency = 0.6999999881
.Solid
End With
End With
'Y-Achsenbereich festlegen
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = 20
End With
'Größe und Position der Diagramme
With ActiveSheet
'Position
.ChartObjects(d).Left = 5
.ChartObjects(d).Top = 755 + ((d - 1) * 370)
'Größe
.ChartObjects(d).Height = 370
.ChartObjects(d).Width = 980
End With
'nächste Spalte
d = d + 1
Loop
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Medianwert in Excel-Diagrammen als Linie einfügen


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass Du Deine Daten in einer Spalte hast. Berechne den Median, und schreibe diesen direkt unter die Werte in derselben Spalte. Zum Beispiel, wenn Du 510 Werte hast, schreibe den Median 510 Mal darunter.

  2. Diagramm erstellen: Wähle die Daten aus und gehe zu Einfügen > Diagramm. Wähle den Diagrammtyp „Linie“ oder „Verlaufsdiagramm“.

  3. Median hinzufügen:

    • Klicke mit der rechten Maustaste auf das Diagramm und wähle „Daten auswählen“.
    • Füge eine neue Reihe hinzu und wähle die Zellen aus, die den Median enthalten. Das wird die Durchschnittslinie in Deinem Diagramm darstellen.
  4. Formatierung: Du kannst die Linie des Medians anpassen, indem Du die Farbe oder den Linienstil änderst, um sie von den anderen Linien abzuheben.

  5. VBA verwenden (optional): Wenn Du automatisierte Diagramme erstellen möchtest, kannst Du den folgenden VBA-Code verwenden:

    median = Application.WorksheetFunction.Quartile(Columns(d + 25), 2)
    For i = 1 To letzte
       Cells(letzte + i, d + 25) = median
    Next i

Häufige Fehler und Lösungen

  • Fehler: Median wird nicht angezeigt

    • Lösung: Stelle sicher, dass der Medianwert in den Datenbereich aufgenommen wird. Überprüfe, ob die Daten korrekt ausgewählt sind.
  • Fehler: Diagramm aktualisiert sich nicht

    • Lösung: Klicke mit der rechten Maustaste auf das Diagramm und wähle „Daten aktualisieren“, um sicherzustellen, dass die neuesten Werte angezeigt werden.

Alternative Methoden

  • Nutzung von Excel-Funktionen: Du kannst auch die Funktion =MEDIAN(Bereich) verwenden, um den Median in einer Zelle zu berechnen und dann diese Zelle in Deinem Diagramm zu referenzieren.

  • Diagrammvorlagen: Erstelle eine Vorlage für das Diagramm, die bereits die Medianlinie enthält, um die Erstellung in zukünftigen Projekten zu vereinfachen.


Praktische Beispiele

Angenommen, Du hast die folgenden Werte in Spalte A:

1
2
3
4
5

Berechne den Median, indem Du =MEDIAN(A1:A5) verwendest. Das Ergebnis ist 3. Füge diesen Medianwert unter die Datenreihe ein und erstelle ein Diagramm. Füge dann die Medianreihe hinzu, um die Durchschnittslinie zu sehen.


Tipps für Profis

  • Visuelle Anpassungen: Nutze die Formatierungsoptionen von Excel, um Deine Medianlinie hervorzuheben. Eine gestrichelte Linie oder eine andere Farbe kann helfen, die Linie besser sichtbar zu machen.

  • Dynamische Diagramme: Verwende dynamische Bereiche, um sicherzustellen, dass Dein Diagramm automatisch aktualisiert wird, wenn neue Daten hinzugefügt werden.


FAQ: Häufige Fragen

1. Wie berechne ich den Median in Excel? Um den Median zu berechnen, verwende die Formel =MEDIAN(Zellenbereich).

2. Kann ich mehrere Medianlinien in einem Diagramm hinzufügen? Ja, Du kannst mehrere Medianlinien hinzufügen, indem Du für jede Datenreihe eine Medianreihe erstellst und diese im Diagramm hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige