top of page

Funciones de texto.

Vamos a ver la función Text.Select, la sintaxis de esta función es text, que es el texto con el que vamos a trabajar, y, selectchars, que son los caracteres que queremos que aparezcan dentro del texto seleccionado, ignorando el resto de los caracteres.


Sintaxis

Text.Select(text as nullable text, selectChars as any) as nullable text


Bien, tenemos los siguientes datos en formato de tabla.

ree











Vemos que cada texto contiene letras y números, con una celda dentro del modelo, vamos a la pestaña datos, dentro del grupo obtener y transformar, hacemos clic en de una tabla o rango, para llevarnos el modelo a Power Query.

ree




ree







Vamos a agregar una columna personalizada, para ello, vamos a la pestaña de agregar columna, y, hacemos clic en columna personalizada.

ree






Como nombre le voy a poner, pruebas.

ree







Por ejemplo, quiero que aparezcan los textos que contengan la letra “a”, para ello, en la ventana formula de columna personalizada, ponemos la función Text.Select, abrimos un paréntesis, seleccionamos la columna texto dentro de columnas disponibles, es el argumento text, coma, ahora viene el argumento selectcharts, pues, entre comillas dobles, ponemos la letra “a”, cerramos paréntesis.

ree














Podemos ver en la parte inferior, que no se han detectado errores.

ree




Aceptamos.


Vemos en la columna agregada, que solo aparecen las filas que contienen la letra “a”, el resto de los caracteres han sido ignorados.


La letra “a”, solo la contiene la primera fila.

ree






Si quiero ver las cadenas que contienen la letra “a”, o, “b”, vamos a pasos aplicados, en el paso personalizada agregada, hacemos clic en la rueda dentada.

ree






Se abre la ventana de columna personalizada, vamos a la función, y, entre llaves, ponemos la letra “a”, y, la letra “b”, entre comillas dobles.

ree












Aceptamos, y, vemos las cadenas que contienen la letra “a”, y, “b”, siendo ignorado el resto de los caracteres.

ree






Pero, ahora quiero extraer los caracteres desde la letra “a” a la letra “z”, volvemos a la ventana de columna personalizada, en este caso, en vez de coma como separador, debemos de poner un punto, seguido de otro punto (..).

ree












Aceptamos, y, vemos que nos ha extraído los caracteres desde la “a” a la “z”, de todas las filas.


Pero, debemos de fijarnos que no incluye las letras mayúsculas, y quiero tanto las minúsculas, como las mayúsculas, para ello, volvemos a la ventana de columna personalizada, después de la letra “z”, ponemos una coma, entre comillas dobles, ponemos A, ponemos un punto seguido de otro punto, y, entre comillas dobles, ponemos la letra Z.

ree











Aceptamos, y, ahora tenemos las filas que contienen tanto las letras minúsculas como mayúsculas.

ree






Y, si quiero que contenga también el número 1, pues después de la letra Z, volvemos a poner coma, y, ponemos el número 1.

ree












Aceptamos.

ree






Tenemos una función que hace lo contrario, es decir, quita los caracteres que le indiquemos, dejando el resto, esta función se llama Text.Remove, y, tiene la misma sintaxis que Text.Select, pero el argumento selectcharts, se llama removecharts.


Siguiendo con el modelo anterior, quiero dejar solo los números, voy a agregar una columna personalizada, la llamare solo números.


Con la siguiente sintaxis, me va a devolver los caracteres de cada fila, excepto, la letra “a”.

ree












ree






Como queremos solo números, igual que antes ponemos desde la letra “a” hasta la letra “z”.

ree













Vemos que nos devuelve solo los números, excepto, en la ultima fila por que son letras en mayúsculas.

ree






Pues, hacemos lo mismo que antes.

ree













Y ya lo tenemos.

ree






Ponemos ambas columnas en formato de texto.


Tenemos una función llamada Text.Replace, que sustituye un carácter, o, un texto, por otro carácter, o, texto, por ejemplo, tenemos los siguientes datos en Power Query.


El primer argumento es texto (text), que es el texto con el que vamos a trabajar, el siguiente argumento es texto antiguo (old), el que vamos a reemplazar, y, el ultimo argumento es texto nuevo (new), el texto por el que va a ser sustituido.


Sintaxis

Text.Replace(text as nullable text, old as text, new as text) as nullable text


Tenemos el siguiente modelo en Power Query.

ree







Estas cadenas están en formato de texto, queremos sustituir el numero 1 por el numero 6, para ello, agregamos una columna personalizada, como nombre le voy a poner numero 1 por 6, en la ventana de formula de columna personalizada, ponemos la función Text.Replace, abrimos paréntesis, como argumento texto, seleccionamos la columna números, como argumento texto antiguo (old), ponemos uno entre comillas dobles, coma, como argumento texto nuevo (new), ponemos el numero seis entre comillas dobles, cerramos paréntesis, y, aceptamos.

ree













Vemos como el numero 1 ha sido sustituido por el número 6.

ree






Ponemos la columna en formato de texto.


Ahora, tenemos el siguiente modelo.

ree

















Vamos a sustituir la provincia de Sevilla por la palabra Ninguna.


Agregamos una columna personalizada, la voy a llamar ninguna, en la ventana de formula, ponemos la función Text.Repalce, abrimos un paréntesis, como argumento texto (text), seleccionamos la columna de provincias, como argumento texto antiguo (old), entre comillas dobles, ponemos Sevilla, coma, como argumento texto nuevo (new), entre comillas dobles, ponemos Ninguna, cerramos paréntesis, y, aceptamos.

ree













Vemos que donde ponía Sevilla, ahora pone Ninguna.

ree


















Ponemos la columna en formato de texto.


Ahora, tenemos un modelo donde en cada fila, tenemos una provincia, un centro comercial, y, un producto.

ree























Queremos separar estas cadenas en columnas independientes, para ello, tenemos una función llamada Text.Split, cuyo primer argumento es texto, es decir, el texto que vamos a separar, y, el siguiente argumento es delimitador, es decir, cual es el delimitador que separa cada cadena, debe de ir entre comillas dobles.


Nos devolverá una lista.


Text.Split(text as text, separator as text) as list


Agregamos una columna personalizada, la llamare separar texto, y, en la ventana de formula, ponemos la función Text.Split, abrimos un paréntesis, como argumento texto, seleccionamos la columna varios, coma, como argumento delimitador, entre comillas dobles, ponemos la coma, cerramos paréntesis, y, aceptamos.

ree











Aparece una columna con list.

ree







Hacemos clic en el siguiente icono.

ree










Seleccionamos expandir en nuevas filas.

ree








Ya tenemos separadas las cadenas, pero como cada cadena, que contienen tres cadenas (provincia, centro, producto), ahora aparecen tres veces, una vez por cada cadena separada.

ree










La ponemos en formato de texto.


Tenemos otra función que nos devuelve cada letra que esta compuesta una cadena, por ejemplo, tenemos la siguiente cadena.

ree







Esta función se llama Text.ToList, solo tiene un argumento que es la cadena para separar.

Agregamos una columna personalizada, como nombre le pongo extraer, en la ventana de formula, ponemos la función, y, seleccionamos la Columna1.

ree











Aceptamos, aparece una columna con list.


Hacemos clic en el siguiente icono.

ree




Seleccionamos expandir en nuevas filas.

ree





Vemos cada letra de la cadena.

ree
















Ahora, vamos a sustituir la letra M de Mundo por “m”, para ello, agregamos una nueva columna personalizada, como nombre le pongo M por m, y, en la ventana de formula, ponemos la función Text.Replace, abrimos un paréntesis, seleccionamos la columna extraer, coma, ponemos entre comillas dobles “M”, coma, ponemos entre comillas dobles “m”, cerramos paréntesis, y, aceptamos.

ree












Vemos en la nueva columna la letra M de mundo, ahora, en minúscula.

ree


















Ponemos las columnas en formato de texto.


Tenemos otra función que nos quita los espacios en blanco sobrantes del principio, y, del final, esta función se llama Text.Trim, y, tiene un único argumento que es la columna con la que vamos a trabajar.


Tenemos las siguientes cadenas, son los mismos nombres, pero la primera cadena, tiene espacios sobrantes al principio, y, al final, también, tenemos la longitud.

ree




Miguel Angel, tiene una longitud de 12 caracteres, pero la primera cadena al tener espacios en blanco de más tiene una longitud de 16 caracteres.


Agregamos una columna personalizada, le dejo el nombre predeterminado, en la ventana de formula, ponemos la función, abrimos un paréntesis, seleccionamos la columna nombre, cerramos paréntesis, y, aceptamos.

ree













Vemos como ahora las dos cadenas son iguales.

ree





Tenemos la funcion Text.TrimEnd, que quita los espacios en blanco finales, y, Text.TrimStart, que quita los espacios en blanco iniciales.


ree

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page