Return valor superior ordenado por otra columna
Supongamos que tengo una tabla de la siguiente manera:
TableA =
DATATABLE (
"Year", INTEGER,
"Group", STRING,
"Value", DOUBLE,
{
{ 2015, "A", 2 },
{ 2015, "B", 8 },
{ 2016, "A", 9 },
{ 2016, "B", 3 },
{ 2016, "C", 7 },
{ 2017, "B", 5 },
{ 2018, "B", 6 },
{ 2018, "D", 7 }
}
)
Quiero una medida que devuelva la parte superiorGroup
basado en suValue
que funcionan dentro o fuera de unaYear
contexto de filtro. Es decir, se puede usar en una matriz visual como esta (incluida la fila Total):
No es difícil encontrar el valor máximo con DAX:
MaxValue = MAX(TableA[Value])
MaxValue = MAXX(TableA, TableA[Value])
Pero cuál es la mejor manera de buscar elGroup
que corresponde a ese valor?
He intentado esto:
Top Group = LOOKUPVALUE(TableA[Group],
TableA[Year], MAX(TableA[Year]),
TableA[Value], MAX(TableA[Value]))
in embargo, esto no funciona para la fila Total y prefiero no tener que usar laYear
en la medida si es posible (es probable que haya otras columnas de las que preocuparse en un escenario real).
Nota Estoy proporcionando un par de soluciones en las respuestas a continuación, pero me encantaría ver otros enfoques también.
dealmente, sería bueno si hubiera un argumento adicional en elMAXX
unción @ que especificaría qué columna devolver después de encontrar el máximo, al igual que la MAXIFSa función @ Excel tiene.