Wie erstelle ich ein Excel-Diagramm, die Daten aus mehreren Blättern zieht? [geschlossen]

StackOverflow https://stackoverflow.com/questions/163363

  •  03-07-2019
  •  | 
  •  

Frage

Ich habe Zahlen monatliche Verkäufe in separaten Blättern gespeichert. Ich möchte ein Grundstück von Umsatz für mehrere Produkte pro Monat erstellen. Jedes Produkt würde mit jedem Monat, die entlang der x-Achse in einer anderen farbigen Linie auf das gleiche Chart dargestellt werden.

Was ist der beste Weg, um eine einzelne Liniendiagramm zu erstellen, die von den gleichen relativen Zellen auf mehreren Blättern ziehen?

War es hilfreich?

Lösung

Verwenden Sie den Diagramm-Assistenten.

Auf Schritt 2 von 4 gibt es eine Registerkarte mit der Bezeichnung „Serie“. Es gibt drei Felder und ein Listenfeld auf diesem Registerkarte. Das Listenfeld zeigt die verschiedenen Serien Sie bereits auf dem Chart inklusive. Jede Serie hat sowohl ein Feld „Namen“ und „Werte“ Feld, das zu dieser Reihe spezifisch ist. Das letzte Feld ist das „Kategorie (X) Achsenbeschriftungen“ Feld, das zu allen Serien üblich ist.

Klicken Sie auf die Schaltfläche „Hinzufügen“ unter dem Listenfeld. Dadurch wird eine leere Reihe zu Ihrem Listenfeld hinzuzufügen. Beachten Sie, dass die Werte für „Name“ und für „Werte“ ändern, wenn Sie eine Serie in der Liste markieren.

Wählen Sie Ihre neue Serie.

Es ist ein Symbol in jedem Feld auf der rechten Seite. Mit diesem Symbol können Sie Zellen in der Arbeitsmappe wählen Sie aus den Daten zu ziehen. Wenn Sie darauf klicken, blendet der Assistent vorübergehend selbst (mit Ausnahme des Feldes Sie arbeiten in) können Sie mit der Arbeitsmappe zu interagieren.

Wählen Sie das entsprechende Blatt in der Arbeitsmappe und wählen Sie dann die Felder mit den Daten, die Sie im Diagramm angezeigt werden sollen. Die Schaltfläche auf der rechten Seite des Feldes kann angeklickt werden, um den Assistenten sichtbar machen.

Ich hoffe, das hilft.

EDIT: Die oben bis 2003 gilt und vor. Für das Jahr 2007, wenn das Diagramm ausgewählt ist, sollten Sie in der Lage sein, eine ähnliche Aktion mit dem „Select Data“ auf der Registerkarte „Entwurf“ des Bandes zu tun. Es öffnet sich ein Dialogfeld mit der Serie für das Diagramm oben. Sie können die Serie wählen Sie einfach, wie Sie in Excel 2003 können, aber müssen Sie die „Hinzufügen“ und „Bearbeiten“ Tasten individuelle Serie zu definieren, verwendet werden.

Andere Tipps

Hier ist ein Code aus Excel 2010, die funktionieren kann. sowohl absolut als auch prozentual Basis mit Daten Es hat ein paar Besonderheiten (wie Filterung schlecht encodieren Zeichen von Titeln), aber es wurde entwickelt, um mehr Multi-Serie Graphen von 4-dimensionalen Daten zu erstellen. Ändern Sie es, wie Sie mögen:

Sub createAllGraphs()

Const chartWidth As Integer = 260
Const chartHeight As Integer = 200




If Sheets.Count = 1 Then
    Sheets.Add , Sheets(1)
    Sheets(2).Name = "AllCharts"
ElseIf Sheets("AllCharts").ChartObjects.Count > 0 Then
    Sheets("AllCharts").ChartObjects.Delete
End If
Dim c As Variant
Dim c2 As Variant
Dim cs As Object
Set cs = Sheets("AllCharts")
Dim s As Object
Set s = Sheets(1)

Dim i As Integer


Dim chartX As Integer
Dim chartY As Integer

Dim r As Integer
r = 2

Dim curA As String
curA = s.Range("A" & r)
Dim curB As String
Dim curC As String
Dim startR As Integer
startR = 2

Dim lastTime As Boolean
lastTime = False

Do While s.Range("A" & r) <> ""

    If curC <> s.Range("C" & r) Then

        If r <> 2 Then
seriesAdd:
            c.SeriesCollection.Add s.Range("D" & startR & ":E" & (r - 1)), , False, True
            c.SeriesCollection(c.SeriesCollection.Count).Name = Replace(s.Range("C" & startR), "Â", "")
            c.SeriesCollection(c.SeriesCollection.Count).XValues = "='" & s.Name & "'!$D$" & startR & ":$D$" & (r - 1)
            c.SeriesCollection(c.SeriesCollection.Count).Values = "='" & s.Name & "'!$E$" & startR & ":$E$" & (r - 1)
            c.SeriesCollection(c.SeriesCollection.Count).HasErrorBars = True
            c.SeriesCollection(c.SeriesCollection.Count).ErrorBars.Select
            c.SeriesCollection(c.SeriesCollection.Count).ErrorBar Direction:=xlY, Include:=xlBoth, Type:=xlCustom, Amount:="='" & s.Name & "'!$F$" & startR & ":$F$" & (r - 1), minusvalues:="='" & s.Name & "'!$F$" & startR & ":$F$" & (r - 1)
            c.SeriesCollection(c.SeriesCollection.Count).ErrorBar Direction:=xlX, Include:=xlBoth, Type:=xlFixedValue, Amount:=0

            c2.SeriesCollection.Add s.Range("D" & startR & ":D" & (r - 1) & ",G" & startR & ":G" & (r - 1)), , False, True
            c2.SeriesCollection(c2.SeriesCollection.Count).Name = Replace(s.Range("C" & startR), "Â", "")
            c2.SeriesCollection(c2.SeriesCollection.Count).XValues = "='" & s.Name & "'!$D$" & startR & ":$D$" & (r - 1)
            c2.SeriesCollection(c2.SeriesCollection.Count).Values = "='" & s.Name & "'!$G$" & startR & ":$G$" & (r - 1)
            c2.SeriesCollection(c2.SeriesCollection.Count).HasErrorBars = True
            c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBars.Select
            c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBar Direction:=xlY, Include:=xlBoth, Type:=xlCustom, Amount:="='" & s.Name & "'!$H$" & startR & ":$H$" & (r - 1), minusvalues:="='" & s.Name & "'!$H$" & startR & ":$H$" & (r - 1)
            c2.SeriesCollection(c2.SeriesCollection.Count).ErrorBar Direction:=xlX, Include:=xlBoth, Type:=xlFixedValue, Amount:=0
            If lastTime = True Then GoTo postLoop
        End If

        If curB <> s.Range("B" & r).Value Then

            If curA <> s.Range("A" & r).Value Then
                chartX = chartX + chartWidth * 2
                chartY = 0
                curA = s.Range("A" & r)
            End If

            Set c = cs.ChartObjects.Add(chartX, chartY, chartWidth, chartHeight)
            Set c = c.Chart
            c.ChartWizard , xlXYScatterSmooth, , , , , True, Replace(s.Range("B" & r), "Â", "") & " " & s.Range("A" & r), s.Range("D1"), s.Range("E1")

            Set c2 = cs.ChartObjects.Add(chartX + chartWidth, chartY, chartWidth, chartHeight)
            Set c2 = c2.Chart
            c2.ChartWizard , xlXYScatterSmooth, , , , , True, Replace(s.Range("B" & r), "Â", "") & " " & s.Range("A" & r) & " (%)", s.Range("D1"), s.Range("G1")

            chartY = chartY + chartHeight
            curB = s.Range("B" & r)
            curC = s.Range("C" & r)
        End If

        curC = s.Range("C" & r)
        startR = r
    End If

    If s.Range("A" & r) <> "" Then oneMoreTime = False ' end the loop for real this time
    r = r + 1
Loop

lastTime = True
GoTo seriesAdd
postLoop:
cs.Activate

End Sub

2007 ist mächtiger mit Band ..: =) So fügen Sie neue Serie in Diagramm zu tun: Wählen Sie Diagramm, klicken Sie dann auf Entwurf in Diagrammtools auf dem Band, Auf der Design-Band, wählen Sie "Select Data" in Data Group, Dann werden Sie auf den Button siehe Hinzufügen, um neue Serie hinzufügen.

Hoffnung, dass helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top