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!


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber