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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Rango métrico por fecha con múltiples observaciones secuenciales por categoría

Tengo un conjunto de datos que representa la ocupación de las unidades de apartamento:

nmamm_0-1675801376587.png

Me gustaría informar sobre el número de unidades ocupadas por día, que creo que debería hacerse de la siguiente manera:

para cada unitID, obtenga el registro con Max(Filter(Table, Occured Date

Por ejemplo, esperaría las # unidades ocupadas:

-a partir del 5/2/2022 para ser 5

-a partir del 2/1/2023 a ser 4 (Unit ID #5 tiene un registro más reciente con fecha 1/1/2023 con un Status = "Ocupado = On Notice"

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@Greg_Deckler gracias por su respuesta! Creo que estás en algo. Usando como ejemplo el fichero de facturación periódica, la complejidad que tengo es que se repite "Cliente A", y solo quiero contar algunos de sus pedidos, y no otros.

@nmamm ¿Puede proporcionar datos de muestra para trabajar?

@nmamm ¿Puede proporcionar datos de muestra para trabajar?

@Greg_Deckler

UnitIDStatusOccurredStartEnd

1Ocupado12/1/202112/1/202111/30/2022
2Ocupado12/1/202112/1/202111/30/2022
3Ocupado12/1/202112/1/202111/30/2022
4Ocupado12/1/202112/1/202111/30/2022
1Ocupado12/1/202212/1/2022
2Ocupado12/1/202212/1/2022
3Ocupado12/1/202212/1/2022
4Ocupado12/1/202212/1/2022
5Ocupado4/1/20214/1/20213/31/2022
5Ocupado4/1/20224/1/202212/31/2022
5Ocupado - Previo aviso1/1/20231/1/2023

@Greg_Deckler Creo que lo entendí.

% Mkt Occ = 
VAR tmpunitStatus = ADDCOLUMNS(unitstatus,"Effective Date",IF(ISBLANK([End]),TODAY(),[End]))
VAR tmpTable =  
    FILTER(
        GENERATE(
               tmpunitStatus,
            CalendarTable
        ),
    
       and( And([Date] <= [End], [Date] >= [Start]),[Status]="Occupied")
    )

RETURN COUNTROWS(tmpTable)/DISTINCTCOUNT([UnitID])

Me di cuenta de que parte del problema era que la tabla de hechos estaba vinculada a la tabla de fechas, lo que forzaba un comportamiento no deseado. Cuando trazo esto por día, produce los resultados esperados. Sin embargo, si intenta resumir los datos por cualquier otra dimensión de tiempo (particularmente porque se utilizan filas de días en la función generar), obtengo sumas de cantidades diarias (por supuesto) que no quiero. Por lo tanto, inspirado por esto, se me ocurrió la siguiente solución:

% Mkt Occ (Current) = 
VAR tmpTable =  
    FILTER(
unitstatus,
       and( And(max(CalendarTable[Date]) <= [End], max(CalendarTable[Date]) >= [Start]),[Status]="Occupied")
    )

RETURN COUNTROWS(tmpTable)/DISTINCTCOUNT(unitstatus[UnitID])

Inspirado por la solución sugerida, filtre dinámicamente la tabla de hechos en función de la fecha máxima de la tabla del calendario, que a su vez es dinámica en función de la dimensión de tiempo que se está trazando.

@nmamm ¡Excepcional!

Syndicate_Admin
Administrator
Administrator

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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