Как получить максимальное значение в PowerBI для показателя для каждой категории

#powerbi #dax #powerbi-desktop #powerbi-datasource

#powerbi #dax #powerbi-рабочий стол #powerbi-источник данных

Вопрос:

я составляю отчет powerbi, который должен дать мне категорию с максимальным значением дефекта (не всего)

Это мой набор данных PowerBI Dataset

Я пытаюсь использовать следующую формулу DAX

 NO 1 Defect = LOOKUPVALUE('Camera Data'[Attribute],'Camera Data'[Value],MAX('Camera Data'[Value]))
 

И я использую карту для отображения категории максимального значения. Это работает нормально до тех пор, пока у меня не будет одного максимального значения. в тот момент, когда оно становится больше 1, оно выдает ошибку

 Multiple values supplied where only 1 value was expected
 

Все, что я хочу, это только первое из этой категории максимального значения, которое должно отображаться на карте. Как я могу это сделать?

PS: для извлечения данных из изображения вы можете использовать этот сайт https://extracttable.com / это будет работать бесплатно, и 1 изображение будет легко преобразовано в набор данных.

Ответ №1:

Простой способ получить атрибут, соответствующий максимальному значению, — использовать CALCULATE для применения контекста фильтра к строкам с максимальным значением, а затем использовать MAX() или MIN() для получения только одного значения в случае связей

 NO 1 Defect = 
VAR MaxValue = MAX( 'Camera Data'[Value] )
RETURN
CALCULATE(
    MAX('Camera Data'[Attribute]),
    'Camera Data'[Value] = MaxValue
)
 

Если все атрибуты должны отображаться в случае связей, то можно использовать функцию CONCATENATEX()

 NO 1 Defect List = 
VAR MaxValue = MAX( 'Camera Data'[Value] )
RETURN
CALCULATE(
    CONCATENATEX('Camera Data', 'Camera Data'[Attribute], ", " ),
    'Camera Data'[Value] = MaxValue
)
 

В случае, если строки «Общего количества», которые отображаются на вашем изображении, являются фактическими строками, которые необходимо исключить, следует использовать альтернативное определение для переменной MaxValue

 VAR MaxValue = CALCULATE(
                    MAX( 'Camera Data'[Value] ), 
                    'Camera Data'[Attribute] <> "Total Count"
               )