Crear una nube de palabras con Excel

Descubre cómo crear una nube de palabras en Excel

Todos hemos visto alguna vez las nubes de palabras o nubes de etiquetas, ese conjuntos con palabras de diferentes tamaños y colores, algunas en vertical y otras en horizontal, que tan bien quedan para según qué cosas. Si tú también quieres crear tus nubes de palabras estás de enhorabuena, porque podemos crear nuestras nubes de palabra con Excel gracias a las macros. Para ello solo tendrás que saber utilizar VBA, algo mucho más fácil de lo que parece a priori y que nos permitirá unos resultados más que espectaculares.

¿Qué es y para qué sirve una nube de palabras?

Una nube de palabras o nube de tags, es una representación gráfica de palabras de palabras en un espacio con el objetivo de ver cuáles son las palabras que más se repiten. De esta forma, podemos ver rápidamente y de forma visual cuáles son las palabras cuya densidad de palabra es mayor y, a partir de ahí podemos tomar decisiones al respecto. Esta herramienta puede ser utilizada en muchos campos como la educación o la estadística, ya que permite ver cuáles son las opiniones más repetidas en una encuesta, etc.

Sin embargo, uno de los campos donde más se utiliza es el marketing online, donde las personas pueden apreciar de un vistazo cuáles son los principales conceptos que se repiten en un sitio web, en una página determinada, o para encontrar las palabras que más veces podemos encontrar en dos páginas diferentes, con el objetivo de ver cuánto se parecen, o encontrar los términos que más poseen en común. Además, también se utiliza en los blogs para realizar nubes de etiquetas con las que los usuarios pueden hacer click en los palabras clave que más le interesen y también verá de forma resaltada las que más importantes son para el portal.

Crear nubes de palabras en Excel con VBA

Como siempre que hablamos de VBA, lo primero que tenemos que hacer es agrupar los datos de la forma correcta para aplicar luego las macros. En este caso, necesitarás dos columnas. En la primera de ellas tendremos las palabras que aparecerán en la nube de palabras, y en la segunda el porcentaje a partir del que Excel elaborará la nube. Lo que haremos será generar una macro con dos arreglos, uno para la primera columna y otro para los valores numéricos pero antes, en una celda vacía, hay que insertar el texto de las palabras con un tamaño de fuente distinto para cada palabra.

cómo crear nube palabras en ExcelUna vez solucionado este paso inicial, hay que seleccionar un rango de celdas para ejecutar la macro sobre él. Si omites este primer paso, la operación será errónea. Además, la tabla de datos debe ser de dos columnas. En caso contrario, nos aparecerá un mensaje de error en la línea 55 de la macro de Excel. Cuestiones como el número de filas de la tabla de datos no importan, lo único que debes hacer es asegurarte de seleccionar las celdas. A continuación podemos ejecutar la macro.

Primero hay que declarar todas las variables, para lo que desde la línea 4 recurrimos a la instrucción Dim. Con la variable tamaño se almacena el resultado de dividir entre dos las celdas elegidas, y con ReDim establecemos los elementos del arreglo etiquetas y el arreglo importancia según el tamaño. A continuación hay que asignar el valor 1 a las variables Celda e Índice. La primera nos indica si estamos en la columna derecha o izquierda, la segunda nos indica la fila de Excel y nos permite asignar los valores a los arreglos.

Vamos a la línea 18, donde el bucle For each nos permite recorrer cada celda del rango seleccionado previamente. Si estás en la columna izquierda, almacena el valor de la palabra en la variable ListaEtiquetas y en el arreglo Etiquetas; en cambio, en la columna derecha se almacena el valor en el arreglo Importancia. Para saber en qué columna nos encontramos tenemos la instrucción If con la condición Mod 2 =1, que nos permite saber de qué columna se trata, si la primera o la segunda.

Antes de acabar el bloque Else, compara el valor numérico de la segunda columna con los valores almacenados antes para saber si es el valor máximo o mínimo. Así, podemos determinar el tamaño de fuente de cada palabra. En la línea 39 aparece la celda donde se creará la nube de palabras. Allí se coloca el valor de la variable listaEriquetas, y como deberías saber en todo momento puedes editar desde aquí la celda donde aparecerá la nube de palabras.

Ya solo nos queda bajar a la línea 44, donde aparece el bucle For, que cambia el tamaño de cada una de las palabras de la nube. Se trata de un bucle que se ejecuta una vez por palabra y determina el tamaño de la fuente según el valor que le hemos dado en la segunda columna y el valor máximo de la tabla de Excel. En cualquier caso, a continuación de dejamos el código para una macro que puedes guardar y ejecutar tantas veces como quieras.

1 Sub crearNubeEtiquetas()
2 On Error GoTo MensajeError

3

4 Dim tamano As Integer
5 Dim celda As Integer
6 Dim indice As Integer
7 Dim etiquetas() As String
8 Dim importancia()
9 Dim maxImportancia
10 Dim minImportancia
11 tamano = Selection.Count / 2
12 ReDim etiquetas(1 To tamano) As String
13 ReDim importancia(1 To tamano)

14

15celda = 1
16indice = 1

17

18 For Each cell In Excel.Selection
19     If celda Mod 2 = 1 Then
20        listaEtiquetas = listaEtiquetas & cell.Value & “, ”
21        etiquetas(indice) = cell.Value
22    Else
23        importancia(indice) = Val(cell.Value)

24

25        If importancia(indice) > maxImportancia Then
26            maxImportancia = importancia(indice)
27        End If

28

29        If importancia(indice) < minImportancia Then
30            minImportancia = importancia(indice)
31        End If

32

33        indice = indice + 1
34    End If

35

36    celda = celda + 1
37 Next cell

38

39 Range(“D2”).Select
40 ActiveCell.Value = listaEtiquetas
41 ActiveCell.Font.Size = 8
42 inicio = 1

43

44 For i = 1 To tamano
45     With ActiveCell.Characters(Start:=inicio, Length:=Len(etiquetas(i))).Font
46         .Size = 6 + Math.Round((importancia(i) – minImportancia) / (maxImportancia – minImportancia) * 14, 0)
47    End With

48

49    inicio = inicio + Len(etiquetas(i)) + 2
50 Next i

51

52 Exit Sub
53 MensajeError:

54

55 MsgBox “Necesita seleccionar una tabla de datos.”, vbCritical + vbOKOnly
56 End Sub

 

Como ya has visto, con este código podemos realizar fácilmente una nube de palabras con Excel sin necesidad de otras herramientas online. Si dispones del programa Excel podrás realizar cualquiera de estas representaciones con tu ordenador y sin conexión a Internet. Así que incluye este código en tu Excel y ¡empieza a crear tus nubes de palabras!