В Power BI у меня есть следующее выражение DAX:
Others =
VAR mymodel =
VALUES ( 'Compare Data'[Model] )
RETURN
CONCATENATEX (
EXCEPT (
CALCULATETABLE (
VALUES ( 'Full Data'[Vendor Name] ),
'Full Data'[Engine Model] IN mymodel
),
VALUES ( 'Compare Data'[Name] )
),
[Vendor Name],
", "
)
У меня нет никаких знаний в области программирования, но я знаю, что эта мера Others была записана в ответ только на слайсер "Model" .
Есть ли способ заставить эту меру ответить и на «Сравнить данные» [Модель] и на «Сравнить данные» [Группа] , при этом остальная часть кода остается прежней?
У меня также есть этот код, который должен рассчитывать средние затраты альтернатив и давать тот же результат, что и первый код. ОДНАКО, они не дают одинаковых результатов при выборе слайсера.
Measure 2 =
VAR __vendor = MAX('Compare Data'[Name])
VAR __model = MAX('Compare Data'[Model])
VAR __group = MAX('Compare Data'[Group])
VAR __table = FILTER('Full Data',([Vendor Name]<>__vendor
&& [Engine Model] = __model) && [Material Group] = __group)
VAR __vendorAverage = AVERAGEX(FILTER(ALL('Compare Data'),
'Compare Data'[Name] = __vendor),[Cost])
VAR __othersAverage = AVERAGEX(__table,[Repair Cost])
RETURN
__othersAverage
Я сомневаюсь, что эта строка является причиной для получения тех же результатов:
VAR __table = FILTER('Full Data',([Vendor Name]<>__vendor
&& [Engine Model] = __model) && [Material Group] = __group)
Что я предполагаю из написанных здесь критериев, так это то, что в таблице «Полные данные» возвращаются только те значения в столбце «Имя поставщика», которые НЕ РАВЕН «Сравнить данные» [Имя ] И РАВНО Любые значения «Сравнить данные» [Модель] И РАВНО Любые значения «Сравнение данных» [ГРУППА].
Я думаю, что здесь что-то не так с оператором DAX AND (&&). Не могли бы вы показать мне, как я могу получить его, чтобы получить результаты, которые оба соответствуют следующим критериям:
- «Полные данные» [Имя поставщика] <> «Сравнение данных» [Имя]
И
- «Полные данные» [Модель двигателя] = «Сравнить данные» [Модель] ИЛИ «Полные данные» [Группа материалов] = «Сравнить данные» [Группа]
Я пробовал это:
VAR __table = FILTER('Full Data',(([Vendor Name]<>__vendor
&& [Engine Model] = __model))
|| ([Vendor Name]<>__vendor &&[Material Group] = __group))
но я не думаю, что это то, чего я хочу. Мера по-прежнему иногда возвращает неправильные значения.
Если у вас есть идеи, не могли бы вы мне помочь? Большое вам спасибо!