1

Tutorial: Cómo Simplificar el Formato de Nombres en Excel con VBA (Limpieza de datos)


La funcionalidad de Excel para reemplazar es una herramienta útil para limpiar y modificar datos. Sin embargo, cuando tienes un gran conjunto de datos que requiere cambios en más de 2900 celdas como fue mi caso, resulta algo bastante inviable. En este tutorial hecho en base a mi problema, intentaré decirte cómo utilizar VBA (Visual Basic for Applications) para simplificar el formato de texto en Excel. En este caso utilizaremos dos funciones VBA para lograrlo: una para simplificar los nombres de la columna “eneagram” y otra para las alas de los eneatipos “wings”.

Antes del Proceso

Antes del Proceso

Paso 1: Abrir Excel y Acceder al Editor de Visual Basic

  1. Abre tu archivo de Excel en el que deseas simplificar los nombres.
  2. Presiona Alt + F11 para acceder al Editor de Visual Basic.
  3. Insertar - Módulo
Abrir Editor de Visual Basic

Paso 2: Crear la Función para Simplificar los Nombres de Eneatipos

Esta función VBA se crea para simplificar los nombres de los eneatipos en la columna E de tu hoja de cálculo. Los nombres de los eneatipos originales tienen un formato más largo, y esta función los reemplazará con una versión más corta y simplificada.

Sub SimplificarEneagrama()
    Dim celda AsRangeForEach celda InRange("E2:E" & Cells(Rows.Count, 5).End(xlUp).Row)
        celda.Value = Replace(celda.Value, "Type 1 (the Reformer or Perfectionist)", "Type 1 - Reformer")
        ' Repite el mismo patrón para las demás categorías
    Next celda
EndSub

En este paso, crearás una función VBA que simplificará los nombres de los eneatipos en la columna “eneagram” de tu hoja de cálculo. La función reemplazará los nombres originales por versiones más cortas y simplificadas.

Sub SimplificarEneagrama()

  • Sub SimplificarEneagrama(): Esto define una nueva subrutina en VBA llamada “SimplificarEneagrama”. Es una subrutina porque no devuelve un valor, sino que realiza una serie de acciones en el archivo de Excel.
Dim celda As Range
  • Dim celda As Range: En esta línea, declaras una variable llamada “celda” como un objeto Range. Esta variable se utilizará para iterar a través de cada celda en la columna E de tu hoja de cálculo.
For Each celda InRange("E2:E" & Cells(Rows.Count, 5).End(xlUp).Row)

  • For Each celda In Range(“E2:E” & Cells(Rows.Count, 5).End(xlUp).Row): Aquí, inicias un bucle que recorrerá todas las celdas en la columna E, desde la fila 2 hasta la última fila con datos en esa columna. Range(“E2:E” & Cells(Rows.Count, 5).End(xlUp).Row) define el rango a recorrer.
celda.Value = Replace(celda.Value, "Type 1 (the Reformer or Perfectionist)", "Type 1 - Reformer")

  • celda.Value = Replace(celda.Value, “Type 1 (the Reformer or Perfectionist)”, “Type 1 - Reformer”): En esta línea de código, tomas el valor de la celda actual (un nombre de eneatipo original) y lo reemplazas por el nombre simplificado utilizando la función Replace. En este caso, se reemplaza “Type 1 (the Reformer or Perfectionist)” por “Type 1 - Reformer”. Esta línea de código se repite para cada uno de los nueve eneatipos.
Next celda

  • Next celda: Esto marca el final del bucle y se repite para cada celda en la columna E.

Paso 3: Crear la Función para Simplificar los Nombres de Alas de Eneatipos

En este paso, crearemos una función VBA que simplificará los nombres de las alas de los eneatipos en la columna F de tu hoja de cálculo.

Sub SimplificarAlasEneagrama()
    Dim celda AsRangeForEach celda InRange("F2:F" & Cells(Rows.Count, 6).End(xlUp).Row)
        celda.Value = Replace(celda.Value, "1w2 (the Advocate)", "1w2 - the Advocate") 
        ' Repite este patrón para las otras alas
    Next celda
EndSub

En este paso, crearás una función VBA para simplificar los nombres de las alas de los eneatipos en la columna F de tu hoja de cálculo.

Sub SimplificarAlasEneagrama()

  • Sub SimplificarAlasEneagrama(): Esta subrutina crea una función llamada “SimplificarAlasEneagrama”. Al igual que en la función anterior, es una subrutina porque no devuelve un valor, sino que realiza acciones en el archivo de Excel.
Dim celda As Range
  • Dim celda As Range: Nuevamente, declaras una variable llamada “celda” como un objeto Range que se utilizará para iterar a través de las celdas en la columna F.
For Each celda InRange("F2:F" & Cells(Rows.Count, 6).End(xlUp).Row)

  • For Each celda In Range(“F2:F” & Cells(Rows.Count, 6).End(xlUp).Row): Inicias un bucle que recorre todas las celdas en la columna F, desde la fila 2 hasta la última fila con datos en esa columna.
celda.Value = Replace(celda.Value, "1w2 (the Advocate)", "1w2 - the Advocate")

  • celda.Value = Replace(celda.Value, “1w2 (the Advocate)”, “1w2 - the Advocate”): En esta línea, tomas el valor de la celda actual (un nombre de ala original) y lo reemplazas por el nombre simplificado utilizando la función Replace. Se repite esta línea para cada una de las 18 alas.
Next celda

  • Next celda: Marca el final del bucle y se repite para cada celda en la columna F.

Paso 4: Ejecutar las Funciones en tu Hoja de Cálculo

Regresa a tu hoja de cálculo de Excel y ejecuta cada función (Alt + F8). Selecciona la función que deseas ejecutar en el Editor de Visual Basic y presiona F5 para ejecutarla. Luego, selecciona la otra función y ejecútala de la misma manera.

Paso 5: Ver los Resultados

Después de ejecutar ambas funciones, los nombres de los eneatipos y las alas se simplificarán según el formato que especificaste.

Después del Proceso

Después del Proceso

¡Eso es todo! Así utilizamos VBA en Excel para simplificar nombres y textos, lo que puede ahorrarte tiempo cuando trabajas con grandes conjuntos de datos.


Escribe tu comentario
+ 2