Как в Power BI вернуть метку категории на основе максимального значения для всех категорий, возвращаемых мерой с помощью DAX?

Здесь вам нужны рекомендации по DAX, чтобы вернуть текстовое поле на основе максимума, возвращаемого мерой, примененной к этому столбцу.

т.е. у нас есть таблица [category_column] и [measure], а меры ссылаются на столбцы в других таблицах с двусторонними отношениями.

Любая помощь очень ценится, очень застряла!

заранее спасибо


person esteebie    schedule 15.01.2020    source источник
comment
что ты уже испробовал? Не могли бы вы предоставить некоторые данные и структуру своей таблицы, чтобы мы понимали вашу отправную точку и то, что вы пытаетесь решить.   -  person Aldert    schedule 15.01.2020


Ответы (2)


Если я правильно понимаю, я думаю, вы хотите провести меру по значениям столбца и вернуть строку с максимальным значением меры. Что-то вроде этого?

newMeasure = 
    VAR vals = SUMMARIZE('Table', 'Table'[Column1], "myMeasure", [Measure])
    VAR measureMax = MAXX(vals, [myMeasure])
    VAR value = CALCULATE(MAXX(FILTER(vals, [myMeasure] = measureMax), [Column1]))
RETURN
    value  
person Rob C    schedule 17.01.2020
comment
На самом деле мне пришло в голову, что вы, вероятно, могли бы упростить это, заключив сводную таблицу в TOPN с N = 1 и упорядочив ее по мере. Однако у меня не было возможности протестировать. - person Rob C; 17.01.2020
comment
Спасибо, Роб Си! Во-первых, приносим свои извинения за задержку, этот проект был приостановлен на некоторое время, и только что нужно было проверить предложение ... которое сработало и даже ответило на последующий вопрос, который заключался в том, как вернуть n-ю высшую категорию ... Я могу сделать с предложением TOPN и изменить MAXX на MINX, то есть TOPN (5, SUMMARIZE ('Table', 'Table' [Column1], myMeasure, [Measure]), [myMeasure]), а затем MINX (vals, [myMeasure] ) возвращает текст, соответствующий 5-му по величине значению. - person esteebie; 04.02.2020
comment
ps Единственное, что мне пришлось изменить, это значение имени переменной, которое, я думаю, является зарезервированным ключевым словом. - person esteebie; 04.02.2020

Если ваш столбец, который будет использоваться для max, - это Column1, а ваше текстовое поле - Column2, что-то вроде следующего может работать:

Measure = 
VAR Max_Value =max('Table'[Column1])
Return CALCULATE(MAX('Table'[column2]),'Table'[Column1]=Max_value)

Если это не то, что вы ищете, вам необходимо более подробно объяснить свои требования, надеюсь, на примерах.

person CR7SMS    schedule 15.01.2020
comment
Спасибо, что ответили на CR7SMS. Поскольку значения поступают из меры, а не из столбца, это, к сожалению, не работает. В вашем коде замена max ('Table' [Column1]) на max ([measure]) не выполняется, поскольку max требуется имя столбца. - person esteebie; 16.01.2020
comment
Как рассчитывается мера? - person CR7SMS; 16.01.2020
comment
Привет, мера довольно сложная - взвешенная сумма четырех других мер, взятая из таблиц, которые можно выбрать на отдельной вкладке конфигурации. Четыре меры также задействованы (я бы сказал, слишком сложно вставить сюда), и все они взяты из разных таблиц, но они связаны в модели данных одной и той же категорией (Столбец 2, как указано выше). - person esteebie; 17.01.2020