скорее, чем
оложим, у меня есть следующая таблица:
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 }
}
)
Я хочу меру, которая возвращает вершинуGroup
основываясь на егоValue
которые работают внутри или снаружиYear
контекст фильтра. То есть его можно использовать в матричном визуале, например, так (включая строку Всего):
Нетрудно найти максимальное значение, используя DAX:
MaxValue = MAX(TableA[Value])
или же
MaxValue = MAXX(TableA, TableA[Value])
Но как лучше всего искатьGroup
что соответствует этому значению?
Я пробовал это:
Top Group = LOOKUPVALUE(TableA[Group],
TableA[Year], MAX(TableA[Year]),
TableA[Value], MAX(TableA[Value]))
Тем не менее, это не работает для строки Total, и я бы предпочел не использоватьYear
в меру, если это возможно (вероятно, есть другие столбцы, о которых нужно беспокоиться в реальном сценарии).
Примечание: Я даю пару решений в ответах ниже, но я бы хотел увидеть и другие подходы.
В идеале было бы неплохо, если бы вMAXX
функция, которая будет указывать, какой столбец возвращать после нахождения максимума, очень похоже наMAXIFS Функция Excel имеет.