Powerpivot DAX措施:总结“如果”
我正在查看一些公司间应收账款(AR)数据。 我们假设,我有一对相互交易的公司。 除了这些公司之外的所有公司都使用相同的会计系统,我可以从中检索数据。 对于奇数公司,我没有访问公司间交易的AR数据。 作为代理,我从其他公司获取应付账款(AP)数据。 我的目标是准备一份报告,显示所有公司的总体AR数据(由中央会计系统公司的AR数据和这些公司对一家公司的AP数据构build而成)
我现在在Powerpivot中有三个表格,持有AR数据(公司代码,AR帐号和金额)的“表格AR”,持有应付帐款数据的“表格AP”和持有公司代码的“查阅表” AR代码和一个专栏告诉我公司是否在中央会计系统(本专栏只是保留信息“直接”或“间接” – 反映我收集数据的方式)
每当公司代码链接到查询表中的“直接”时,我的度量应该总结AR列表中由“公司代码”列过滤的数量。 当公司代码是“间接”时,度量值应该总结AP列表中由“AP号码”列过滤的数量。
这个想法是build立一个DAX措施,总结了这些线上的AR金额:
如果公司(在“查表”中)=“直接”,则在“表格AR”的栏目“公司代码”中匹配时使用公司代码和“表格AR”中的所有金额。
否则,如果公司(“查询表”)=“间接”,则在匹配列“AR帐户号”时使用“查询表”中的AP帐户号码并将“表格AP”中的所有金额相加。
也许下面的图片可以进一步澄清我的想法。
我非常感谢一些想法,我可以如何为上述build立一个DAX措施。
非常感谢!
这是PowerPivot的一个很好的用法,尽pipe你的虚拟数据有一些让我困惑的东西,但这应该回答你的问题。
我假设你的AR和AP表与company code
和AR acc no
分别有你的查询表的关系。 这意味着这两列在现实世界中必须是唯一的!
理论上你可以把这个写成一个大的措施,但这不是很好的做法 – 我将把它分解成4个措施。
首先是对每个AR和AP表中的数量求和的度量:
[AR Amount] = SUM(AR[amount]) [AP Amount] = SUM(AP[amount])
接下来的措施就是IF
部分,也处理公司代码具有多个值的情况(即,会导致错误的总数)。 这里的关键是,您不能在测量中放置“裸”列引用,所以您在访问列上使用VALUES
:
[Raw Measure] = IF ( HASONEVALUE ( lookup[company code] ), IF ( VALUES ( lookup[Access] ) = "Direct", [AR Amount], [AP Amount] ), BLANK () )
这里的问题是你的总数 – 也许你关心,也许你不这样做,但上面的措施会使他们成为空白! 下面的测量迭代公司代码,然后总结合计值(如果有的话,也可以用于小计):
[Iterated Measure] = SUMX(VALUES(lookup[company code]), [Raw Measure])