Al trabajar con datos que no dependen de un diseño original nuestro, muchas veces nos encontramos con que las columnas no están divididas como a nosotros nos gustaría, o nos piden generar una base de datos con datos en varias columnas que sí tenemos pero están mezclados en una sola columna. Pues bien, aprendamos algunos métodos sencillos para dividir una columna de texto en varias columnas para manipularlas con mayor precisión.
Dividir texto en columnas
Vamos a usar primero el método más directo y sencillo. Supongamos que tenemos una columna con ubicaciones geográficas en un formato de latitud y longitud:
Nosotros queremos manipular y exportar la latitud y la longitud como datos separados. Para dividir el texto en dos columnas diferentes, seleccionamos nuestros datos, y después vamos al menú Datos – Dividir texto en columnas
Esto automáticamente dividirá esta columna en dos diferentes, con los datos separados. Fíjate cómo también nos pregunta por el separador que debe tomar en cuenta para separar cada fila. Por defecto, se intenta detectar automáticamente, y en este caso así lo hizo correctamente eligiendo la coma, pero podrías querer que el separador fuera otro caracter, como por ejemplo un espacio o un punto. Toma en cuenta también, que el separador NO será parte de los datos nuevos. Esto casi siempre es deseable, pero es importante saber que así sucede.
Otra cosa a tomar en cuenta es que la columna en la que estabas trabajando, se reemplazará por los datos nuevos, es decir, no te creará automáticamente dos columnas nuevas a un lado, si eso es lo que querías. Podríamos decir que este método se consideraría destructivo, porque de alguna manera pierdes o transformas los datos originales.
Dividir texto en columnas con fórmulas
Ahora veamos un método no destructivo, en el que mantienes los datos originales intactos, ya que los datos nuevos se generarán de forma dinámica. En este respecto, hay muchas maneras y fórmulas de lograr el mismo resultado. Dependiendo de tu necesidad, de tus datos y un poco de creatividad es que lograrás descubrir qué método es el mejor para ti.
Si partimos del mismo ejemplo, preparemos la hoja de cálculo para recibir las nuevas columnas, nombrándolas tal cual como Latitud y Longitud:
Para dividir el texto en dos columnas con una fórmula, vamos a usar SPLIT
, indicando el texto que debe dividir y el caracter delimitador o separador:
=SPLIT( texto, delimitador )
Entonces nuestra fórmula queda para el primer renglón:
=SPLIT( A2, ",")
Esto nos generará automáticamente los dos datos en un arreglo de dos dimensiones, que es lo mismo decir que nos generará dos columnas. Si copiamos la fórmula hacia abajo, tendremos nuestra columna dividida de forma dinámica:
Esto es importante saberlo porque significa que el resultado siempre debe tener espacio hacia la derecha para darte el resultado, o te encontrarás con un error: “La matriz de resultados no se ha extendido porque se sobreescribirán los datos”
Dividir texto en columnas usando expresiones regulares (regex)
Como bonus, te voy a dejar una última forma de lograr el mismo resultado, pero usando expresiones regulares. Esto te da mucho más control y es un método mucho más poderoso porque no se limita a un solo caracter y se pueden tomar cuenta muchas condiciones, pero debes estudiar un poco más sobre cómo manipular las expresiones regulares para poder lograr lo que buscas.
Si usamos la fórmula REGEXTRACT
y la siguiente expresión regular, podremos dividir el texto de latitud y longitud, además de verificar si los datos vienen en el formato correcto y exacto que necesitamos:
=REGEXEXTRACT(A2,"(-?\d+(?:.\d+)?)\,\s*(-?\d+(?:.\d+)?)")
Explicación de la expresión regular:
(
y)
comienza y termina un grupo, que en este caso nos generará una columna por cada grupo(?:
y)?
comienza y termina un grupo opcional que queremos empatar porque podría ser que el número viniera sin decimales pero que NO queremos capturar, para que no nos genere una columna innecesaria\-
es el caracter del signo-
y agregamos?
para indicar que queremos empatar cero o uno de este caracter, porque puede que el número venga en positivo o en negativo\d
es un caracter de número entero de 0 a 9 y con+
indicamos que queremos uno o más\.
es el caracter de punto, sin modificador, porque siempre esperamos que esté ahí\,
es el caracter de coma\s
es el caracter de espacio, que puede ser que haya cero o más, entonces le ponemos un*
- Repetimos el grupo (porque son dos los datos que esperamos) en
(
y)
Puedes probar esta expresión regular aquí para ajustarla a tus necesidades.
Guía en video
Si tienes dudas puedes ver esta misma guía explicada en video:
¡Espero que te haya sido útil esta guía! No olvides seguirnos en YouTube para más tips, trucos y guías de productividad.
Alekz es un apasionado de la tecnología y los videojuegos. Además de ser locutor comercial, disfruta de la expresión artística más sastisfactoria y técnica que existe: programar (y pintar algo de pixel art). Fundó Tesel para ayudar a empoderar a las empresas a desarrollar su máximo potencial mediante la tecnología. Es un absoluto nerd de Star Trek.
Alekz es un apasionado de la tecnología y los videojuegos. Además de ser locutor comercial, disfruta de la expresión artística más sastisfactoria y técnica que existe: programar (y pintar algo de pixel art). Fundó Tesel para ayudar a empoderar a las empresas a desarrollar su máximo potencial mediante la tecnología. Es un absoluto nerd de Star Trek.