M es el poderoso lenguaje detrás de la escena de Power Query. Cualquier transformación que aplique estará escrita en lenguaje M. Para muchos, M parece un lenguaje que da miedo. En este post quiero explicar un poco los fundamentos de M. Sin mencionar ninguna función. Principalmente quiero explicarte cómo está estructurada la sintaxis del lenguaje M. Una vez que conoces la sintaxis, entonces todo se vuelve simple. M es un lenguaje que puedes aprender su sintaxis fácilmente. Como desarrollador de Power Query; te recomiendo encarecidamente que le dediques tiempo a M, porque hay MUCHAS operaciones que puedes hacer con M, pero que no puedes hacer simplemente con la interfaz gráfica. Si quieres aprender más sobre Power BI, lee el libro Power BI from Rookie to Rock Star.

M es el nombre informal de Power Query Formula Language. ¡El nombre formal es tan largo que nadie lo usa, todos lo llaman M! M significa Data Mashup, algunos dicen que significa Data Modeling. M es un lenguaje funcional, y es importante conocer sus funciones. Sin embargo, cada lenguaje tiene una estructura y sintaxis que es el nivel de principiante para aprender ese lenguaje. En este post, voy a explicar la sintaxis de M. Antes de aprender M, me gustaría que leyeras esta frase en voz alta;

M es mucho más potente que la interfaz gráfica de Power Query

¡Sí, has leído bien! La interfaz gráfica de Power Query está cambiando cada mes. Cada mes llegan nuevas funcionalidades a esta interfaz gráfica. Pero el hecho es que todas estas funcionalidades han estado en el lenguaje durante muchos años! si usted sabe el lenguaje, usted podría utilizar fácilmente, en lugar de esperar a la opción de interfaz gráfica para ello. Hay un montón de ejemplos para ello. un ejemplo muy pequeño es aquí: usted puede ampliar su capacidad de agrupación en Power Query con un cambio muy pequeño en la secuencia de comandos de M.

Sintaxis de M

La sintaxis de este lenguaje es simple. siempre tiene dos bloques de programación: Bloque de expresión LET, y bloque de expresión IN. Aquí está la sintaxis más simple de M;

let x=1in x

Let y In son palabras reservadas. antes de ir incluso un paso más allá, lo primero y más importante que necesitas saber;

M (Power Query Formula Language) es sensible a mayúsculas y minúsculas. Hay una diferencia entre x y X.

qué son estos dos bloques de programación:

let: definición de todas las variables

in: ¡salida! Sí, ¡in significa en realidad out! simplemente nombrado como in. todo lo que pongas en este bloque será la salida de tu consulta.

Así que básicamente, la consulta de abajo significa definir una variable llamada x, asignarle el valor 1 y mostrarla como conjunto de resultados. así que la consulta devolverá 1.

Para ejecutar este ejemplo, necesitas Abrir Power BI Desktop. Vaya a Obtener datos, comience con Nueva consulta en blanco.

luego, en la pestaña Ver, seleccione Editor avanzado;

Asegúrese de que cuando escriba el script ponga palabras reservadas como let y en todas las minúsculas. también su nombre de variable debe ser el mismo caso tanto en let como en section.

Como puede ver, no hay necesidad de definir tipos de datos para la variable. Se asignará automáticamente cuando se produzca la primera asignación.

Si especifica un valor de texto, entonces la variable sería un tipo de datos de texto automáticamente.

Fin de línea

Las líneas de códigos en M continúan si no pone el carácter de fin de línea.

Como puede ver en el ejemplo anterior, la línea continúa, y x será igual a x=1+1 . Si desea poner un final para una línea de uso comma(,). ejemplo aquí:

cada línea necesita una coma(,) para terminar. excepto la última línea antes de in.

Nombres de las variables

Nombre de las variables puede ser todo una palabra, como Fuente. o puede tener espacios en él. en caso de que tenga algunos caracteres como el espacio, entonces usted necesita para poner el nombre dentro de comillas dobles («) y poner un hashtag al principio de la misma(#). algo similar a:

#"This is a variable name"

El nombre de la variable puede contener caracteres especiales, aquí hay un ejemplo:

Caracteres especiales

Los nombres de las variables pueden tener caracteres especiales, como se puede ver a continuación la variable tiene todo tipo de caracteres en ella y todavía funciona bien.

Caracteres de escape

Las comillas dobles («) son caracteres de escape. puedes usarlas para definir variables con nombres que tienen otras comillas dobles. Aquí hay un ejemplo:

La primera comilla doble (resaltada) arriba es necesaria para estar antes de la segunda comilla doble (que es parte del nombre de la variable).

Codificación paso a paso

Power Query es una transformación paso a paso. Cada transformación suele ocurrir en un paso. Mientras escribes el código, también puedes notar que en el lado derecho, verás que cada variable forma un paso.

En la captura de pantalla de arriba, puedes ver que cada variable se determina como un paso. y si la variable tiene espacio en el nombre, se mostrará con espacios en la lista de pasos aplicados.

La última variable siempre se especifica en la sección in.

Literales

Hay diferentes formas de definir cada literal en Power Query. Por ejemplo, si quieres definir una variable de fecha, aquí tienes cómo hacerlo;

Para definir el resto de tipos de literales, aquí tienes la tabla de referencia que debes utilizar:

* para la función y el tipo; más adelante escribiré otro post para explicar cómo funcionan estos tipos.

Llamada a una función

M es un lenguaje funcional, y para hacer casi todo lo que necesitas llamar a una función para ello. las funciones pueden ser fácilmente llamadas con el nombre de la función y especificando los parámetros para ello.

la captura de pantalla anterior utiliza la función Date.Year que obtiene la parte del año de una fecha. Los nombres de las funciones comienzan siempre con letras mayúsculas: Date.Year()

Como en cualquier lenguaje de programación, puedes poner algunos comentarios en tu código. Puede ser de dos formas;

Comentario de una línea con doble barra (//)

Comentario de varias líneas entre la barra y los inicios (/* comentarios */)

Un ejemplo del mundo real

Ahora que sabes algunos aspectos básicos, vamos a ver una consulta existente en el modo de editor avanzado y entenderla.

En la captura de pantalla de arriba, puedes ver todos los fundamentos mencionados hasta ahora:

  1. dejar y en bloque
  2. nombres de variables que coinciden con los pasos aplicados en la consulta
  3. algunos nombres de variables con hashtag y comillas dobles: #»var name»
  4. caracteres de fin de línea: coma
  5. llamada a muchas funciones

Todavía hay muchas partes de esta consulta que puede que no entiendas. especialmente cuando se usan funciones. necesitas aprender lo que hacen las funciones para entender el código completamente. He escrito una entrada en el blog, que explica cómo usar la palabra clave #shared para obtener la documentación de todas las funciones en Power Query.

En próximas entradas, explicaré otros niveles de estructuras en M.

Formador, Consultor, Mentor
Reza Rad es director regional de Microsoft, autor, formador, conferenciante y consultor. Es licenciado en ingeniería informática y tiene más de 20 años de experiencia en análisis de datos, BI, bases de datos, programación y desarrollo, principalmente en tecnologías de Microsoft. Es un MVP de la Plataforma de Datos de Microsoft durante nueve años continuos (desde 2011 hasta ahora) por su dedicación al BI de Microsoft. Reza es un blogger activo y cofundador de RADACAD. Reza también es cofundador y coorganizador de la conferencia Difinity en Nueva Zelanda.
Sus artículos sobre diferentes aspectos de las tecnologías, especialmente sobre MS BI, se pueden encontrar en su blog: https://radacad.com/blog.
Escribió algunos libros sobre MS SQL BI y también está escribiendo otros, También fue un miembro activo en foros técnicos en línea como MSDN y Experts-Exchange, y fue moderador de los foros de MSDN SQL Server, y es un MCP, MCSE y MCITP de BI. Es el líder del grupo de usuarios de Business Intelligence de Nueva Zelanda. También es el autor de un libro muy popular Power BI from Rookie to Rock Star, que es gratuito con más de 1700 páginas de contenido y el Power BI Pro Architecture publicado por Apress.
Es ponente internacional en Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday y grupos de usuarios de SQL. Y es un Microsoft Certified Trainer.
La pasión de Reza es ayudar a encontrar la mejor solución de datos, es un entusiasta de los datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.