Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

La creación de un calendario de días festivos de LuckyTemplates es crucial para muchos cálculos de inteligencia de tiempo. En este tutorial, le mostraré cómo calcular fechas de vacaciones específicas utilizando medidas DAX. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

Este ejemplo provino de una de las iniciativas llamada Problema de la semana, donde cada mes tomamos un problema DAX o Power Query del mundo real y lo desglosamos en detalle.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Usé una técnica llamada Depuración de pato de goma. Por lo general, se usa para la depuración, pero creo que también es muy valioso para generar el marco inicial que usará para resolver un problema complejo como en LuckyTemplates.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Básicamente se trata de usar un patito de goma o una persona con la que hablas y dices en voz alta la solución que estás imaginando y desarrollas un plan sobre cómo vas a atacar el problema.

El mero acto de expresar que a menudo te ayuda a resolver el problema. En algunos casos, en una situación de depuración, te hace darte cuenta de lo que estás haciendo, si tiene sentido y te ayuda a encontrar una manera de solucionarlo abordando el problema.

A continuación se muestra el problema DAX del mundo real para este desafío en particular. Aquí tenemos una tabla con 10 días festivos con el mes y el día. Algunos de los días son días específicos y algunos de ellos son relativos. Tenemos que llegar a la fecha de vacaciones y las medidas Celebrated On.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Para hacer eso, necesitamos analizar el campo Día en dos componentes. El primer análisis es la ocurrencia (tercero, último, primero, segundo) y el segundo análisis es el día (lunes, jueves). Estas son dos piezas críticas de información que necesitamos separar.

Tabla de contenido

Cálculo de fechas específicas en el calendario de vacaciones de LuckyTemplates

Normalmente, haría esto en Power Query solo a través de una división por delimitadores, pero como lo estamos haciendo con DAX, tendremos que hacerlo de otra manera. (Tenga en cuenta que no se nos permite usar Power Query en este desafío).

Necesitamos calcular las fechas mínimas y máximas para el año, mes y día especificados. En este caso, por ejemplo, podemos decir para 2027, enero y el tercer lunes. Una vez que obtenemos ese día mínimo para un mes determinado, podemos agregarle siete días para llegar al segundo lunes, 14 días para llegar al tercer lunes y 21 días para llegar al cuarto lunes.

Otra técnica que quiero compartir con ustedes relacionada con este desafío es lo que llamo Construir en Partes al crear una medida. Encuentro esto realmente útil en una medida compleja en la que si tiene muchas variables, tiene muchos componentes para construir.

Lo que siempre hago es tener una variable de resultado ( Resultado VAR ) al final y mi última declaración que es simplemente Devolver resultado . Esto hace que sea muy fácil volver atrás y probar las variables que he creado. Puedo revisar y rastrear y resolverlo en partes.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

La última técnica que quiero compartir con ustedes es lo que llamo Búsqueda de Funciones Desconocidas. Por ejemplo, si no sé qué función usar para este desafío del calendario de días festivos de LuckyTemplates, iré a la pestaña Herramientas externas e iré a la Guía de SQLBI DAX .

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Tiene una característica muy buena aquí llamada Grupos (en el lado izquierdo), donde las funciones se agrupan por tipo. Entonces, si estoy pensando en analizar una cadena de texto, por ejemplo, puedo buscar funciones de texto .

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Proporciona todas las funciones de texto que tiene DAX. Esta es una excelente manera de encontrar rápidamente la función DAX que necesita para una medida.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Medidas DAX para el calendario de vacaciones de LuckyTemplates

Para la medida de fecha de vacaciones , creé esta serie de s , recopilando las fechas de la segmentación, el mes de vacaciones, el número de mes y el día de la tabla de fechas.  

Luego, tengo la duración de ese día seleccionado usando la función de duración ( ). En este caso, devolvió texto, así que tuve que envolverlo en para cambiar ese texto a un valor numérico.

Y luego, usé la función para la posición del espacio y lo envolví en VALOR, pero diciendo, busque el espacio dentro del día seleccionado, comenzando en la posición uno y devolviendo cero si no encuentro esa cadena allí.

CharsBeforeSpace (caracteres antes del espacio) es solo SpacePosition. El número de CharsAfterSpace (caracteres después del espacio) es solo la longitud ( SelDayLen ) de la cadena menos la posición del espacio. A partir de eso, podemos hacer FirstParse y SecondParse .

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

En este punto, ahora tenemos dos variables, una que representa la ocurrencia y otra que representa el día.

Y luego, tenemos un básico ( Calc1st ) donde quitamos el filtro de la tabla de Fechas. Luego, aplicamos los filtros del año seleccionado de la segmentación, el nombre del mes y luego el día de la semana del segundo análisis que hicimos.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Del mismo modo, hacemos lo mismo para el último cálculo ( VAR CalcLast ).

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Una vez que tenemos todo eso, pasa a una instrucción y la última parte es el resultado RETURN.

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX

Por último, quiero guiarlo a través de la medida Celebrated On como un bono adicional del desafío. simple donde tomé la fecha de vacaciones que calculamos en la medida anterior, fui a la tabla Fechas y busqué el nombre del día de la semana. Y luego hice una declaración SWITCH donde tomamos ese resultado de DayLookup. Y finalmente, lo envuelvo con RETURN DateAdjust .

Calendario de días festivos de LuckyTemplates: calcular la fecha con DAX


Creación de una tabla de calendario para días festivos en LuckyTemplates
Calendarios personalizados de LuckyTemplates: Cálculo del cambio mes a mes: 445 Calendarios
Comparación de tiempo para tablas de fechas no estándar en LuckyTemplates

Conclusión

Este desafío del calendario de vacaciones de LuckyTemplates, como mencioné, es un problema del mundo real. La solución que se me ocurrió es bastante compleja, pero realmente efectiva para calcular las fechas específicas de vacaciones.

Espero que hayas aprendido mucho con este tutorial. Consulte el tutorial de vídeo completo para obtener una explicación más detallada de las medidas DAX.

¡Salud!

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.