Funciones de texto: comparación de Excel y Power Query
Para muchos usuarios de Excel, la transición a Power Query puede resultar difícil. Después de haber pasado años trabajando con las funciones de Excel, pasar a Power Query parece un entorno extraño.
La buena noticia es que muchas de las funciones de texto de Excel tienen funciones equivalentes en Power Query.
El propósito de esta publicación es proporcionar una referencia para buscar y aplicar las funciones de texto de Power Query equivalentes. No es una lista exhaustiva, pero incluye las funciones que probablemente utilizará un usuario.
Tabla de contenido
- Usar funciones de texto de Power Query
- Interfaz de usuario
- Columna personalizada
- Barra de formulas
- editor avanzado
- Columna por ejemplos
- Funciones
- CHAR / UNICHAR
- LIMPIO
- CÓDIGO / UNICODE
- CONCAT / CONCATENAR
- ENCONTRAR
- IZQUIERDA
- LEN
- MÁS BAJO
- MEDIO
- ADECUADO
- REEMPLAZAR
- REPETIR
- BIEN
- BUSCAR
- SUSTITUTO
- TEXTO
- TEXTO DESPUÉS
- TEXTO ANTES
- UNIR TEXTO
- RECORTAR
- SUPERIOR
- Conclusión
Descargue la tabla comparativa: haga clic en el botón a continuación para unirse al programa Insiders y obtener acceso a la tabla comparativa de referencia rápida creada para esta publicación.
Nombre del archivo: 0183 Comparación de funciones de Excel v Power Query.pdf
Tener acceso
Usar funciones de texto de Power Query
Las funciones de texto de Power Query se pueden usar en varios lugares; entonces, comencemos nuestra exploración aquí.
Interfaz de usuario
Muchas funciones de texto, pero no todas, están disponibles como transformaciones individuales dentro de la interfaz de usuario. Podemos encontrarlos en las secciones Agregar columna desde texto y Transformar columnas de texto de la cinta.
Agregar columna desde texto
Transformar columnas de texto
Las opciones en la interfaz de usuario son transformaciones individuales.
Para transformaciones más avanzadas que combinen funciones, podemos usar una columna personalizada, la barra de fórmulas o el editor avanzado.
Columna personalizada
Una columna personalizada nos permite agregar un cálculo para cada fila de la tabla.
En la cinta, haga clic en Agregar columna Columna personalizada para mostrar el cuadro de diálogo Columna personalizada .
El ejemplo anterior demuestra la función Text.Start (equivalente a la función IZQUIERDA de Excel) para extraer los primeros caracteres de un valor de texto.
Después de hacer clic en Aceptar , esto crea un valor para cada fila de la tabla.
Barra de formulas
La barra de fórmulas muestra el código M para cada paso de transformación. Para aplicar habilidades más avanzadas, usamos la barra de fórmulas para escribir fórmulas desde cero o editar fórmulas existentes.
El ejemplo anterior muestra la fórmula generada para la columna personalizada creada anteriormente.
editor avanzado
El editor avanzado muestra el código M para una consulta completa; esto incluye cada fórmula para cada transformación.
Para abrir el editor avanzado, haga clic en Ver editor avanzado .
La captura de pantalla anterior muestra el código de toda la consulta. El código resaltado es la función Text.Start utilizada en la sección de columna personalizada.
Columna por ejemplos
El último lugar donde podemos ver las funciones de texto de Power Query es usando Agregar columna de ejemplos .
Si bien no escribimos las fórmulas nosotros mismos, Power Query identifica patrones y proporciona una fórmula que logra el resultado requerido.
Como se muestra en la captura de pantalla, Power Query determinó que Text.Start es la fórmula para lograr el resultado que se muestra en la columna Primeros caracteres.
Con este método, es posible que no escribamos la fórmula nosotros mismos, pero comprender la estructura ayuda a garantizar que la sugerencia de Power Query sea correcta.
Funciones
Ahora es el momento de mirar las funciones. Se presentan a continuación en orden alfabético por nombre de función de Excel.
NOTA
Si bien muchas funciones de Excel y Power Query son equivalentes, es posible tener argumentos opcionales adicionales, que brindan más flexibilidad. Estos no se tratan en su totalidad en esta publicación.
CHAR / UNICHAR
Sobresalir | Consulta de energía | |
Nombre: | CHAR / UNICHAR | Carácter.DeNúmero |
Descripción: | Devuelve el carácter especificado por el número de código. | Convierte un número en un carácter de texto. |
Sintaxis: | CHAR(número) UNICHAR(texto) |
Carácter.DeNúmero(número) |
Ejemplo: | =CARACTER(65) | =Carácter.DeNúmero(65) |
Resultado: | "A" | "A" |
- CHAR incluye números de caracteres del 1 al 255; cualquier código de caracteres mayor que 255 requiere la función UNICHAR.
LIMPIO
Sobresalir | Consulta de energía | |
Nombre: | LIMPIO | Texto.limpio |
Descripción: | Devuelve un valor de texto con todos los caracteres de control eliminados. | Elimina todos los caracteres no imprimibles del texto. |
Sintaxis: | LIMPIAR(texto) | Texto.Clean(texto) |
Ejemplo: | =LIMPIAR(“ Texto de ejemplo”) |
=Texto.Clean(“ Texto de ejemplo”) |
Resultado: | “Texto de ejemplo” | “Texto de ejemplo” |
CÓDIGO / UNICODE
Sobresalir | Consulta de energía | |
Nombre: | CÓDIGO / UNICODE | Carácter.ParaNúmero |
Descripción: | Devuelve un código numérico para el primer carácter de una cadena de texto. | Convierte un carácter en un valor numérico. |
Sintaxis: | CÓDIGO(texto) UNICODE(texto) |
Carácter.ToNumber(texto) |
Ejemplo: | =CÓDIGO(“A”) | =Carácter.ParaNúmero(“A”) |
Resultado: | sesenta y cinco | sesenta y cinco |
- CÓDIGO incluye los caracteres ASCII estándar del número 1 al 255; cualquier código de carácter mayor que 255 requiere la función UNICODE.
CONCAT / CONCATENAR
Sobresalir | Consulta de energía | |
Nombre: | CONCAT | Combinar texto |
Descripción: | Combina texto de múltiples rangos y/o cadenas. | Devuelve un valor de texto que es el resultado de unir todos los valores de texto. |
Sintaxis: | CONCAT(texto1, [texto2],…) CONCATENAR(texto1, [texto2],…) |
Text.Combine(textos, [separador]) |
Ejemplo: | =CONCAT(“Ejemplo”, ” “, “texto”) | =Text.Combine({“Ejemplo”, ” “, “texto”}) |
Resultado: | “Texto de ejemplo” | “Texto de ejemplo” |
- Si se requiere un separador entre cada palabra, mire la función TEXTJOIN .
- ElEl carácter es una alternativa al uso de una función. combina cadenas de texto tanto en Excel como en Power Query.
- CONCAT (introducido en Excel 2019) es un reemplazo más flexible de la función CONCATENAR. CONCATENATE todavía existe por compatibilidad con versiones anteriores.
ENCONTRAR
Sobresalir | Consulta de energía | |
Nombre: | ENCONTRAR | Texto.PosiciónDe |
Descripción: | Encuentra la posición inicial de un valor de texto dentro de otro (distingue entre mayúsculas y minúsculas) | Devuelve la aparición de una subcadena en una cadena y devuelve su posición. |
Sintaxis: | ENCONTRAR(buscar_texto, dentro_texto, [núm_inicio]) | Text.PositionOf(texto, subcadena, [ocurrencia], [comparador]) |
Ejemplo: | =ENCONTRAR(“mp”, “ Texto de ejemplo”) |
=Texto.PositionOf(“Texto de ejemplo”, “mp”) |
Resultado: | 4 | 3 |
- ENCONTRAR no distingue entre mayúsculas y minúsculas. Para obtener una versión que no distinga entre mayúsculas y minúsculas, consulte la función BÚSQUEDA .
- Power Query devuelve la posición de base cero; por lo tanto, los resultados entre Excel y Power Query parecen diferentes.
- El argumento [ocurrencia] de Power Query tiene base cero. Entonces, para encontrar la segunda instancia, la [ocurrencia] será 1.
- Power Query tiene una función adicional, Text.PositionOfAny , que permite utilizar una lista de caracteres como base de la búsqueda.
IZQUIERDA
Sobresalir | Consulta de energía | |
Nombre: | IZQUIERDA | Texto.Inicio |
Descripción: | Devuelve los caracteres más a la izquierda de un valor de texto. | Devuelve el recuento de caracteres desde el inicio de un valor de texto. |
Sintaxis: | IZQUIERDA(texto, [núm_caracteres]) | Texto.Inicio(texto, recuento) |
Ejemplo: | =IZQUIERDA(“Texto de ejemplo”, 7) | =Texto.Inicio(“Texto de ejemplo”, 7) |
Resultado: | "Ejemplo" | "Ejemplo" |
Notas:
- El argumento [num_chars] es opcional. Si se excluye, solo se devuelve 1 carácter.
- Power Query también tiene la función Text.StartsWith , que devuelve Verdadero/Falso cuando el texto comienza con una cadena especificada.
Sintaxis: Text.StartsWith(texto,subcadena,[comparador])
Ejemplo: Text.StartsWith(“Texto de ejemplo”,”Ejemplo”)
Resultado: Verdadero
LEN
Sobresalir | Consulta de energía | |
Nombre: | LEN | Texto.Longitud |
Descripción: | Devuelve el número de caracteres de una cadena de texto. | Devuelve el número de caracteres de un valor de texto. |
Sintaxis: | LEN(texto) | Texto.Longitud(texto) |
Ejemplo: | =LEN(“Texto de ejemplo”) | =Texto.Longitud(“Texto de ejemplo”) |
Resultado: | 12 | 12 |
MÁS BAJO
Sobresalir | Consulta de energía | |
Nombre: | MÁS BAJO | Texto.Inferior |
Descripción: | Convierte texto a minúsculas. | Devuelve las minúsculas de un valor de texto. |
Sintaxis: | INFERIOR(texto) | Texto.Inferior(texto, [cultura]) |
Ejemplo: | =BAJO(“Texto de ejemplo”) | =Texto.Inferior(“Texto de ejemplo”) |
Resultado: | “texto de ejemplo” | “texto de ejemplo” |
Notas:
- El argumento opcional [cultura] dentro de Text.Lower no se trata en esta publicación.
MEDIO
Sobresalir | Consulta de energía | |
Nombre: | MEDIO | Texto.Medio |
Descripción: | Devuelve un número específico de caracteres de una cadena de texto que comienza en una posición especificada. | Devuelve una subcadena hasta una longitud específica. |
Sintaxis: | MID(texto, núm_inicio, núm_caracteres) | Text.Middle(texto, inicio, recuento) |
Ejemplo: | =MEDIO(“Texto de ejemplo”, 4, 2) | =Texto.Middle(“Texto de ejemplo”, 3, 2) |
Resultado: | “mp” | “mp” |
Nota:
- El argumento inicial de Text.Middle tiene base cero. Por lo tanto, 0 para el argumento de inicio en Text.Middle es equivalente a 1 para el argumento start_num en MID.
- En Power Query, Text.Range es una alternativa a Text.Middle. La diferencia es que Text.Range devuelve un error cuando no hay caracteres suficientes para devolver un valor.
- Si solo necesitamos un carácter, una alternativa de Power Query es Text.At:
Sintaxis: Text.At(text,index)
ADECUADO
Sobresalir | Consulta de energía | |
Nombre: | ADECUADO | Texto.adecuado |
Descripción: | Pone en mayúscula la primera letra de cada palabra de un valor de texto. | Pone en mayúscula la primera letra de cada palabra de un valor de texto. |
Sintaxis: | APROPIADO(texto) | Texto.Proper(texto, [cultura]) |
Ejemplo: | =PROPER(“Texto de ejemplo”) | =Texto.Proper(“Texto de ejemplo”) |
Resultado: | “Texto de ejemplo” | “Texto de ejemplo” |
Notas:
- El argumento opcional [cultura] dentro de Text.Proper no se trata en esta publicación.
REEMPLAZAR
Sobresalir | Consulta de energía | |
Nombre: | REEMPLAZAR | Texto.Reemplazar |
Descripción: | Reemplaza caracteres dentro del texto. | Reemplaza los caracteres de longitud en un valor de texto comenzando en un desplazamiento de base cero con el nuevo valor de texto. |
Sintaxis: | REEMPLAZAR (texto_antiguo, núm_inicio, núm_caracteres, texto_nuevo) | Text.ReplaceRange(texto, desplazamiento, recuento, nuevoTexto) |
Ejemplo: | =REPLACE(“Texto de ejemplo”, 5, 3, “inación”) | =Text.ReplaceRange(“Texto de ejemplo”, 4, 3, “inación”) |
Resultado: | “Texto de examen” | “Texto de examen” |
Notas:
- El argumento de compensación en Text.Replace de Power Query tiene base cero.
- Para eliminar texto, en lugar de reemplazarlo, también podemos usar Text.RemoveRange en Power Query.
Sintaxis: Text.RemoveRange(texto, desplazamiento, recuento)
REPETIR
Sobresalir | Consulta de energía | |
Nombre: | REPETIR | Texto.Repetir |
Descripción: | Repite el texto un número determinado de veces. | Devuelve un valor de texto compuesto por el valor de texto de entrada repetido varias veces. |
Sintaxis: | REPT(texto, número_veces) | Texto.Repetir(texto, contar) |
Ejemplo: | =REPETIR(“Ejemplo”, 3) | =Texto.Repetir(“Ejemplo”, 3) |
Resultado: | “EjemploEjemploEjemplo” | “EjemploEjemploEjemplo” |
BIEN
Sobresalir | Consulta de energía | |
Nombre: | BIEN | Texto.Fin |
Descripción: | Devuelve los caracteres situados más a la derecha de un valor de texto. | Devuelve el recuento de caracteres desde el final de un valor de texto. |
Sintaxis: | DERECHA(texto, [núm_caracteres]) | Texto.End(texto, recuento) |
Ejemplo: | =DERECHA(“Texto de ejemplo”, 4) | =Texto.End(“Texto de ejemplo”, 4) |
Resultado: | "texto" | "texto" |
Notas:
- El argumento [num_chars] es opcional. Si se excluye, solo se devuelve 1 carácter.
- Power Query también tiene la función Text.EndsWith , que devuelve Verdadero/Falso cuando el texto termina con una cadena especificada.
Sintaxis: Text.EndsWith(texto,subcadena,[comparador])
Ejemplo: Text.EndsWith(“Texto de ejemplo”,”Texto”)
Resultado: Verdadero
BUSCAR
Sobresalir | Consulta de energía | |
Nombre: | BUSCAR | Texto.PosiciónDe |
Descripción: | Encuentra la posición inicial de un valor de texto dentro de otro (no distingue entre mayúsculas y minúsculas) | Devuelve la aparición de una subcadena en una cadena y devuelve su posición. |
Sintaxis: | BÚSQUEDA(buscar_texto, dentro_texto, [núm_inicial]) | Text.PositionOf(texto, subcadena, [ocurrencia], [comparador]) |
Ejemplo: | =BUSCAR(“mp”, “ Texto de ejemplo”) |
=Texto.PositionOf(“Texto de ejemplo”, “mp”, 0, Comparer.OrdinalIgnoreCase) |
Resultado: | 4 | 3 |
- BÚSQUEDA no distingue entre mayúsculas y minúsculas. Para una versión que distingue entre mayúsculas y minúsculas, consulte la función ENCONTRAR .
- Mire la función ENCONTRAR para obtener notas de uso adicionales.
SUSTITUTO
Sobresalir | Consulta de energía | |
Nombre: | SUSTITUTO | Texto.Reemplazar |
Descripción: | Sustituye texto nuevo por texto antiguo en una cadena de texto. | Reemplaza todas las apariciones de una subcadena con un nuevo valor de texto. |
Sintaxis: | SUSTITUIR(texto, texto_antiguo, texto_nuevo, [núm_instancia]) | Texto.Reemplazar(texto, antiguo, nuevo) |
Ejemplo: | =SUSTITUIR(“Texto de ejemplo”, “Ejemplo”, “Nuevo”) | =Texto.Reemplazar(“Texto de ejemplo”, “Ejemplo”, “Nuevo”) |
Resultado: | "Nuevo texto" | "Nuevo texto" |
Notas:
- SUSTITUIR tiene un argumento opcional [núm_instancia] que no está disponible en Power Query.
TEXTO
Sobresalir | Consulta de energía | |
Nombre: | TEXTO | |
Descripción: | Formatea un número y lo convierte en texto. | |
Sintaxis: | =TEXTO(valor, formato_texto) | |
Ejemplo: | =TEXTO(50, “0000”) | |
Resultado: | 0050 |
Notas:
- No existe un equivalente directo a la función TEXTO en Power Query. Sin embargo, combinar muchas funciones de texto juntas puede crear un efecto similar. Mire las siguientes funciones para ver las opciones:
- Text.From : devuelve la representación de texto de un número, fecha, hora, fechahora, fechahorazona, valor lógico, de duración o binario.
- Text.Format : devuelve texto formateado que se crea aplicando argumentos de una lista o registro a una cadena de formato.
- Text.PadStart – Returns a text value padded at the beginning to make it at least a specified length of characters.
- Text.PadEnd – Returns a text value padded at the end to make it at least a specified length of characters.
TEXTAFTER
Excel | Power Query | |
Name: | TEXTAFTER | Text.AfterDelimiter |
Description: | Returns text that occurs after given character or string | Returns the portion of text after the specified delimiter. |
Syntax: | TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found]) | Text.AfterDelimiter(text, delimiter, [index]) |
Example: | =TEXTAFTER(“Example text”,” “) | =Text.AfterDelimiter(“Example text”, ” “) |
Result: | “text” | “text” |
Notes:
- Power Query uses a zero-base. Therefore, [index] of 0 is equivalent to [instance_num] of 1.
- Both functions provide optional arguments to start at the end of the string.
- [match_mode] determines whether the delimiter search is case sensitive. (0 = Case sensitive, 1 = Case insensitive). Power Query is case sensitive.
- [match_end] treats the end of the text as a delimiter. Power Query does not have an equivalent argument.
- [if_not_found] is the value to return if no matching delimiter is found. Power Query does not have an equivalent argument.
- Power Query has the Text.BetweenDelimiters function to provide the text between two delimiters. In Excel, this can be created through a combination of TEXTAFTER and TEXTBEFORE.
TEXTBEFORE
Excel | Power Query | |
Name: | TEXTBEFORE | Text.BeforeDelimiter |
Description: | Returns text that occurs before given character or string | Returns the portion of text before the specified delimiter. |
Syntax: | TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found]) | Text.BeforeDelimiter(text, delimiter [index]) |
Example: | =TEXTBEFORE(“Example text”,” “) | =Text.BeforeDelimiter(“Example text”, ” “) |
Result: | “Example” | “Example” |
Notes:
- See TEXTAFTER for similar examples and usage notes.
TEXTJOIN
Excel | Power Query | |
Name: | TEXTJOIN | Text.Combine |
Description: | Combines the text from multiple ranges and/or strings. | Returns a text value that is the result of joining all text values with each value separated by a separator. |
Syntax: | TEXTJOIN(delimiter, ignore_empty, text1, [text2]…) | Text.Combine(texts, [separator]) |
Example: | =TEXTJOIN(“,”, FALSE, “Example”, “text”) | =Text.Combine({“Example”, “text”}, “,”) |
Result: | “Example,text” | “Example,text” |
- The CONCAT function combines text without using a separator.
TRIM
Excel | Power Query | |
Name: | TRIM | Text.Trim |
Description: | Removes spaces from text. | Returns the result of removing all leading and trailing whitespace from text value. |
Syntax: | TRIM(text) | Text.Trim(text, [trim]) |
Example: | =TRIM(” Example text “) | =Text.Trim(” Example text “) |
Result: | “Example Text” | “Example text” |
- The Power Query version of Trim does not remove white space from the middle of text values. Check out this post to replicate Excel’s TRIM function in Power Query.
- Text.Trim incluye un argumento [trim] opcional para permitir el recorte de otros caracteres.
Por ejemplo, para recortar guiones utilice “-” como argumento [recortar].
Ejemplo: Text.Trim( “—Texto de ejemplo—“, “-” )
Resultado: “Texto de ejemplo” - Power Query tiene funciones de recorte adicionales:
- Text.TrimEnd : devuelve el resultado de eliminar todos los espacios en blanco finales del valor del texto.
Sintaxis: Text.TrimEnd (texto, [recortar]) - Text.TrimStart : devuelve el resultado de eliminar todos los espacios en blanco iniciales del valor del texto.
Sintaxis: Text.TrimStart (texto, [trim])
- Text.TrimEnd : devuelve el resultado de eliminar todos los espacios en blanco finales del valor del texto.
SUPERIOR
Sobresalir | Consulta de energía | |
Nombre: | SUPERIOR | Texto.superior |
Descripción: | Convierte texto a mayúsculas. | Devuelve la mayúscula de un valor de texto. |
Sintaxis: | SUPERIOR(texto) | Texto.Upper(texto, [cultura]) |
Ejemplo: | =SUPERIOR(“Texto de ejemplo”) | =Texto.Upper(“Texto de ejemplo”) |
Resultado: | “TEXTO DE EJEMPLO” | “TEXTO DE EJEMPLO” |
Notas:
- El argumento opcional [cultura] dentro de Text.Upper no se trata en esta publicación.
Conclusión
Para la mayoría de las funciones de texto de Excel, existe una función de texto de Power Query equivalente.
Sin embargo, existen diferencias importantes a tener en cuenta:
- Muchos argumentos y resultados de Power Query tienen base cero.
- Una función puede tener argumentos adicionales que no están disponibles en la función equivalente.
- El orden de los argumentos puede diferir entre
- Power Query, de forma predeterminada, distingue entre mayúsculas y minúsculas, mientras que Excel no distingue entre mayúsculas y minúsculas.
¿Quiere saber más sobre las funciones de texto de Power Query? Mira esta publicación en Gorilla.bi
Artículos Relacionados:
- Cómo utilizar las funciones personalizadas de Power Query
- Declaración If de Power Query: condiciones anidadas ifs múltiples
- Fórmulas de Power Query (cómo usarlas y errores que se deben evitar)
Deja una respuesta