Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
appleceo
Frequent Visitor

Calcular el mismo día de la semana de ventas para las 2 semanas anteriores

Hola

Estoy tratando de usar DAX para calcular las ventas semanales promedio para los productos de la transacción en los mismos días de la semana en las dos semanas antes de las fechas de la transacción.

Por ejemplo, para los datos siguientes, el producto ABC está en la transacción 2 que comienza en 1/5 (domingo) y termina en 1/6 (lunes). Quiero calcular el promedio de las ventas de domingo+lunes para 12/22,12/23,12/29,12/30 para el producto ABC que es (78+442+222+100)/2 SEMANAS-421. Similar para el trato 1.

Nombre de la transacciónProductoVentasFecha de inicio de la ofertaFecha de finalización de la transacciónFecha
Abc100 12/30/2019
Abc50 12/31/2019
Oferta 1Abc11/1/20201/1/20201/1/2020
Abc2 1/2/2020
Abc1 1/3/2020
Abc31/1/20201/1/20201/4/2020
Oferta 2Abc41/5/20201/6/20201/5/2020
Oferta 2Abc41/5/20201/6/20201/6/2020
Abc25 12/25/2019
Abc233 12/26/2019
Abc112 12/27/2019
Abc343 12/28/2019
Abc222 12/29/2019
Bcd12 12/25/2019
Bcd16 12/26/2019
Bcd20 12/27/2019
Bcd24 12/28/2019
Bcd28 12/29/2019
Bcd32 12/30/2019
Bcd36 12/31/2019
Abc22 12/20/2019
Abc46 12/21/2019
Abc78 12/22/2019
Abc442 12/23/2019
Abc34 12/24/2019
Abc22 12/15/2019
Abc456 12/16/2019
Abc23 12/17/2019
Abc1 12/18/2019
Abc2 12/19/2019

¡Gracias por tu ayuda!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @appleceo,

De acuerdo con sus necesidades, he hecho las siguientes pruebas de referencia:

M = 
VAR _dealsdate =
    CALCULATE (
        MAX ( 'Table'[Deal Start Date] ),
        FILTER ( 'Table', 'Table'[Deal Name] = MAX ( 'Table'[Deal Name] ) )
    )
VAR _dealedate =
    CALCULATE (
        MAX ( 'Table'[Deal End date] ),
        FILTER ( 'Table', 'Table'[Deal Name] = MAX ( 'Table'[Deal Name] ) )
    )
VAR _pre1wdsate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealsdate - 7 )
    )
VAR _pre1wdeate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealedate - 7 )
    )
VAR _pre2wsdate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealsdate - 14 )
    )
VAR _pre2wedate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealedate - 14 )
    )
RETURN
    IF (
         ( MAX ( 'Table'[Deal Name] ) ) = "",
        BLANK (),
        DIVIDE ( _pre1wdsate + _pre1wdeate + _pre2wsdate + _pre2wedate, 2, 0 )
    )

v-henryk-mstf_0-1611654164666.png

Aquí está el archivo pbix de ejemplo.


Si el problema aún no se ha resuelto, proporcione información detallada sobre el error y los datos de prueba. Hágamelo saber inmediatamente, esperando su respuesta.


Saludos
Henry


Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

No @appleceo,

De acuerdo con sus necesidades, he hecho las siguientes pruebas de referencia:

M = 
VAR _dealsdate =
    CALCULATE (
        MAX ( 'Table'[Deal Start Date] ),
        FILTER ( 'Table', 'Table'[Deal Name] = MAX ( 'Table'[Deal Name] ) )
    )
VAR _dealedate =
    CALCULATE (
        MAX ( 'Table'[Deal End date] ),
        FILTER ( 'Table', 'Table'[Deal Name] = MAX ( 'Table'[Deal Name] ) )
    )
VAR _pre1wdsate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealsdate - 7 )
    )
VAR _pre1wdeate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealedate - 7 )
    )
VAR _pre2wsdate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealsdate - 14 )
    )
VAR _pre2wedate =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Date] = _dealedate - 14 )
    )
RETURN
    IF (
         ( MAX ( 'Table'[Deal Name] ) ) = "",
        BLANK (),
        DIVIDE ( _pre1wdsate + _pre1wdeate + _pre2wsdate + _pre2wedate, 2, 0 )
    )

v-henryk-mstf_0-1611654164666.png

Aquí está el archivo pbix de ejemplo.


Si el problema aún no se ha resuelto, proporcione información detallada sobre el error y los datos de prueba. Hágamelo saber inmediatamente, esperando su respuesta.


Saludos
Henry


Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

amitchandak
Super User
Super User

@appleceo, el mismo día de la semana es 7 día de retraso. Con la ayuda de la mesa Dat

Ejemplo

7 detrás de Sales (CALCULATE(SUM(Sales[Sales]),dateadd('Date'[Date],-7,DAy))

También referir mi blog de la semana WOW

Power BI — Semana a semana y WTD
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
https://www.youtube.com/watch?v=pnAesWxYgJ8

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.