#excel #powerbi #dax #powerpivot
#excel #powerbi #dax #powerpivot
Вопрос:
У меня есть огромная таблица Order-Master, которая содержит полную производственную маршрутизацию для каждого заказа. Теперь я хотел бы определить последнее отслеживаемое количество в этой таблице. Таблица имеет структуру, подобную:
- Номер заказа
- Prio 1 (число)
- Prio 2 (число)
- Prio 3 (текст)
- Количество
Мера должна сначала смотреть на Prio 1, затем на Prio 2 и, наконец, на Prio 3. Prio и Prio 2 — это возможные числа от 2 до 99. В Prio 3 возможны разные текстовые строки, но для отслеживаемого количества необходимы только «OX» и «OK». Здесь «OX» всегда имеет больший приоритет, чем «OK».
Как бы вы построили это как показатель DAX? MAXX, CALCULATEDTABLE, РАНГ, TOPN?
Это мой первый подход:
VAR Max1 =
MAXX (
ALLSELECTED ( 'Order Master' ),
'Order Master'[Prio 1]
)
VAR Max2 =
MAXX (
ALLSELECTED ( 'Order Master' ),
'Order Master'[Prio 2]
)
RETURN
MAXX(
FILTER(
'Order Master',
'Order Master'[Prio 1] = Max1 amp;amp; 'Order Master'Prio 2] = Max2
),
'Order Master'[Quantity]
)
Комментарии:
1. Лучший вариант — предоставить некоторые образцы данных и то, какой вывод вам нужен из них.
2. Являются ли Prio 2 и 3 ограничителями, когда Prio 1 одинаковый для нескольких заказов?
Ответ №1:
Я бы перевел «OX» и «OK» в числа, как и другие приоритеты. Это можно сделать очень просто, используя формулу IF:
=IF(A1="OX";0;IF(A1="OK";1;-1))
(Очевидно, в качестве примера)
Если, однако, под «OX» вы подразумеваете все возможные значения для «X», такие как «O1», «O32», …, тогда я бы предложил вам написать функцию VBA для выполнения упомянутого перевода.
Комментарии:
1. Спасибо за ваш ответ! Как бы вы изменили эти значения в DAX-мере? Я работаю в Power BI. Нет, означает именно «OX» и «OK».