Отображение устаревшего долга за два финансовых года - скалярные выражения функции «IF» должны быть функциями агрегирования по CurrentGroup () - PullRequest
0 голосов
/ 11 февраля 2019

Pbix с полным воспроизведением здесь

Фон

Я пытаюсь создать диаграмму с накоплением долга, сгруппированную по возрастудолга за два финансовых года (в этом, прошлом году), например:

aged debt

Вот моя модель:

enter image description here

Многие «Финансовые годы» позволяют мне использовать слайсер, который позволяет пользователю выбрать один финансовый год, но в фоновом режиме он фильтруется до 2 лет (выбранный финансовый год и предыдущий финансовый год).

Сам расчет долга должен расширить контекст оценки до ВСЕХ лет (вплоть до месяца, выбранного в срезе месяца), так как сам долг может вернуться к числулет.

AgedDebtBands - это таблица, которая определяет возрастные диапазоны для использования в долгах.Мой подход к распределению долга по возрасту основывается на подходе здесь

Мера, которую я использую для определения старения долга:

AgedDebt = 
VAR selectedDate = [End of selected month]
VAR bandStart = MAX(AgedDebtBands[BandStart])
var bandEnd = MAX(AgedDebtBands[BandEnd])

RETURN
    SUMX(
        CALCULATETABLE(
            GROUPBY(
                Debt,
                [InvoiceId], 
                [InvoiceAmount],
                [InvoiceDate],
                "Payment Amount", SUMX(CURRENTGROUP(), IF(Debt[PaymentDate] <= selectedDate, Debt[PaymentAmount], 0))),
            ALL('Financial Years'),
            ALL(Dates[Fiscal Month]),
            Debt[InvoiceDate] <= selectedDate,
            DATEDIFF( Debt[InvoiceDate], selectedDate, DAY) >= bandStart,
            DATEDIFF( Debt[InvoiceDate], selectedDate, DAY) <= bandEnd),
        [InvoiceAmount] - [Payment Amount])

Проблема

Я могу перетащить меру (Значение) и столбец «Диапазон» из AgedDebtBands (Легенда) в таблицу или составную диаграмму, и я получу просроченный долг за текущий год - эта частьработает отлично.

Однако, когда я включаю «Финансовый год» из Даты в график (ось), я получаю следующую ошибку:

MdxScript(Model) (11, 13) Calculation error in measure 'Test Measures'[AgedDebt]: Function 'IF' scalar expressions have to be Aggregation functions over CurrentGroup(). The expression of each Aggregation has to be either a constant or directly reference the columns in CurrentGroup().

Я потратил пару днейпри этом пробуя различные методы, чтобы заставить это работать, и всегда быть рядом, но никогда не совсем там.Любая помощь в этом очень ценится!

...