Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Tengo una columna de identificación con identificadores no únicos.
Tengo otra columna con fechas.
Tengo una tercera columna que tiene un 0 o 1 dependiendo de una condición.
Para cada identificador, estoy intentando encontrar el valor 0 o 1 para la fecha más reciente en la columna de fecha agrupada por identificador y agregarlo para cada fila para ese identificador en una nueva columna. Estoy tratando de crear el "Estado activo más reciente" en el ejemplo siguiente:
Id | Fechas | Estado activo en la fecha | Estado activo más reciente |
1 | 11/1/2013 | 1 | 0 |
1 | 11/1/2015 | 0 | 0 |
1 | 5/1/2015 | 1 | 0 |
2 | 11/1/2012 | 1 | 1 |
2 | 11/1/2014 | 1 | 1 |
3 | 5/1/2014 | 0 | 1 |
3 | 11/1/2013 | 1 | 1 |
3 | 11/1/2015 | 1 | 1 |
3 | 5/1/2015 | 0 | 1 |
Solved! Go to Solution.
Prueba nuevas columnas
Max date = maxx(filter(table,table[ID] = earlier(table[ID]) ),table[Date])
Max Status = maxx(filter(table,table[ID] = earlier(table[ID]) && table[date] = earlier(table[Max date ])),table[status])
Hola @rfhickey ,
Puede crear una medida como se indica a continuación:
Measure =
var a =CALCULATE(MAX('Table'[Dates]),ALLEXCEPT('Table','Table'[ID]))
Return
CALCULATE(MAX('Table'[Active Status at Date]),'Table'[Dates]=a)
Y verás:
O puede crear una columna calculada como se muestra a continuación:
Column =
var a =CALCULATE(MAX('Table'[Dates]),ALLEXCEPT('Table','Table'[ID]))
var b= CALCULATE(MAX('Table'[Active Status at Date]),FILTER('Table','Table'[ID]=EARLIER('Table'[ID])),'Table'[Dates]=a)
Return
b
Y verás:
Para el archivo .pbix relacionado, haga clic aquí.
Hola @rfhickey ,
Puede crear una medida como se indica a continuación:
Measure =
var a =CALCULATE(MAX('Table'[Dates]),ALLEXCEPT('Table','Table'[ID]))
Return
CALCULATE(MAX('Table'[Active Status at Date]),'Table'[Dates]=a)
Y verás:
O puede crear una columna calculada como se muestra a continuación:
Column =
var a =CALCULATE(MAX('Table'[Dates]),ALLEXCEPT('Table','Table'[ID]))
var b= CALCULATE(MAX('Table'[Active Status at Date]),FILTER('Table','Table'[ID]=EARLIER('Table'[ID])),'Table'[Dates]=a)
Return
b
Y verás:
Para el archivo .pbix relacionado, haga clic aquí.
@v-kelly-msft Gracias por responder!
Usé el enfoque de columna calculado ya que no estoy muy familiarizado con las medidas. Funcionó muy bien. Era realmente una solución elegante con esas variables.
Todavía estoy tratando de conseguir mi cabeza alrededor de la función EARLIER().
¡Gracias por tu ayuda!
Prueba nuevas columnas
Max date = maxx(filter(table,table[ID] = earlier(table[ID]) ),table[Date])
Max Status = maxx(filter(table,table[ID] = earlier(table[ID]) && table[date] = earlier(table[Max date ])),table[status])
@amitchandak Gracias por tomarse el tiempo para responder. ¡Tu solución funcionó! Todavía estoy tratando de entender lo que hace EARLIER(), pero al jugar con el código, parece que aplica el resultado de la ecuación a todas las filas que cumplen con las condiciones del filtro en lugar de solo la fila donde se encuentra maxx().
Hola @rfhickey ,
Por favor, intente utilizar la siguiente medida, funciona en mi escritorio:
Measure 8 = CALCULATE(MAX('Table (2)'[Most Recent Active Status]),FILTER(ALL('Table (2)'[Dates]),'Table (2)'[Dates] = CALCULATE(MAX('Table (2)'[Dates]),ALLEXCEPT('Table (2)','Table (2)'[ID]))))
Aiolos Zhao
Proud to be a Super User!
@AiolosZhao Gracias por tomarse el tiempo para responder a mi pregunta. ¡Probé tu solución, y funcionó! Todavía estoy tratando de entender cómo las medidas difieren de las columnas calculadas. Parece que no se pueden usar medidas en la vista Datos, pero las medidas se pueden usar al crear una tabla en la vista Informe. ¿Es eso cierto?