Creo que fue en la versión de agosto de 2022 se liberó la función DIVIDIRTEXTO que permite separar un texto que tenemos en una sola celda en diferentes filas y/o columnas. En algunos casos puede ser una alternativa a la funcionalidad Texto en columnas pero no tiene la misma potencia.
Imaginemos una celda que contenga estos datos:
Nombre;Apellido1;Apellido2;Poblacion,Xavi;Lloberas;Dalmases;Terrassa,Pedro;Perez;Garcia;Barcelona,Juan;Palomo;Mensajero;Madrid
Observamos que esos datos contienen 4 campos (Nombre, Apellido1, Apellido2 y Población) separados por el caracter ; y aparecen una cabecera + 3 registros.
El objetivo es colocar cada uno de esos valores en el lugar adecuado de una matriz. Para ello utilizaremos la función DIVIDIRTEXTO que permite indicar un texto, que carácter delimita las columnas, que carácter delimita las filas así como el tipo de coincidencia, cómo manejar los elementos vacíos y que responder cuando hay elementos vacíos.
Para esos datos iniciales, el objetivo es obtener esta colección de datos:
Para conseguirlo, vamos a utilizar la función DIVIDIRTEXTO utilizando la referencia de la celda que contiene toda la cadena, el delimitador de columnas (;) y el delimitador de filas (,)
En una segunda versión, nuestro texto a dividir contiene huecos:
Nombre;Apellido1;Apellido2;Poblacion,Xavi;Lloberas;;Terrassa,Pedro;Perez;Garcia;Barcelona,Juan;;Mensajero;Madrid
Observamos que falta el segundo apellido del primer registro y el primer apellido del último registro. Para conseguir que se muestren esos huecos debemos manejar el argumento ignore_empty que le permite ignorar cadenas vacías. Tanto si ese argumento lo ponemos como FALSO como si lo dejamos en blanco (que se asumen FALSO), el sistema dejará los huecos ahí dónde no hay datos.
Si hubiéramos pasado el valor VERDADERO a ese argumento, para los huecos habría aparecido el error #N/D.
Si quisiéramos mostrar un valor alternativo cuando se produce ese error, deberíamos manejar el último argumento (pad_with) para escribir aquella cadena que deseamos devolver.
El carácter delimitador de filas y/o columnas puede ser un texto por lo que el argumento match_mode nos ayudará a la hora de determinar el tipo de coincidencia.
También existe la posibilidad de utilizar una lista de constantes como delimitadores de columnas. Imaginemos esta cadena:
NombreXaviApellido1LloberasApellido2Dalmases;NombrePedroApellido1PerezApellido2Garcia
Podemos generar una función DIVIDIRTEXTO pasando una lista para el salto de columnas:
Por algún motivo que no alcanzo a explicarme, deja una columna vacía. Podríamos tratar eso con una función EXCLUIR… que veremos en otro post.
Deja un comentario si te gustó
0 comentarios