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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Buscar LatestResultar dinámicamente: Medida que muestra demasiados valores

Hola a todos,

Tengo un problema con mi mesa. Quiero poder mostrar solo el último resultado basado en la versión. La versión siempre cambia dependiendo de mi filtro visual. LastModified es una columna real en mi conjunto de datos y LatestResult es una medida para calcular el último resultado dinámicamente. Hasta ahora, bien. La tabla se parece un poco a la siguiente:

IDENTIFICACIÓNVersiónResultadoLastModifiedLatestResult
123.5Pasar23.11.202125.11.2021
123.6Fracasado25.11.202125.11.2021
223.5Pasar23.11.202123.11.2021
323.5Pasar23.11.202130.11.2021
323.6Pasar25.11.202130.11.2021
324Pasar30.11.202130.11.2021
423.7Fracasado27.11.2021

27.11.2021

Ahora necesito cambiar esa medida latestResult para que dé TRUE/FALSE o 0/1, IF(LastModified = LatestResult).

La medida se ve así:

LatestResult =
var MaxDate = CALCULATE(MAXX(RESULT,[LASTMODIFIED]),
ALLSELECTED([Versión],[RESULTADO],[ÚLTIMO MODIFICADO]))

volver MaxDate
Pensé en hacer esto para obtener tanto la fecha máxima como la actual y luego compararla para poder filtrar después de >1 para obtener el último resultado:
LatestResult =
var MaxDate = CALCULATE(MAXX(RESULT,[LASTMODIFIED]),
ALLSELECTED([Versión],[RESULTADO],[ÚLTIMO MODIFICADO]))

var currentDate = CALCULATE(MAXX(RESULT,[LASTMODIFIED]),
ALLSELECTED([LASTMODIFIED]))

return IF(MaxDate = currentDate, 0,1)
Pero de alguna manera esto me da más de 1000 filas en la tabla en lugar de los pocos resultados que realmente están allí.
¿Qué me estoy perdiendo, por qué me está dando más filas de las que debería haber? ¿Me falta algún contexto o filtros para aplicar?
¿O cómo puedo lograr que un filtro de medición dinámica como este muestre solo el último resultado?
PD: No puedo usar columnas calculadas ni ningún PowerQuery porque es solo para uso a nivel visual y siempre cambiará
en función de la selección que realice el usuario.

Encontré a alguien con casi el mismo problema:
Dax - Declaración IF que compara dos medidas
1 ACCEPTED SOLUTION

@Luca1234 , Pruebe una nueva medida o una nueva columna

medida =
var _1 = calculate(Lastnonblankvalue(Table[LastModified], max(Table[Version])), filter(allselected(Table), Table[ID] = max(Table[ID])))
devolución
if( max(Table[Version]) =_1, true(), false())

nueva columna =
var _1 = maxx(filter(Table, [ID] = earlier([ID]) ), [LastModified])
var _2 = maxx(filter(Table, [ID] = earlier([ID]) && LastModified] = _1 ), [Version])
devolución
if( (Tabla[Versión]) =_2, true(), false())

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@Luca1234 , Pruebe una medida como

medida =
var _1 = calculate(Lastnonblankvalue(Table[LastModified], max(Table[Version])), filter(allselected(Table), Table[ID] = max(Table[ID])))
devolución
calculate(Max(Table[Result]), filter( allselected(Table), Table[ID] = max(Table[ID]) && Table[Version] =_1))

@amitchandak Gracias por su respuesta.

Esta medida ahora devuelve el resultado para cada ID. Pero quiero tener un indicador como TRUE/FALSE o 0/1 si es el último resultado o no. Así que su medida me da resultados como este:

IDENTIFICACIÓNVersiónResultadoLastModifiedLatestResultmedir
123.5Pasar23.11.202125.11.2021Fracasado
123.6Fracasado25.11.202125.11.2021Fracasado
223.5Pasar23.11.202123.11.2021Pasar
323.5Pasar23.11.202130.11.2021Pasar
323.6Pasar25.11.202130.11.2021Pasar
324Pasar30.11.202130.11.2021Pasar
423.7Fracasado27.11.2021

27.11.2021

Fracasado

Lo que quiero lograr es algo como esto:

IDENTIFICACIÓNVersiónResultadoLastModifiedLatestResultmedir
123.5Pasar23.11.202125.11.2021Falso
123.6Fracasado25.11.202125.11.2021Verdadero
223.5Pasar23.11.202123.11.2021Verdadero
323.5Pasar23.11.202130.11.2021Falso
323.6Pasar25.11.202130.11.2021Falso
324Pasar30.11.202130.11.2021Verdadero
423.7Fracasado27.11.2021

27.11.2021

Verdadero

Si pudiera lograr esto, entonces podría filtrar después de solo TRUE y obtener solo el último resultado dinámicamente.

¿Alguna idea de cómo hacer eso? Gracias @amitchandak

@Luca1234 , Pruebe una nueva medida o una nueva columna

medida =
var _1 = calculate(Lastnonblankvalue(Table[LastModified], max(Table[Version])), filter(allselected(Table), Table[ID] = max(Table[ID])))
devolución
if( max(Table[Version]) =_1, true(), false())

nueva columna =
var _1 = maxx(filter(Table, [ID] = earlier([ID]) ), [LastModified])
var _2 = maxx(filter(Table, [ID] = earlier([ID]) && LastModified] = _1 ), [Version])
devolución
if( (Tabla[Versión]) =_2, true(), false())

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors