установка последнего дочернего элемента в таблице dax

Balance:=CALCULATE(SUM(Fact[Local]), 'select'[select Type]= "ACTION")

В многомерной модели я мог бы просто выбрать «Агрегатную функцию как последний дочерний элемент» в свойствах, но что я должен сделать в таблице, чтобы получить последний дочерний элемент? Или если мне нужно написать формулу Dax, что я должен добавить из формулы выше?


person Hello    schedule 31.08.2015    source источник


Ответы (1)


Предполагая, что у вас есть непрерывная таблица дат, эквивалент в DAX для LastChild:

CALCULATE ([Measure], LASTDATE(DateTable[Date]))

Если у вас нет непрерывной таблицы дат (т. е. вы используете дегенеративное измерение даты и т. д.), вы должны использовать

CALCULATE ([Measure], LASTNONBLANK(TableWithDate[Date], [Measure]))

ОБНОВЛЕНИЕ: с DAX почти всегда лучше создавать промежуточные меры для создания окончательной меры для повторного использования, ремонтопригодности, отладки и т. д.

Поэтому сначала просто используйте существующую меру баланса.

Balance:=CALCULATE(SUM(Fact[Local]), 'select'[select Type]= "ACTION")

Тогда сделайте

LastBalance:=CALCULATE([Balance], LASTNONBLANK(CalendarMonth[MonthKey], [Balance]) )
person Kyle Hale    schedule 31.08.2015
comment
Баланс: =РАССЧИТАТЬ(СУММА(Факт[Локальный]), 'выбрать'[выбрать тип]= ДЕЙСТВИЕ, ПОСЛЕДНИЙНЕПУСТОЙ(КалендарьМесяц[КлючМесяца], СУММА(Факт[Локальный]), 'выбрать'[выбрать Тип]= ДЕЙСТВИЕ)) Итак Я сделал эту формулу, но она дает мне слишком много аргументов... как я могу это исправить? - person Hello; 01.09.2015
comment
Если я использую эту формулу, ничего не происходит. Разве мне не нужно помещать SUM(Fact[Local]), 'select'[select Type]= ACTION в эту формулу, чтобы сделать результат последней из этих частей? - person Hello; 01.09.2015
comment
Во-первых, что вы имеете в виду, ничего не происходит? А во-вторых, нет у вас нет. Вот что я имею в виду под промежуточными мерами. - person Kyle Hale; 01.09.2015
comment
Баланс = промежуточная мера. Каждый раз, когда вы используете меру баланса, механизм VertiPaq будет использовать базовую меру для своего расчета. В основном это делает эту замену для вас. - person Kyle Hale; 01.09.2015
comment
Скажем, для данного контекста Balance = 100. Тогда, если бы у меня была мера, которая говорила [DoubleBalance]=[Balance]*2, она вернет 200. - person Kyle Hale; 01.09.2015
comment
я имел в виду, что если я наберу формулу, которую вы мне дали, она не даст мне никакой ошибки, а просто покажет формулу в столбце измерения, и я не могу использовать ее для измерения - person Hello; 01.09.2015
comment
о, мой плохой, формула работает, но дает мне ошибку, что «баланс» не может быть найден или не может использоваться в этом выражении. Есть ли у вас какие-либо идеи? (Большое спасибо за помощь мне) - person Hello; 01.09.2015
comment
Можете ли вы предоставить несколько скриншотов того, как вы используете эти меры? Трудно сказать вам, что нужно исправить, поскольку я действительно не вижу, как вы используете меры, которые я предоставил. - person Kyle Hale; 01.09.2015
comment
о, я должен использовать эти фильтры lastnonblank, где выберите тип = ACTION, потому что я использую для текущего и фактического баланса. У вас есть идея поместить фильтр внутри функции lastnonblank? - person Hello; 01.09.2015