Forum Discussion
Countrows última fecha
Tengo esta mesa
| Id | Estado | Fecha |
| 1 | Activo | 01/01/2020 |
| 1 | Reservados | 05/01/2020 |
| 1 | Suspendido | 08/01/2020 |
| 1 | Vendido | 15/01/2020 |
| 2 | Activo | 02/01/2020 |
| 2 | Suspendido | 03/01/2020 |
| 2 | Activo | 05/01/2020 |
| 3 | Activo | 05/01/2020 |
| 4 | Activo | 06/01/2020 |
| 4 | Vendido | 08/01/2020 |
Quiero contar filas de iDes distintos donde la última fecha sea igual a "activo"
El resultado esperado es: 2 (la última fecha de estos 2 iDs tienen el estado "activo".
¿Me puedes ayudar?
Gracias
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.
6 Replies
- edhans
Community Champion
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?- youconnect
Helper I
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
- edhans
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)