Forum Discussion
Countrows última fecha
- 6 years ago
Hola @youconnect ,
Estoy entendiendo su lógica y he hecho el siguiente cálculo:
count_active_id = var last_active_date = CALCULATE(MAX(Sheet2[date]),FILTER(ALLEXCEPT(Sheet2,Sheet2[id],Sheet2[date]),Sheet2[state]="active")) var last_date = CALCULATE(MAX(Sheet2[date]),ALLEXCEPT(Sheet2,Sheet2[id])) return CALCULATE(COUNTROWS(FILTER(Sheet2,last_active_date=last_date)))Saludos
Liang
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Esto hará lo que usted describe, pero es 1, no 2.
Latest Record Count =
VAR LatestDate =
CALCULATE(
LASTDATE('Sample Data'[Date]),
'Sample Data'[state] = "active"
)
VAR ActiveIDCount =
CALCULATE(
DISTINCTCOUNT('Sample Data'[id]),
FILTER(
'Sample Data',
'Sample Data'[Date] = LatestDate
)
)
RETURN
COALESCE(ActiveIDCount,0)
la última fecha de un elemento activo es el 6 de enero de 2020, y solo un ID tiene esa fecha.
¿Cómo vas a conseguir 2?
No.
la última fecha para el id 1 es 15/01/2020 y el estado no está activo, no cuenta
última fecha para el id 2 es 05/01/2020 y el estado está activo, contar
última fecha para el id 3 es 05/01/2020 y el estado está activo, contar
la última fecha para el id 4 es 08/01/2020 y el estado no está activo, no cuenta.
Así que contar es 2
- edhans6 years ago
Community Champion
Sospecho que hay una manera más limpia de hacer esto, pero esto hace el truco.
Counting Measure = VAR FirstTable = ADDCOLUMNS ( SUMMARIZECOLUMNS ( 'Sample Data'[id] ), "Date2", LASTDATE ( 'Sample Data'[Date] ) ) VAR CombinedTable = NATURALINNERJOIN ( 'Sample Data', firsttable ) VAR RowCount = COUNTROWS ( FILTER ( FILTER ( CombinedTable, [Date] = [Date2] ), [state] = "active" ) ) RETURN COALESCE( RowCount, 0)- youconnect6 years ago
Helper I
Gracias @edhans pero no funciona. Se esperan resultados más altos.
- V-lianl-msft6 years ago
Community Support
Hola @youconnect ,
Estoy entendiendo su lógica y he hecho el siguiente cálculo:
count_active_id = var last_active_date = CALCULATE(MAX(Sheet2[date]),FILTER(ALLEXCEPT(Sheet2,Sheet2[id],Sheet2[date]),Sheet2[state]="active")) var last_date = CALCULATE(MAX(Sheet2[date]),ALLEXCEPT(Sheet2,Sheet2[id])) return CALCULATE(COUNTROWS(FILTER(Sheet2,last_active_date=last_date)))Saludos
Liang
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.- youconnect6 years ago
Helper I
Gracias @V-lianl-msft funcionó como un encanto.
Otra pregunta: Si sólo quiero los registros antes del 01-01-2020 , ¿cómo hacerlo?