La mejor práctica al diseñar un modelo es verificar los campos de fecha. Si están presentes, incluya siempre una tabla de dimensiones de fecha.
Una tabla de fechas incluye todos los atributos con los que puede dividir, dividir y filtrar sus datos para obtener información valiosa. Con él, un campo de fecha en cualquier lugar dentro de su modelo no será un problema.
En el , puede escribir Tabla de fechas en la barra de búsqueda o cambiar a Categorías y buscar M Code Showcase . Pero la forma más rápida de encontrarlo es buscar “@melissa”.
A continuación, elija cualquier tema, luego haga clic en la insignia y, a continuación, haga clic en la tabla de fechas extendidas de temas destacados .
A continuación, encontrará el código M.
Copie toda esta medida y transfiérala a Power Query.
Aplicación en Power Query
Para este paso, asegúrese de que la barra de fórmulas esté visible. Si no es así, ve a Ver pestañas y habilítalo.
Haga clic con el botón derecho en la carpeta Parámetros y funciones, seleccione Nueva consulta y luego Consulta en blanco.
Luego haga clic en el Editor avanzado y pegue el código de Power Query M. Después de eso, cambie el nombre de la consulta a fxCalendar.
Debe configurar los parámetros antes de poder invocar esta función. Configúralo con los siguientes detalles:
Invoque la función y luego cámbiele el nombre a Fechas.
Ahora le mostrará esta tabla de fechas con 32 columnas. Si está familiarizado con el Código M, probablemente reconocerá algunas columnas aquí. Las otras columnas son atributos adicionales o lógica del código que usó.
En la tabla de fechas que se muestra, puede ver las columnas Año fiscal, Trimestre y Período, así como las columnas de filtro IsAfterToday, IsWorkingDay y IsHoliday.
Dado que el cuarto parámetro no se configuró, IsHoliday tiene un valor Desconocido.
Además, en esta tabla de fechas se incluyen las columnas de compensación que simplifican el código DAX que necesita para realizar algunos análisis.
Si desea agregar atributos, use el código y modifíquelo a lo que desee. Además, si desea eliminar columnas innecesarias, vaya a Elegir columnas y luego anule la selección de lo que no necesita.
Hacer una fecha de finalización dinámica
Al desarrollar un informe, la fecha de inicio es fácil de establecer a diferencia de la fecha de finalización. La fecha de finalización es complicada porque depende de los datos dentro de su modelo y cuánto tiempo permanece activo su informe .
Para hacer una fecha de finalización dinámica, necesitamos actualizar dinámicamente el año.
Primero, cree una nueva consulta en blanco.
El equivalente M de la función DAX o Excel es "DateTime.FixedLocalNow". Esto es lo que hace la función:
A continuación, en la barra de fórmulas, utilice la función para extraer el valor del año.
A medida que llega al final del año, sus datos pueden extenderse durante el próximo año. Entonces, es mejor agregar un año adicional como este:
Después de eso, cambie el nombre de la consulta a "MaxYear".
Regrese a su tabla de fechas y sub en la variable MaxYear en la función para tener el año 2021 en su calendario.
Invocar y obtener la columna de la lista de días festivos
Si revisa su tabla de vacaciones, puede ver que se extiende desde 2018 hasta 2020, incluso si el año máximo es 2021.
Para modificar esto, vaya a Paso de origen y luego sub en la variable MaxYear en la medida.
Su mesa navideña tendrá entonces el año 2021.
A continuación, regrese y configure los parámetros nuevamente. Pero esta vez, incluya el parámetro Vacaciones haciendo clic en Elegir columna.
Seleccione Días festivos y la columna que contiene las fechas, luego haga clic en Aceptar.
Después de configurar todo y hacer clic en Invocar, verá la variable "Vacaciones [Fecha]" en la barra de fórmulas. Copie esa variable y elimine la función invocada.
Vuelva a la tabla de fechas, luego sustituya la variable en la función de pasos de origen.
Una vez que termine de cargar e invocar la función, verá que la columna IsHoliday que alguna vez tuvo valores desconocidos ahora tiene valores Verdadero o Falso en cada fila.
Muestra True si la fecha es un día festivo y False en caso contrario.