Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Tengo un conjunto de datos que representa la ocupación de las unidades de apartamento:
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"
@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.
UnitIDStatusOccurredStartEnd
1 | Ocupado | 12/1/2021 | 12/1/2021 | 11/30/2022 |
2 | Ocupado | 12/1/2021 | 12/1/2021 | 11/30/2022 |
3 | Ocupado | 12/1/2021 | 12/1/2021 | 11/30/2022 |
4 | Ocupado | 12/1/2021 | 12/1/2021 | 11/30/2022 |
1 | Ocupado | 12/1/2022 | 12/1/2022 | |
2 | Ocupado | 12/1/2022 | 12/1/2022 | |
3 | Ocupado | 12/1/2022 | 12/1/2022 | |
4 | Ocupado | 12/1/2022 | 12/1/2022 | |
5 | Ocupado | 4/1/2021 | 4/1/2021 | 3/31/2022 |
5 | Ocupado | 4/1/2022 | 4/1/2022 | 12/31/2022 |
5 | Ocupado - Previo aviso | 1/1/2023 | 1/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
Echa un vistazo a estas dos medidas rápidas, ya que creo que quieres algo como ellas.
https://community.powerbi.com/t5/Quick-Measures-Gallery/Open-Tickets/m-p/409364
https://community.powerbi.com/t5/Quick-Measures-Gallery/Periodic-Billing/m-p/409365