Hvordan lager jeg et Excel-diagram som henter data fra flere ark du?

stemmer
7

Jeg har månedlige salgstall som er lagret i separate ark. Jeg ønsker å skape en tomt for salg for flere produkter per måned. Hvert produkt ville være representert i en annen farget linje på samme diagram med hver måned løper langs x-aksen.

Hva er den beste måten å skape en eneste linje diagram som trekker fra de samme relative celler på flere ark?

Publisert på 02/10/2008 klokken 14:40
kilden bruker
På andre språk...                            


3 svar

stemmer
6

Bruk veiviseren Chart.

På Trinn 2 av 4, er det en fane merket "Series". Det er 3 felt og en listeboks i denne kategorien. Listeboksen viser de ulike seriene du allerede inkludert i diagrammet. Hver serie har både en "Name" -feltet og "verdier" felt som er spesifikk for den serien. Den endelige feltet er "kategori (X) aksebetegnelsene" -feltet, som er felles for alle seriene.

Klikk på "Legg til" knappen under listen. Dette vil legge en blank serie til listeboksen. Legg merke til at verdiene for "Navn" og på "verdier" endring når du merker en serie i listeboksen.

Velg den nye serien.

Det er et ikon i hvert felt på høyre side. Dette ikonet kan du velge celler i arbeidsboken til å trekke ut data fra. Når du klikker på den, veiviseren skjuler midlertidig selv (med unntak for det feltet du jobber i) slik at du kan samhandle med arbeidsboken.

Velg riktig ark i arbeidsboken, og velg deretter feltene med dataene du ønsker å vise i diagrammet. Knappen til høyre for feltet kan klikkes for å unhide veiviseren.

Håper det hjelper.

EDIT: Ovennevnte gjelder for 2003 og tidligere. For 2007, da diagrammet er valgt, bør du være i stand til å gjøre en tilsvarende handling ved hjelp av "Velg data" alternativet på "Design" -kategorien av båndet. Dette åpner opp en dialogboks som viser serien for diagrammet. Du kan velge serien akkurat som du kan i Excel 2003, men du må bruke "Legg til" og "Rediger" for å definere tilpassede serien.

Svarte 02/10/2008 kl. 14:53
kilden bruker

stemmer
-1

2007 er kraftigere med bånd ..: =) For å legge ny serie i diagrammet gjør: Velg Kart, og klikk deretter på Design i Diagramverktøy på båndet, på design båndet, velg "Select data" i Data Group, så vil du se knappen for Add for å legge nye serien.

Håper at vil hjelpe.

Svarte 05/03/2010 kl. 04:04
kilden bruker

stemmer
0

Her er noen kode fra Excel 2010 som kan fungere. Den har et par detaljer (for eksempel filtrering av dårlig-koder tegn fra titler), men det er designet for å opprette flere multi-serie diagrammer fra 4-dimensjonale data som har både absolutte og prosentbaserte data. Endrer det hvordan du liker:

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
Svarte 13/11/2010 kl. 12:08
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more