背景我正在尝试基于一个事务文件在Power中构建一个资产负债表。我的报告有一个交易表,其中包含经典的会计交易(帐号、金额、描述、日期等)、分配表,将账户分配给资产负债表、损益表或现金流层次结构(账户、PLlvl1、PLlvl2等)。还有日历表。
构建一个正确的运行总量度量来对所有以前的事务进行求和,创建一个基本的平衡度量是非常直接的,请参阅下面的代码。
Balance =
CALCULATE(
SUM ( data[Amount] ) ;
FILTER(
ALL( '$Calendar' );
'$Calendar'[Date] <= MAX( '$Calendar'[Date] )
)
)Problem --在低分辨率(年份)下可以很好地工作,但是,当按月进行一个月的概述时,求和只在有变异的时期显示值,其他所有月份都是空的。

在这个简化的例子中,我想要的结果是空白处结转上一段时间的值,-350也显示在二月和三月,-700在五月和六月等等,但是我似乎想不出一个正确的方法。
尝试到目前为止,我已经尝试在日历表和accounts表之间创建一个巨大的交叉表,但是一旦我导入更多的数据,报告就会很快停止。此外,我尝试了使用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))似乎什么也没做我想做的事。
有人能帮我找到正确的方向吗?
小提琴是暂时可用的这里
发布于 2020-02-19 23:37:29
只需将数据模型关系从“两者”改为“单一”:

永远不要,永远不要使用双向关系,除非你没有其他选择(除了一些非常罕见的情况外,这种情况几乎从来没有发生过,这里的情况并非如此)。
您还可以简化您的度量:
Attempt 3 =
VAR Current_Date = MAX( '$Calendar'[Date] )
RETURN
CALCULATE(
SUM ( data[Amount] ) ,
'$Calendar'[Date] <= Current_Date
)结果:

https://stackoverflow.com/questions/60310696
复制相似问题