Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

La recuperación de valores de períodos anteriores en LuckyTemplates es una tarea común, pero la recuperación de valores de semanas anteriores requiere una atención especial. En este tutorial, analizaré dos métodos sencillos y versátiles para obtener los valores de la semana anterior de LuckyTemplates que pueden ser adiciones útiles a su caja de herramientas: uno con DAX y el otro con Power Query. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

Este tutorial surgió de una pregunta que recibí de un miembro de LuckyTemplates. El miembro preguntó cuál era la forma más fácil de determinar el número de la semana anterior. Esta es una pregunta común que encuentro. Parece bastante simple, pero cuanto más profundizas, más te das cuenta de que hay mucho que procesar.

Tabla de contenido

Valores de la semana anterior en LuckyTemplates: el problema

Si miramos el número de la semana, tenemos 52 semanas; multiplique eso por siete días (una semana) y da 364. Entonces, en cada año, hay un día extra, y luego para los años bisiestos, hay dos días extra. Estos uno o dos días adicionales terminan causando muchos problemas.

Vamos a crear una medida a partir de nuestra tabla de fechas. Lo llamaremos MAX Semana # (número). En este análisis, estamos usando la tabla de fechas extendidas de LuckyTemplates; esto tiene ISO Weeknumber , que es bastante útil. Ahora, tomemos el MAX del número de semana ISO.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Ahora, tomemos una tabla y sueltemos el año , así como nuestro MAX Week # . Este conjunto de datos tiene 10 años de datos y vemos que los primeros dos años tienen 52 semanas. Luego, tenemos dos años con 53 semanas, tres años con 52 semanas y luego dos años más con 53 y uno con 52.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

No hay realmente un patrón discernible aquí. No es fácil volver atrás y predecir que un año tendrás 52 semanas y el otro año tendrás 53.

Lo siguiente que podría pensar si está familiarizado con las funciones de inteligencia de tiempo DAX es usar la función DATEADD , que desplaza un rango de fechas hacia atrás en un período determinado. Lo hace muy bien para Día, Mes, Trimestre y Año, pero no incluye Semana, por lo que tenemos que encontrar una forma diferente de hacerlo.

En la tabla de fechas extendidas de LuckyTemplates que estamos usando, Melissa (una de las expertas de LuckyTemplates) ha incluido una función llamada OFFSETS . Profundicemos en esta función porque es absolutamente clave para resolver esto desde la perspectiva de DAX.

Mirando el período actual (por ejemplo, el 20 de enero, que es el período de creación de este tutorial), lo que vemos es que el desplazamiento es igual a cero . La forma en que funcionan las compensaciones es que para el período actual, la compensación se vuelve cero.

La semana anterior a la semana actual es negativa, las dos semanas anteriores a la semana actual son dos negativas, y así sucesivamente. Y luego, avanza desde los números positivos; la próxima semana obtiene un uno, dos semanas obtiene un dos, etc.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Cada vez que abre el informe relativo a la fecha de hoy, calcula las compensaciones. Esto es increíblemente poderoso y ahora le mostraré lo fácil que es abordar algunos problemas difíciles como este número de la semana anterior de LuckyTemplates cuando usa compensaciones.

Obtención de LuckyTemplates la semana anterior mediante DAX

Vamos a crear una nueva medida y llamarla Previous Wk # . Vamos a comenzar con una variable ( SelWkOffset ), donde solo vamos a hacer un SELECTEDVALUE de WeekOffset . Entonces, en la fila actual, dibujará ese WeekOffset y lo pondrá en nuestra variable.

La siguiente variable será Result . Este es el resultado final que queremos y vamos a usar CALCULATE porque vamos a cambiar de contexto.

Luego, queremos el número de semana MAX ISO y eso estará sujeto a estas condiciones de filtro. Entonces, eliminaremos todos los filtros en la tabla Fechas, y usaremos TODOS aquí. Si tuviéramos una segmentación de fechas, tal vez querríamos usar ALLSELECTED , pero por ahora no la tenemos, así que solo usaremos ALL para eliminar el filtro de esa tabla de fechas.

Y luego, diremos que WeekOffset será igual a nuestro SelWkOffset menos uno . Aquí es donde los OFFSETS se vuelven tan poderosos. No puede usar Weeknumber menos uno porque se reinicia cada año. Pero debido a que TODAS LAS COMPENSACIONES son secuenciales, puede tratarlo como si encontrara el año anterior y solo restara uno por cada año anterior. Y entonces esto, este desplazamiento funciona de la misma manera que lo haría un número consecutivo.

Ahora podemos tomar y cerrar esa condición de filtro, cerrar CALCULATE y simplemente DEVOLVER nuestro Result .

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Ahora, veamos cómo funciona esta medida. En la siguiente tabla, podemos ver que está haciendo exactamente lo que esperábamos. En la semana 52 para el período uno del año siguiente, la semana anterior es 52. Y luego retrocede uno en cada período, y así sucesivamente.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Ahora, ¿qué haces en los casos en que no tienes una compensación?

Supongamos que está trabajando con una tabla de fechas corporativa que proviene de su almacén de datos y no incluye estas compensaciones. Hay una técnica que quiero mostrarles en Power Query. La primera vez que lo vi fue en una entrada de blog de Imke Feldmann.

Este enfoque funciona muy bien para cualquier situación en la que pueda ordenar la tabla en orden ascendente y no tiene que tener un desplazamiento. No tiene que tener ni siquiera un campo de fecha. Podría ser un tipo de mesa completamente diferente. Siempre que se pueda ordenar en orden ascendente, puede usar esta técnica.

Así que hagamos referencia a esta tabla Dates Raw y la llamaremos Dates . Luego, nos aseguramos de ordenar esto en orden ascendente .

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

A continuación, queremos agrupar por semana . La razón de esto es que vamos a agregar dos columnas de índice. Cuando agregamos esas columnas de índice, queremos que estén en la granularidad de la semana , no en la granularidad del día.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

A continuación, queremos agregar esas columnas de índice. Lo importante aquí es que el primer índice que agregaremos será un índice basado en 0. Y luego, agregaremos un segundo índice que es un índice basado en 1.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Luego, tomaremos esta columna y fusionaremos una tabla en sí misma. Vamos a fusionarlo en función de las dos columnas de índice diferentes. Eso nos va a dar un cambio en las filas.

Entonces, si tomamos esto y fusionamos el primero con el índice basado en 0 con el índice basado en 1, coincide con 521 en 522 filas. Eso es exactamente lo que esperaríamos porque la segunda tabla no tomará el índice cero ya que comienza en uno.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Después de eso, simplemente expandiremos esto correctamente, solo usando ISO Weeknumber.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Eso nos da nuestro número de la semana anterior. Y ahora, simplemente expandiremos nuestra agrupación original y eliminaremos el campo Fin de semana y el número de semana ISO original para que no dupliquemos.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Si ponemos eso en una tabla, puede ver que son exactamente los mismos resultados que usando la técnica DAX. Funciona exactamente como lo hizo nuestra medida DAX, pero en este caso, no necesitamos usar las compensaciones.

Obtenga los valores de la semana anterior de LuckyTemplates mediante DAX y Power Query

Conclusión

Estas son dos formas diferentes de una manera muy versátil de encontrar el número de la semana anterior. En la primera técnica, puede ver el poder de las compensaciones en la fabricación, lo que de otro modo sería un cálculo difícil, bastante simple. La segunda técnica funciona exactamente como lo hizo nuestra medida DAX, pero en este caso, no necesitamos usar las compensaciones.

Con suerte, este tutorial le resultará útil. Puede ver el video tutorial completo a continuación y consultar los enlaces relacionados para obtener más contenido similar.

¡Salud!


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.