¿Cómo creo un gráfico de Excel que extrae datos de varias hojas? [cerrado]
-
03-07-2019 - |
Pregunta
Tengo cifras de ventas mensuales almacenadas en hojas separadas. Me gustaría crear un gráfico de ventas para varios productos por mes. Cada producto se representaría en una línea de color diferente en el mismo gráfico con cada mes a lo largo del eje x.
¿Cuál es la mejor manera de crear un gráfico de una sola línea que se extrae de las mismas celdas relativas en varias hojas?
Solución
Usa el Asistente de Gráficos
En el Paso 2 de 4, hay una pestaña con la etiqueta " Series " ;. Hay 3 campos y un cuadro de lista en esta pestaña. El cuadro de lista muestra las diferentes series que ya está incluyendo en el gráfico. Cada serie tiene un " Nombre " campo y un " Valores " Campo que es específico para esa serie. El campo final es la etiqueta de eje de Categoría (X) " campo, que es común a todas las series.
Haz clic en el " Agregar " botón debajo del cuadro de lista. Esto agregará una serie en blanco a su cuadro de lista. Tenga en cuenta que los valores de " Nombre " y para " Valores " cambiar cuando resaltes una serie en el cuadro de lista.
Selecciona tu nueva serie.
Hay un icono en cada campo en el lado derecho. Este icono le permite seleccionar celdas en el libro de trabajo para extraer los datos. Al hacer clic en él, el asistente se oculta temporalmente (excepto en el campo en el que está trabajando), lo que le permite interactuar con el libro de trabajo.
Seleccione la hoja apropiada en el libro de trabajo y luego seleccione los campos con los datos que desea mostrar en el cuadro. Se puede hacer clic en el botón a la derecha del campo para mostrar el asistente.
Espero que ayude.
EDITAR: Lo anterior se aplica a 2003 y antes. Para 2007, cuando se selecciona el gráfico, debería poder realizar una acción similar con la opción " Seleccionar datos " opción en el " Diseño " pestaña de la cinta. Esto abre un cuadro de diálogo que enumera las Series para el gráfico. Puede seleccionar la serie tal como podría hacerlo en Excel 2003, pero debe usar el botón " Agregar " y " Editar " Botones para definir series personalizadas.
Otros consejos
Aquí hay algunos códigos de Excel 2010 que pueden funcionar. Tiene un par de detalles específicos (como filtrar los caracteres con codificación incorrecta de los títulos), pero fue diseñado para crear múltiples gráficas de varias series a partir de datos de 4 dimensiones que tienen datos absolutos y basados ??en porcentajes. Modifícalo como quieras:
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<*>quot; & startR & ":$D<*>quot; & (r - 1)
c.SeriesCollection(c.SeriesCollection.Count).Values = "='" & s.Name & "'!$E<*>quot; & startR & ":$E<*>quot; & (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<*>quot; & startR & ":$F<*>quot; & (r - 1), minusvalues:="='" & s.Name & "'!$F<*>quot; & startR & ":$F<*>quot; & (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<*>quot; & startR & ":$D<*>quot; & (r - 1)
c2.SeriesCollection(c2.SeriesCollection.Count).Values = "='" & s.Name & "'!$G<*>quot; & startR & ":$G<*>quot; & (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<*>quot; & startR & ":$H<*>quot; & (r - 1), minusvalues:="='" & s.Name & "'!$H<*>quot; & startR & ":$H<*>quot; & (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 es más poderoso con la cinta ..: =) Para agregar nuevas series en la tabla haz: Seleccione Gráfico, luego haga clic en Diseño en Herramientas de gráfico en la cinta, En la cinta de diseño, seleccione " Seleccionar datos " en el grupo de datos, Luego verá el botón para Agregar para agregar nuevas series.
Espero que eso ayude.