显示两个财政年度的到期债务-函数“ IF”标量表达式必须是CurrentGroup()上的聚合函数

时间:2019-02-11 08:30:58

标签: powerbi dax accounting

带有完整复制here的像素

背景

我正在尝试创建一个堆积图,显示两个财政年度(今年,去年)中的债务(按债务期限分组),如下所示:

aged debt

这是我的模特:

enter image description here

“很多财务年度”使我可以使用切片器,让用户选择单个财务年度,但是在后台,它将过滤为2年(选定的FY和上一个FY)。

债务的计算本身需要将评估范围扩展到所有年份(直到在月份切片器中选择的月份为止),因为债务本身可能会追溯很多年。

AgedDebtBands是定义用于债务的年龄段的表。我对债务进行年龄划分的方法大致基于here

我用来使债务老化的措施是:

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])

问题

我可以将度量值(Value)和AgedDebtBands(Legend)的“ Band”列拖动到表格或堆叠图表中,并获得当年的账龄债务-这部分工作得很好。

但是,当我将日期中的“会计年度”包含到图表(轴)中时,出现以下错误:

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().

我花了几天的时间尝试各种不同的方法来使它正常工作,并且总是很亲密,但从来没有。任何帮助,我们将不胜感激!

0 个答案:

没有答案