#dax #powerpivot
Вопрос:
Я пытаюсь использовать функцию LOOKUPVALUE, но у меня более одного идентификатора, и я возвращаю ошибку «Таблица с несколькими значениями была предоставлена там, где ожидалось одно значение».
Например: мне нужно заполнить все строки в «Measure_id».
Идентификатор группы | ID | Описание | Идентификатор измерения |
---|---|---|---|
112233 | 0 | Закрыть | 12345 |
112233 | 12345 | Открыть | 12345 |
112233 | 0 | Закрыть | 12345 |
223344 | 0 | Закрыть | 23456 |
223344 | 0 | Закрыть | 23456 |
223344 | 23456 | Открыть | 23456 |
112233 | 12345 | Открыть | 12345 |
Комментарии:
1. Какова ваша конечная цель? Как выглядят ваши данные?
Ответ №1:
LOOKUPVALUE
не совместим в измерении DAX. Вы можете заменить его следующим.
_return =
VAR _1 =
MAX ( 'fact'[Group_ID] )
VAR _2 =
CALCULATE (
MAX ( 'fact'[ID] ),
ALL ( 'fact' ),
FILTER ( VALUES ( 'fact'[Group_ID] ), 'fact'[Group_ID] = _1 )
)
RETURN
_2
Ответ №2:
Более простой способ вычисления этого-использовать ALLEXCEPT()
в такой мере:
Measure =
CALCULATE (
MAX ( 'Table'[ID] ) ,
ALLEXCEPT ( 'Table' , 'Table'[Group_ID] )
)
Это дает тот же результат, что и @smpa01, но является гораздо более эффективным показателем, примерно на 30-40% быстрее в этом наборе данных, согласно DAX Studio
анализу.