Динамический фильтр DAX с использованием двух столбцов из связанной таблицы - PullRequest
0 голосов
/ 18 мая 2018

Мне нужно сделать несколько простых вычислений с использованием DAX, но я не уверен, как мне добиться того же результата, что и в формулах Excel.Прежде всего, моя структура данных выглядит так, как на скриншоте:

Matrix with data

Меры исходят из одной таблицы, а PactDelivered являетсяатрибут из связанной таблицы, который связан отношениями.

Все, что мне действительно нужно сделать, это перевести формулу, как показано ниже, в DAX: enter image description here

При вычислении B3- не возникает никаких проблемC3-D3 , но у меня есть проблема, как вычислить часть - B4 + C4 .Конечно, он должен быть динамическим, поэтому, если речь идет о вычислении результата для пакета № 10, то для этого потребуются цифры из чисел 10 и 11.

РЕДАКТИРОВАТЬ:

После изменения кода из Алексис Олсон У меня есть что-то вроде ниже, но это еще не работает.Обратите внимание, что PactDelivered находится в другой таблице, чем меры.Не зная почему, но он рассчитывает результат на пачках в соответствии со значением NextPack.Я попытался добавить еще одну переменную, которая была в основном NextPack -1, и попытался вычислить суммы по возврату, используя ее, но также не сработал.

Cancellations:=

var NextPack = MAX('Order'[PactDelivered]) + 1

var NextOrders = CALCULATE(SUM('Fact DropOff'[OrdersSentOut]) + sum('Fact DropOff'[OrdersReturned]), 'Order'[PactDelivered] = NextPack)

return  SUM ('Fact DropOff'[OrdersSentOut]) - SUM ('Fact DropOff'[OrdersReturned] ) - SUM('Fact DropOff'[ActiveSubscriptions]) -  NextOrders

after edits

EDIT2: выборка данных из факта: fact

Из измерения: dimension

Отношение: Relationship

1 Ответ

0 голосов
/ 18 мая 2018

Попробуйте меру, подобную этой:

Measure = 
    VAR NextPact = MAX(Orders[PactDelivered]) + 1
    VAR NextOrders = CALCULATE(SUM(Orders[OurdersSentOut]) - SUM(Orders[OrdersReturned]),
                         Orders[PactDelivered] = NextPact)
    RETURN SUM(Orders[OurdersSentOut]) - SUM(Orders[OrdersReturned]) -
           SUM(Orders[ActiveSubscriptions]) - NextOrders

Сначала мы рассчитываем следующий индекс, беря текущий индекс и добавляя 1. Затем вы вычисляете отосланные минусовые доходы для этого индекса.Наконец, вычтите это из текущего вычисления строки.

...