2014-12-05 94 views
0

我正在查看一些公司间应收账款(AR)数据。我们假设,我有一对彼此有交易的公司。除了其中一家公司外,其他所有公司都使用相同的会计系统,我可以从中检索数据。对于奇数公司,我无法访问公司间交易的AR数据。作为代理人,我从其他公司获取应付账款(AP)数据。我的目标是准备一份报告,显示所有公司的总体AR数据(根据中央会计系统公司的AR数据和这些公司针对一家公司预定的AP数据构建的报告)Powerpivot DAX measure:sum“if then”

I现在在Powerpivot中有三个表格,持有AR数据(公司代码,AR账户号码和金额)的“表格AR”和持有应付账款数据的“表格AP”以及一张持有公司代码的“查找表”,各自的AR代码和专栏告诉我公司是否在中央会计系统(本专栏仅保留信息“直接”或“间接” - 反映我收集数据的方式)

每当公司代码被链接在查表中“直接”,我的措施应该总结一下根据“公司代码”栏过滤AR表中的nts。当公司代码是“间接”时,度量值应该总结AP列表中由“AP号”列过滤的数量。

这个想法是建立一个DAX措施,沿着这些路线总结了AR金额:

如果公司(在“查表”)=“直接”,然后使用公司代码和和所有当在“表AR”的“公司代码”栏中匹配时,在“表AR”中的金额。

否则,如果公司(“查找表”)=“间接”,则使用来自“查找表”的AP账号并且在匹配列“AR账号no”时将“表AP” “

也许下面的图片可以进一步阐明我的想法。

我非常感谢一些想法,我可以如何为上述构建DAX度量。

非常感谢!

enter image description here

回答

2

这是一个伟大的PowerPivot使用的,虽然有一些关于你的假数据混淆我一点,这应该回答你的问题。

我假设您的AR和AP表分别与company codeAR 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]) 
+0

嗨雅各,非常感谢。这正是我期待的!还没有完全理解“HASONEVALUE”在做什么,但其他一切都很清楚。由于您称为“Access”的表包含公司代码,AR和AP acc的信息,因此必须用USERELATIONSHIP稍微调整公式。否和“直接/间接”信息。 再次感谢,非常有帮助! – jemmy 2014-12-07 02:47:06

+0

很高兴它为你工作。 HASONEVALUE()检查您提供的列,以查看该特定上下文中是否有多个值。这是必需的,否则总计/小计会通过VALUES()提供多个值并导致错误。 – Jacob 2014-12-07 09:24:24