Una macro de Visual Basic muy sencilla es la única forma de etiquetar gráficos de dispersión que me he encontrado. Si alguien encuentra otro modo más sencillo de hacerlo que lo comente en estas líneas. La intencion es llegar a este gráfico:

etiquetas-grafico-dispersion-excel-1.png

No es que sea un gran gráfico, recordad que está hecho en Excel, pero nos permite ver como se distribuyen los paises  en función de la renta per cápita y el número de horas trabajadas al año. Además podemos identificarlos perfectamente, como es el caso de Luxemburgo, como siempre. Los datos para realizar este gráfico están en la web de la OCDE. Nos los descargamos en Excel y tenemos una tabla de esta forma:

etiquetas-grafico-dispersion-excel-2.png

En este punto realizamos el gráfico de dispersión y a la hora de introducir las etiquetas nos encontraríamos con este cuadro de diálogo:

etiquetas-grafico-dispersion-excel-3.png

Por más vueltas que le he dado al tema no he encontrado la forma de añadir las etiquetas en la forma que deseo. Sin embargo, en menos de 5 minutos, mediante una macro he llegado al gráfico que os pongo arriba. Lo primero que he hecho es cambiar las cabeceras para no perderme, es que no hay mucho donde rascar:

etiquetas-grafico-dispersion-excel-4.png

Ahora hay dos puntos importantes:

  • Excel respeta el orden de las series en el gráfico
  • Podemos poner lo que necesitemos en la propiedad DataLabel.Text

Con esto hacemos la siguiente macro de Excel:

Sub etiquetas()
'
' Macro realizada por www.analisisydecision.es
'
Dim texto As String
ActiveSheet.ChartObjects("1 Gráfico").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels
i = 2
para = 0
While para = 0
texto = Cells(i, 2)
punto = Cells(i, 1)
If texto <> "" Then
ActiveChart.SeriesCollection(1).Points(punto).DataLabel.Select
ActiveChart.SeriesCollection(1).Points(punto).DataLabel.Text = texto
Else
para = 1
End If
i = i + 1
Wend
End Sub

No es una macro muy compleja y que podéis adaptar perfectamente a otros usos. Recordad los puntos más importantes que os indiqué con anterioridad.

29 pensiamientos en “Trucos Excel. Poner etiquetas en gráficos de dispersión

  • Jose M. Mateu

    Hola,
    Llevaba un tiempo dando vueltas al tema porque quería presentar un gráfico similar al que tú muestras. Encontrar tu sugerencia y tu macro ha sido providencial. Mil gracias.
    Saludos.

    Responder
  • Jaime Ordóñez

    Mil gracias, excelente aporte.

    Responder
  • Carlos

    Muy buena tu idea, no se si puede haber otra pero esta me parece perfecta. Muchas gracias por el tiempo dedicado a ayudar a los demas.
    Un saludo

    Responder
  • Albert

    No se programar macros en Excel. Hay alguna otra forma?

    Responder
  • rvaquerizo

    Con Chart Tools puedes hacerlo con menús:

    https://analisisydecision.es/chart-tools-un-add-in-imprescindible-para-excel/

    Responder
  • Christopher

    Una pregunta, que sucede si hay más de una serie de datos en el gráfico de dispersión.

    Espero me puedan responder, toda vez que el tema es algo viejo.

    Gracias por la ayuda y por su atención.

    Responder
  • rvaquerizo

    Christopher, mira este tema:

    https://analisisydecision.es/chart-tools-un-add-in-imprescindible-para-excel/

    Te facilita esta labor. Descarga el add in y podrás añadir etiquetas de modo más sencillo.

    Responder
  • JAP

    Más sencillo: te descargas e instalas el XY Chart Labeler (un pequeño programa que se incrusta en excel)y cuando vuelves a abrir el excel, en la pestañña de herramientas the aparecerá un “xy chart labels” que te permite dar etiquetas a todos o algunos de los puntos, desplazarlos etc.

    http://www.appspro.com/Utilities/ChartLabeler.htm

    Responder
    • Antonio

      Buenos días,

      La aplicación es muy buena pero en sesión de usuario administrador en usuario estándar no se refleja la pestaña xy chart label.

      Responder
  • rvaquerizo

    Yo si no empleo esta macro empleo JWalk Chart Tools (http://spreadsheetpage.com/index.php/file/j_walk_chart_tools_add_in/)

    Un add in del que ya hablé en el blog:

    https://analisisydecision.es/chart-tools-un-add-in-imprescindible-para-excel/

    Saludos.

    Responder
  • Carlos Muñiz

    Existe otra forma sin macros,,, las etiquetas son shapes,, puedes asignarle los valores y en cada Shape de cada dato,,, ve a la barra de fórmulas y ponle “=Celda_en_donde_este_la_etiqueta” y listo tendrás las etiques en lugar de los valores,,,,

    Responder
  • Pingback: Trucos Excel. Gráficos dot plot, representando un ranking gráficamente » Análisis y decisión

  • Fernando Sosa

    Gracias broder!

    Responder
  • Alberto

    Espectacular….esto lo estuve buscando mucho tiempo.
    Lastima que en excel no tenga esta opción de una manera fácil

    Responder
  • José Antonio Gil Martín

    Alberto yo utilizo el XYChartLabeler en el trabajo con Excel 2007 y en casa con Excel 2010 y va muy bien, te lo puedes descargar gratis de http://www.appspro.com/Utilities/ChartLabeler.htm

    Responder
  • rvaquerizo

    Hola, hay un add in de Excel que nos permite hacer esta tarea de un modo sencillo:

    https://analisisydecision.es/chart-tools-un-add-in-imprescindible-para-excel/

    Yo no empleo ya la macro.Saludos.

    Responder
  • Paula

    no me funciona la macro asi tal cual me sale un error, debo cambiar lgo al momento de introducirla en mi macro?

    Responder
  • rvaquerizo

    ¿Cómo se llama tu gráfico? ESte código es muy simple y sólo trabaja sobre un gráfico que se llame 1 Gráfico.

    Puede que ese sea tu problema. Saludos.

    Responder
  • JOSE MARTINEZ

    MUCHAS GRACIAS, COMO SE PUEDE HACER PARA PODERPONERLE COLORES A LOS PUNTOS DE ACUERDO A LOS VALORES

    MUCHAS GRACIAS POR TU ATENCION

    Responder
  • rvaquerizo

    Buen apunte Jose. Me pongo manos a la obra con ello.

    Responder
  • Pingback: Truco Excel. Gráfico de puntos con colores » Análisis y decisión

  • PiliP

    Muchas gracias!!! perfecto lo he conseguido.

    Responder
  • Eduardo

    hola,
    acabo de descargar y usar esta aplicación para excel y va de maravilla, gracias!
    http://www.appspro.com/Utilities/ChartLabeler.htm

    Responder
  • Facundo

    Estimado,
    muchas gracias por esta explicación. Anduve como loco buscando esto y no lo encontraba. Genio!
    Te aseguro que haz ayudado a mucha más gente de la que te imaginas con esta ayuda porque la mayoría de la gente no escribe para agradecer.. (yo mismo casi que no lo hago …!)
    un abrazo

    Responder
  • Facundo

    Quiero aclarar una cosa nomás.. A mí no me funcionó directamente sino que debí cambiar algo en el código:

    En vez de: ActiveSheet.ChartObjects(“1 Gráfico”).Activate

    Tuve que escribir: ActiveSheet.ChartObjects(1).Activate

    (o sea, puse 1, en vez de “1 Gráfico”)

    Responder
  • Ale

    Hola… soy nueva con el excel y no logro hacer esto… cuando hago el gráfico que celdas y columnas debo agarrar?… porque la macro funciona pero solo me toma eje x y la etiqueta… no se que hice… gracias

    Responder
  • Linux

    Despues de cacharrear un poco y sin poder bajarme macros o programas (pc de empresa) he visto que si se convierte cada punto XY en una serie nueva(tantas series como pares X;Y) y luego añades etiqueta de datos y después le cambias el formato a esta etiqueta de datos para que aparezca el nombre de la serie….solucionado!

    Pasos? insertar grafico dispersion > seleccionar datos e ir metiendo serie a serie con los valores de X de Y y el titulo de la serie > añadir etiqueta de datos > con el boton derecho sobre la etiqueta Formato etiqueta de datos > OPCIONES DE ETIQUETA – NOMBRE DE LA SERIE

    Responder
  • Pingback: ¿Patentes o publicaciones? ¿Cañones o mantequilla? | Información en materia de patentes

  • Dolores Hernández

    Gracias por este tip, me sirvió justo para lo que necesitaba.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *