Comparar semanas

Las funciones de inteligencia de tiempo nos permiten comparar varios periodos, año anterior, trimestre interior y mes anterior.

Pero me interesa buscar un método para comparar los datos de una semana con su semana anterior, o con dos anteriores, etc…

Usamos la Plantilla calendario y en la tabla de Ventas vamos a añadir una nueva medida

Ventas Semana Anterior = CALCULATE ([Importe]; FILTER(ALL(Ventas);COUNTROWS(FILTER(Ventas;EARLIER(Ventas[Fecha])=DATEADD(Ventas[Fecha];-7;DAY)))))

Analicemos que hace esto

Calcula el importe sobre una tabla,

CALCULATE (

[Importe];

Que se obtiene aplicando un filtro,

FILTER(

Que quita todos los filtros que haya en ventas

ALL(Ventas);

Y cuenta las filas

COUNTROWS(

Aplicando un filtro a la tabla ventas,

FILTER(

Ventas;

Buscando los registros cuya fecha sea = a la fecha en que estamos (EARLIER) menos 7 días

EARLIER(Ventas[Fecha])=DATEADD(Ventas[Fecha];-7;DAY)))))

La verdad es que como texto es un poco difícil de explicar, y hay que comprender sobre todo el funcionamiento de FILTER

Estableciendo esta medida y aplicándola en una Matriz podemos obtener

Donde vemos las ventas de cada semana del 2016 y las ventas de su semana anterior, lo mismo para el 2017

Lo he obtenido de esta web

3 comentarios sobre “Comparar semanas”

  1. La Medida es genial, pero tengo un inconveniente, siguiendo con tu ejemplo, imaginémonos que tenemos una columna mas que son clientes (Cliente 1, Cliente 2…). Si inserto una tabla dinámica y luego pongo filtro por Semana y Cliente, me aparecen las ventas, pero las ventas del año pasado (mismos días de la semana) me parecen como la suma de todos los clientes y solo necesito el que he seleccionado. Espero que me puedas ayudar. Gracias

  2. Hola, la medida es genial, sin embargo tengo un inconveniente, imaginémonos que también tienes la columna país, donde muestra las ventas de cada país por fecha. Si inserto una tabla dinámica y filtro por mes y por un país concreto, me da las ventas del periodo anterior (en mi caso -364; Days) pero para todos los países. Me podrías ayudar por favor. Gracias

  3. LLevo algun mes estudiando power bi y dax, y no entiendo muy bien como funciona esta expresión. El segundo argumento de calculate me causa problemas, entiendo como funciona earlier, pero el countrows dentro del filtro no llego a comprenderlo.
    Se supone que filter (all(Ventas);countrows(filter…… toma toda la tabla de ventas sin aplicarle ningun filtro y luego le aplica el filtro del segundo argumento, y eso es lo que no entiendo, se supone que el segundo argumento de filter debe de ser una expresión booleana y countrows devuelve un escalar (un numero) que son el numero de columnas que tienen la misma fecha.

    Si a una funcion con filter, de segundo argumento le ponemos un numero, nos dará error, pero sin embargo aqui eso no sucede. La expresión filter (all(Ventas); countrows…. es permitida.
    ¿ Alguien me podría echar una mano ? LLevo mas de una semana intentando entender esto y buscando información y no doy con ello. Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.