varias una porcentajes mostrar hojas hacer graficos grafico graficas grafica etiquetas datos con comparativa como barras agregar excel charts excel-2007

una - ¿Cómo creo un gráfico de Excel que extraiga datos de varias hojas?



como hacer una grafica comparativa en excel 2013 (3)

Use el asistente de gráficos.

En el Paso 2 de 4, hay una pestaña con la etiqueta "Serie". 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 campo "Nombre" y un campo "Valores" que son específicos de esa serie. El campo final es el campo "Etiquetas de eje de categoría (X)", que es común a todas las series.

Haga clic en el botón "Agregar" debajo del cuadro de lista. Esto agregará una serie en blanco a su cuadro de lista. Observe que los valores para "Nombre" y para "Valores" cambian cuando resalta una serie en el cuadro de lista.

Seleccione su 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. Cuando hace clic en él, el asistente se oculta temporalmente (a excepción del campo en el que está trabajando), lo que le permite interactuar con el libro de trabajo.

Seleccione la hoja apropiada en el libro 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 aplica a 2003 y antes. Para 2007, cuando se seleccione la tabla, debería poder realizar una acción similar utilizando la opción "Seleccionar datos" en la pestaña "Diseño" de la cinta de opciones. Esto abre un cuadro de diálogo que enumera las Series para el gráfico. Puede seleccionar la serie tal como lo haría en Excel 2003, pero debe usar los botones "Agregar" y "Editar" para definir series personalizadas.

Tengo cifras de ventas mensuales almacenadas en hojas separadas. Me gustaría crear una parcela de ventas para múltiples productos por mes. Cada producto se representaría en una línea de color diferente en el mismo gráfico, con cada mes ejecutándose a lo largo del eje x.

¿Cuál es la mejor manera de crear un solo gráfico de líneas que extraiga de las mismas celdas relativas en varias hojas?


2007 es más poderoso con la cinta ..: =) Para agregar nuevas series en el gráfico haz: Selecciona Gráfico, luego haz clic en Diseño en Herramientas de gráfico en la cinta, En la cinta Diseño, selecciona "Seleccionar datos" en Grupo de datos, luego verás el botón para Agregar para agregar nuevas series.

Espero que eso ayude.


Aquí hay un código de Excel 2010 que puede funcionar. Tiene un par de detalles (como el filtrado de caracteres de codificación incorrecta de los títulos) pero fue diseñado para crear múltiples gráficos de varias series a partir de datos de 4 dimensiones que tienen datos absolutos y basados ​​en porcentajes. Modifíquelo como lo desee:

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