资产负债表计量DAX(填空)

时间:2020-02-19 23:13:23

标签: powerbi dax

背景我正在尝试基于事务文件在Power BI中构建资产负债表。我的报告有一个包含经典会计交易(帐户号,金额,描述,日期等)的交易表,一个将资产分配到资产负债表,损益或现金流量层次结构(帐户,PLlvl1,PLlvl2等)的分配表。表。

构造一个适当的运行总计指标以汇总所有先前的交易以创建基本余额指标非常简单,请参见下面的代码。

Balance =     
    CALCULATE( 
        SUM ( data[Amount] ) ; 
        FILTER(
            ALL( '$Calendar' );
            '$Calendar'[Date] <= MAX( '$Calendar'[Date] )
        )
    )

问题在低分辨率(年份)下可以正常工作,但是,当进行逐月概览时,总和仅显示发生突变的时期的值,所有其他月份均保持空白。

enter image description here

所需的解决方案:在这个简化的示例中,我希望得到的结果是空白值保留上一时期的值,-350也在2月和3月显示,-700也在5月和June等。但是我似乎无法找到一种正确执行此操作的方法。

尝试到目前为止,我已经尝试在日历表和帐户表之间创建一个巨大的交叉表,但这使报表在导入更多数据后很快就停止了。此外,我尝试以几种方式使用LASTNONBLANK()TOTALYTD()和其他方式,甚至尝试了更手动的方式,例如:

Attempt 6 = 
var LastNonBlankDate=
    CALCULATE(
        MAX('$Calendar'[Date]);
        FILTER(
            ALL('$Calendar'[Date]);
            '$Calendar'[Date]<=MAX('$Calendar'[Date]) && SUM(data[Amount])<>0)
        )
RETURN
    CALCULATE(SUM(data[Amount]);
    FILTER(ALL('$Calendar');'$Calendar'[Date]=LastNonBlankDate))

似乎什么也没做。.

有人可以在正确的方向帮助我吗?

小提琴是暂时可用的here

1 个答案:

答案 0 :(得分:1)

只需将您的数据模型关系从“两个”更改为“单个”:

enter image description here

永远不要使用双向关系,除非您别无选择(除非有一些非常罕见的情况,否则几乎不会发生这种情况)。

您也可以稍微简化一下测量方法:

Attempt 3 = 
VAR Current_Date = MAX( '$Calendar'[Date] )
RETURN
    CALCULATE( 
        SUM ( data[Amount] ) , 
        '$Calendar'[Date] <= Current_Date
    )

结果:

enter image description here

相关问题