Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Le mostraré cómo agregar un parámetro en la función M en su consulta de tabla de fechas . Este ejemplo se basa en una pregunta que se planteó en el . Puede ver el video completo de este tutorial en la parte inferior de este blog.

La pregunta era sobre cómo cambiar la numeración del primer día de la semana de 0 a 1 . Tenga en cuenta que esto no cambia el inicio real del día de la semana. En esta tabla de fechas, el inicio de la semana siempre será el lunes. Se trata simplemente de referirse al lunes como el Día 1 en lugar del Día 0.

Este proceso no es necesariamente complejo, pero necesita una comprensión básica de cómo está estructurado el lenguaje M. Si es miembro de LuckyTemplates, puede consultar el . La introducción toca el tema.

Tabla de contenido

La función M y la tabla de fecha extendida

Permítanme comenzar yendo a Power Query . Ya he copiado la función M de la tabla de fechas aquí.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Obtuve la función M de la categoría M Code Showcase en LuckyTemplates Forum . El código se encuentra bajo el tema .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Si abro el Editor avanzado , este es el código.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Hay mucho código M allí, lo que podría distraer.

Creación de una consulta de prueba

Dado que suceden demasiadas cosas dentro de la función M, voy a comenzar con una nueva consulta en blanco .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Voy a nombrar esta consulta de prueba .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

A continuación, voy a abrir el Editor avanzado .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Debido a que voy a crear una función, agregaré un par de paréntesis y eliminaré todo el código predeterminado allí.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Para iniciar la función, voy a declarar un parámetro opcional .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

A continuación, voy a agregar una variable. Llamaré a esta variable WDStartNum ya que representará el número de inicio del día de la semana. También necesito declarar su tipo, así que escribiré number .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Estoy declarando el tipo para evitar errores. Si lo dejo como cualquier tipo, esto significa que podría pasar una tabla o un valor de fecha en lugar de solo pasar números.

El siguiente paso es agregar la cláusula let y la cláusula in .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Bajo la cláusula let, necesito un nombre de variable. Así que voy a llamar a esta variable WDStart .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Ahora, necesito probar si se ha pasado el WDStartNum . Si pasa, no equivaldrá a nulo . Así que voy a declarar que si WSDartNum no es igual a nulo, quiero que se devuelva un valor .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

En cuanto a la cláusula in, quiero que se pase el mismo paso. Así que simplemente pondré WDStart allí, que es el nombre que le dimos a nuestra variable anteriormente en la cláusula let.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Una vez que presione Listo, se creará la función. Así que intentaré pasar un valor a través de esa función.

Voy a intentar escribir la letra "a".

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Recuerda que antes declaré que el valor debe ser un número. Debido a que reconoce que el valor que ingresé no cumple con este requisito, no me permitirá ingresar ese parámetro.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Así que voy a eliminar eso y dejaré el espacio en blanco.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Una vez que hago clic en Invocar, devuelve un valor de 0.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Volviendo a mi consulta original, indica que si el valor no es igual a nulo, se debe devolver WSDartNum. Si es igual a nulo, se debe devolver un 0.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Entonces ese 0 es correcto.

Esta vez, intentaré pasar un valor cambiando el número en TestQuery. Es cierto que devuelve un "1" una vez que presiono enter.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Ahora, déjame intentar pasar 2020 en TestQuery. Una vez que presiono enter, también regresa 2020.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Evidentemente, no quiero que esto suceda. Como quiero un valor que represente el comienzo de la semana, quiero que aparezca un 0 o un 1. Esto significa que necesito crear otra prueba para ver si el número ingresado es un 0 o un 1. Puedo usar la función List.Contains para esto.

Uso de List.Contains

Creé una consulta en blanco e ingresé List.Contains sin usar un paréntesis.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Una vez que presiono enter, puedo ver la documentación sobre esa función.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

List.Contains indica si la lista contiene un valor.

Por lo tanto, requiere una lista como primer parámetro, y luego se agrega un valor después de eso. Si ese valor se encuentra dentro de la lista, devuelve verdadero. De lo contrario, devolverá falso.

Volveré a abrir el Editor avanzado para poder realizar los cambios necesarios en mi consulta.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

En lugar de probar si un valor no es igual a nulo, usaré List.Contains .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Ahora, daré una lista de valores que se aplicarán a esta función.

Usaré corchetes como inicializador de lista. Dentro de esos corchetes, pondré 0, 1. Agregaré una coma después de cerrar ese corchete.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Para el segundo parámetro, usaré WSDartNum. Luego, agregaré el paréntesis de cierre.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Con esto en su lugar, significa que un 0 o 1 debería darme el WStartNumber. Si se coloca algo que no sea 0 o 1, debería obtener un resultado de 0.

Permítanme probar eso poniendo 2020 en TestQuery. Como era de esperar, esto devuelve un "0" (cero).

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Eso es porque el valor 2020 no está en la lista.

Agregar el parámetro en la función M

Ahora que estoy seguro de que el código funciona, finalmente puedo colocarlo dentro de la tabla de fechas real y la función M. Abriré el Editor avanzado y luego copiaré la lógica .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Luego pasaré a la consulta de la tabla de fechas.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Abriré la función M original a través del Editor avanzado .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Luego, voy a pegar mi código allí. Asegurémonos de que haya una coma al final de la línea.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

A continuación, voy a resaltar y copiar el nombre de mi parámetro .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Entonces voy a agregar ese parámetro aquí .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Tenga en cuenta que primero debo agregar una coma al final de la línea existente, luego debo declarar que este parámetro es opcional . Luego puedo colocar WDStartNum y agregar el tipo .

Agregué el parámetro y también incrusté la lógica. Pero también necesito asegurarme de obtener los resultados esperados. Así que voy a buscar la línea de código que cubre el día de la semana.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Luego, agregaré + WDStart .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Haré clic en Listo para cerrar el editor. Entonces, voy a invocar la consulta.

Para StartDate, pondré el 1 de enero de 2020, luego usaré el 31 de diciembre de 2020 como EndDate.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Usaré "7" como el mes de inicio del año fiscal, luego pondré "0" como el WDStartNum.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Haré clic en Invocar. Ahora, tengo la tabla de fechas.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Le cambiaré el nombre para asegurarme de que se pueda identificar fácilmente.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Ahora, comprobaré los resultados.

Esta es mi columna DayOfWeek .

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Muestra que el lunes ha regresado como 0.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Volviendo a la pregunta en el foro, necesito cambiar el número del inicio de la semana a 1 en lugar de 0. Así que cambiaré eso en la medida.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Cuando presiono enter, el lunes ahora será el día 1 en lugar del día 0.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Mirando el rango de números, ahora va del 1 al 7 en lugar del 0 al 6.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

¿Qué sucede si paso un valor nulo?

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas

Luego, el Día de la semana del lunes vuelve a ser 0.

Función M para la tabla de fechas: cómo agregar un parámetro en el editor de consultas


Uso de la función M para crear una tabla de fechas de LuckyTemplates extendida
Guía para principiantes del código M en LuckyTemplates
Configuración de una fecha de inicio y una fecha de finalización dinámicas para las tablas de fechas de Power Query

Conclusión

Así es como puede agregar un parámetro adicional directamente en la función M en su consulta de tabla de fechas. El proceso no es nada complejo, como mencioné anteriormente. Siempre que tenga una fuente para el código M, es bastante fácil desde allí.

Nuevamente, siempre puede consultar el curso Transformaciones y modelado de datos avanzados en Online si no tiene antecedentes sobre cómo funcionan los códigos M.

Mis mejores deseos,

Toronjil

***** ¿Aprender LuckyTemplates? *****






Leave a Comment

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.