Separar texto en columnas en Excel con relleno rápido, fórmulas y macros vba

La herramienta de Texto en columnas en Excel es una herramienta muy útil sobretodo cuando obtenemos reportes de algún sistema y estos datos se devuelven en archivos de Texto o en formato CSV y las columnas vienen separadas por comas, puntos y comas o incluso pipes (barra vertical).

En este artículo y video veremos 4 maneras de separar texto en columnas, desde la manera tradicional hasta el uso de macros:

    1. Herramienta de Texto en columnas de la pestaña Datos.
    2. Usando Relleno rápido.
    3. Usando fórmulas y funciones.
    4. Usando macros vba.

Dato de asignaturas separadas por comas.

Figura 1. Dato de asignaturas separadas por comas.

Ver video 4 métodos para separar texto en columnas en Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Opción 1, Texto en columnas

La herramienta Texto en columnas es el método predeterminado en Excel cuando tenemos información delimitada por algún separador. Tomando en cuenta que deseamos separar el texto de la columna B de la Figura 1, haremos lo siguiente:

  • Elegimos la columna que contiene los datos separados por coma.
  • Nos dirigimos a la pestaña Datos > Texto en columnas.
  • Elegimos la opción Delimitados, ya que nuestra información viene delimitada por comas.
  • Presionamos Siguiente.
  • En los separadores elegimos Coma y presionamos Finalizar.

Elegimos el delimitador de nuestros datos y veremos una vista previa.

Figura 2. Elegimos el delimitador de nuestros datos y veremos una vista previa.

Opción 2, Relleno rápido

La herramienta de Relleno rápido o Flash fill es una herramienta muy poderosa que se implementó en Excel 2013, y nos ayudará a rellenar datos cuando se encuentra un patrón. En este caso, nuestro patrón es que por cada texto tenemos una coma. Siguiendo con nuestros datos de la Figura 1 haremos lo siguiente:

  • En la columna B tenemos nuestros datos separados por comas.
  • En la columna C escribiremos el nombre de la primer asignatura.
  • En la columna D escribiremos el nombre de la tercera asignatura.
  • Y así hasta llegar la quinta asignatura que la escribiremos en la columna G.
  • Elegimos las celdas de la columna C, desde la primer celda con texto hasta la última fila con datos de la columna B.
  • Nos dirigimos a la pestaña Datos > Relleno rápido (Ctrl + Mayús + E).
  • Hacemos lo mismo hasta la columna G y veamos cómo se rellenan los datos por cada separación de comas.

Relleno rápido detecta el patrón de separación de texto por comas.

Figura 3. Relleno rápido detecta el patrón de separación de texto por comas.

Opción 3, Fórmulas y funciones

Si bien las dos opciones anteriores son perfectas para separar texto en columnas, son herramientas un tanto manuales y de un solo uso, también veremos una manera donde involucraremos fórmulas y funciones. Al usar fórmulas en esta tarea, podemos tener un archivo plantilla en donde sólo peguemos las celdas que tienen los valores separados por comas y las fórmulas se encargan se separarlos.

Esta opción para separar texto en columnas surgió a raíz de un comentario que se nos hizo en nuestro canal de Youtube:

Comentario en Youtube donde preguntan cómo separar texto en columnas de manera automática.

Figura 4. Comentario en Youtube donde preguntan cómo separar texto en columnas de manera automática.

Lo que entendemos del comentario es que se tienen celdas con 7 palabras separadas por comas, y esas 7 palabras se devuelven con un BUSCARV, es decir, que no podemos usar la opción 1 porque las celdas tienen fórmula y tampoco podemos usar la opción 2 porque se desean que la separación sea automática. Por lo anterior, usaremos fórmulas.

Considerando que nuestros valores comienzan en la celda [B2], en la celda [C2] ingresaremos la siguiente fórmula:

=ESPACIOS(EXTRAE(SUSTITUIR($B2,”,”,REPETIR(” “,LARGO($B2))),1+(COLUMNAS($C2:C2)*LARGO($B2))-LARGO($B2),LARGO($B2)))

Al ingresar la fórmula anterior, sólo resta arrastrarla hacia la derecha y hacia abajo y en cada celda obtendremos cada palabra que esté separada por comas.

Se copia la fórmula hacia la derecha y hacia abajo para obtener los valores separados por comas.

Figura 5. Se copia la fórmula hacia la derecha y hacia abajo para obtener los valores separados por comas.

Opción 4, función UDF con macros vba

Y como en Excel siempre hay varias maneras de llegar a un objetivo, no podía faltar una solución basada en macros. Esta vez haremos uso de una función personalizada o UDF que hará la misma función de separar texto en columnas como lo vimos usando fórmulas.

Nuestro archivo debe estar guardado en formato .XLSM, es decir, habilitado para macros. En un Módulo normal ingresamos la siguiente macro:

Public Function SepararEnColumnas(Rango As Range, intPosicion As Integer, strSeparador As String)
Dim vSeparar As Variant

    Application.Volatile
    vSeparar = Split(Rango.Value, strSeparador)
    SepararEnColumnas = Trim(vSeparar(intPosicion - 1))

End Function

La función UDF se llamará SepararEnColumnas y recibirá como parámetros:

  • La celda que contiene los valores separados por coma.
  • El número de palabra que se desea devolver, la primera, segunda, tercera, etc.
  • El delimitador que separa las palabras, en este caso la coma.

=SepararEnColumnas(Celda, Posición, Separador)

. A esta UDF le asignaremos la celda con los valores, el número de palabra a devolver y el separador.

Figura 6. A esta UDF le asignaremos la celda con los valores, el número de palabra a devolver y el separador.

Descarga el archivo de ejemplo

Descargar el ejemplo Separar texto en columnas 4 métodos – EXCELeINFO.rar

You may also like...