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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
738o51
Helper II
Helper II

Promedio móvil en el índice

Hola a todos,

Necesito ayuda para crear un promedio móvil. Mis datos muestran el número de clientes que entraron en las tiendas A, B y C, por fecha. Mi promedio móvil debe tener lo siguiente:
1. Numerador: Recuento de clientes de los últimos 5 días de apertura; no cuenten los clientes que vinieron en días no abiertos.
2. Denominador: Recuento de días que la tienda tuvo clientes en los últimos 5 días abiertos. Si yo estuviera abierto 5 días esta semana, pero sólo tenía clientes para 2, entonces mi denominador sería 2.
Dado que solo estoy contando las fechas de apertura, he creado un índice para usar para el promedio móvil en lugar de las fechas. Luego probé dos meausres (Dax y PBIX a continuación) que no funcionaba para el numerador. ¿Alguien puede ayudar?
Un meausre correcto mostrará lo siguiente para 2/17/20
A21+12/13-14 (no 2/15 porque es un fin de semana)
B33232 + 72 + 58 + 82 + 882/11-14, 2/17
C5011 + 7 +10 + 10 + 13 + 92/11-14, 2/17
Aquí está el pbix
https://www.dropbox.com/s/pz3wm8cca8m5e2t/Retail%20example2.pbix?dl=0


Aquí está mi Dax para las dos medidas:
Rolling5OpenDaySum1 ?
Calcular(
sum(FootTraffic[Cliente]),
Topn(
5,
FootTraffic,
FootTraffic[OpenDayIndex],
ASC,1))
Rolling5OpenDaySum2 ?
Var LowerBound á max(FootTraffic[OpenDayIndex])
Var UpperBound á max(FootTraffic[OpenDayIndex])+5
Var RollingSum ?
Calcular(
sum(FootTraffic[Cliente]),
filter(FootTraffic, FootTraffic[OpenDayIndex] >- LowerBound),
filtro (FootTraffic,FootTraffic[OpenDayIndex] < UpperBound))
devolución
RollingSum
1 ACCEPTED SOLUTION
mahoneypat
Microsoft Employee
Microsoft Employee

Por favor, pruebe esta expresión. Obtiene el resultado correcto para las tiendas B y C en 2/17/2020. Sin embargo, dado que la Tienda A no tenía clientes ese día, devuelve en blanco para la Tienda A cuando la fecha es 2/17/2020. Para evitar eso, deberá agregar una tabla Date y establecer una relación con la columna FootTraffic[Date]. A continuación, puede adaptar esta medida para obtener los VALORES de la columna Fecha[Fecha] en su lugar.

Last 5 Open Days =
VAR __maxdate =
    MAX ( FootTraffic[Date] )
VAR __openlast5 =
    TOPN (
        5,
        CALCULATETABLE (
            VALUES ( FootTraffic[Date] ),
            FootTraffic[Open Day] = "Open",
            ALL ( FootTraffic[Date] ),
            FootTraffic[Date] >= __maxdate - 6,
            FootTraffic[Date] <= __maxdate
        ),
        FootTraffic[Date], DESC
    )
VAR __customercount =
    SUMX ( __openlast5, CALCULATE ( SUM ( FootTraffic[Customer] ) ) )
VAR __opendayswithcustomers =
    COUNTROWS (
        FILTER ( __openlast5, CALCULATE ( SUM ( FootTraffic[Customer] ) ) > 0 )
    )
RETURN
    DIVIDE ( __customercount, __opendayswithcustomers )

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

1 REPLY 1
mahoneypat
Microsoft Employee
Microsoft Employee

Por favor, pruebe esta expresión. Obtiene el resultado correcto para las tiendas B y C en 2/17/2020. Sin embargo, dado que la Tienda A no tenía clientes ese día, devuelve en blanco para la Tienda A cuando la fecha es 2/17/2020. Para evitar eso, deberá agregar una tabla Date y establecer una relación con la columna FootTraffic[Date]. A continuación, puede adaptar esta medida para obtener los VALORES de la columna Fecha[Fecha] en su lugar.

Last 5 Open Days =
VAR __maxdate =
    MAX ( FootTraffic[Date] )
VAR __openlast5 =
    TOPN (
        5,
        CALCULATETABLE (
            VALUES ( FootTraffic[Date] ),
            FootTraffic[Open Day] = "Open",
            ALL ( FootTraffic[Date] ),
            FootTraffic[Date] >= __maxdate - 6,
            FootTraffic[Date] <= __maxdate
        ),
        FootTraffic[Date], DESC
    )
VAR __customercount =
    SUMX ( __openlast5, CALCULATE ( SUM ( FootTraffic[Customer] ) ) )
VAR __opendayswithcustomers =
    COUNTROWS (
        FILTER ( __openlast5, CALCULATE ( SUM ( FootTraffic[Customer] ) ) > 0 )
    )
RETURN
    DIVIDE ( __customercount, __opendayswithcustomers )

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors