Cómo utilizar una macro para agregar etiquetas a puntos de datos en un gráfico de dispersión xy o en un gráfico de burbujas en Excel

Se aplica: Microsoft Office Excel 2007Microsoft Office Excel 2003Excel 2010

Resumen


En Microsoft Excel no hay ningún comando integrado que asocie automáticamente las etiquetas de texto a los puntos de datos en un gráfico de burbujas o xy (de dispersión). Sin embargo, puede crear una macro de Microsoft Visual Basic para Aplicaciones que haga esto. Este artículo contiene una macro de ejemplo que realiza esta tarea en un gráfico de dispersión XY. Sin embargo, el mismo código se puede utilizar para un gráfico de burbujas.

Más información


Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento en particular. Sin embargo, no modificarán estos ejemplos para proporcionar una funcionalidad adicional ni crearán procedimientos que se adapten a sus necesidades específicas. En el código de ejemplo de este artículo se supone que los datos y las etiquetas asociadas se organizan en una hoja de cálculo según el formato siguiente:
  • La primera columna contiene las etiquetas de datos.
  • La segunda columna contiene los valores de x para el gráfico xy (de dispersión).
  • La tercera columna y las siguientes contienen los valores y para el gráfico xy (de dispersión).
NOTA: aunque el ejemplo proporcionado contiene sólo una columna de datos para los valores y, puede utilizar más de una serie de datos.

Para utilizar las macros de este artículo, cree un gráfico con los datos siguientes:
   A1: Labels       B1: X Values   C1: Y Values   A2: DataPoint1   B2: 12          C2: 5   A3: DataPoint2   B3:  9          C3: 7   A4: DataPoint3   B4:  5          C4: 3   A5: DataPoint4   B5:  4          C5: 8   A6: DataPoint5   B6:  1          C6: 4 
NOTA: la tabla no debería contener columnas vacías y la columna que contenga las etiquetas de datos no se debería separar de la columna que contiene los valores x. Las etiquetas y los valores se deben disponer exactamente en el formato que se describe en este artículo. (La celda superior izquierda no tiene que ser la celda A1).

Para asociar etiquetas de texto a los puntos de datos en un gráfico xy (de dispersión), siga estos pasos:
  1. En la hoja de cálculo que contiene los datos de ejemplo, seleccione el rango de celdas B1:C6.
  2. En Microsoft Office Excel 2003 y en versiones anteriores, siga estos pasos:
    1. En el menú Insertar, haga clic en Gráfico.
    2. En el cuadro de diálogo Asistente para gráficos - paso 1 de 4: tipo de gráfico, haga clic en la pestaña Tipos estándar. En Tipo de gráfico, haga clic en XY (Dispersión) y, después, en Siguiente.
    3. En el cuadro de diálogo Asistente para gráficos - paso 2 de 4: datos de origen, haga clic en la pestaña Rango de datos. En Series en, haga clic en Columnas y, después, en Siguiente.
    4. En el cuadro de diálogo Asistente para gráficos - paso 3 de 4: opciones de gráfico, haga clic en Siguiente.
    5. En el cuadro de diálogo Asistente para gráficos - paso 4 de 4: ubicación del gráfico, haga clic en Como hoja nueva y, después, en Finalizar.
    En Microsoft Office Excel 2007, siga estos pasos:
    1. Haga clic en la pestaña Insertar y, después, en Dispersión, en el grupo Gráficos. A continuación, seleccione un tipo.
    2. En la pestaña Diseño, haga clic en Mover gráfico, en el grupo Ubicación. Después, haga clic en Nueva hoja y, luego, en Aceptar.
  3. Presione ALT+F11 para iniciar el Editor de Visual Basic.
  4. En el menú Insertar, haga clic en Módulo.
  5. Escriba el siguiente código en la nueva hoja:
    Sub AttachLabelsToPoints()   'Dimension variables.   Dim Counter As Integer, ChartName As String, xVals As String   ' Disable screen updating while the subroutine is run.   Application.ScreenUpdating = False   'Store the formula for the first series in "xVals".   xVals = ActiveChart.SeriesCollection(1).Formula   'Extract the range for the data from xVals.   xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _      Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))   xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)   Do While Left(xVals, 1) = ","      xVals = Mid(xVals, 2)   Loop   'Attach a label to each data point in the chart.   For Counter = 1 To Range(xVals).Cells.Count     ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _         True      ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _         Range(xVals).Cells(Counter, 1).Offset(0, -1).Value   Next CounterEnd Sub
  6. Presione ALT+Q para volver a Excel.
  7. Cambie a la hoja del gráfico.
  8. En Excel 2003 y versiones anteriores, seleccione Macro en el menú Herramientas y haga clic en Macros. Haga clic en AttachLabelsToPoints y, después, en Ejecutar para ejecutar la macro.

    En Excel 2007, haga clic en la pestaña Programador y, luego, en Macro, en el grupo Código. Después, seleccione AttachLabelsToPoints y haga clic en Ejecutar.
La macro asocia las etiquetas de las celdas A2:A6 a los puntos de datos del gráfico.