2014-12-05 95 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