2017-01-16 62 views
0

我的數據模型中有兩個使用DirectQuery連接的表。首先我有關聯賬戶的費用清單:如何創建一個沒有聚合的測量?

enter image description here

其次帳戶組的列表。同一賬號可以在不同的組,對一些人來說的價值可能爲負:

enter image description here

所以想什麼,我這裏是創建一個測量/計算列顯示相關的所有費用匯總到一個集團。結果是這些:

enter image description here

我的第一直覺是把它寫這樣的:

CalcAmount = SUM(Continents[Multiplier]) * SUM(Costs[Amount]) 

然而,結果是不正確的。例如,對於D組,它首先SUMS乘法器1和乘法器-1,結果爲0.然後它將0乘以金額,所以當乘數爲+1和-1時結果始終爲0。

如何創建一個不會聚合乘數的公式,而是分別乘以每個值?

+0

什麼是您預期的結果?請注意,可視化將彙總組colomn,因此每組只有一行。所以你的第一個C值應該是-160,第二個值應該是160,如果你總計-160 + 160它會給你0. –

+0

例如D組包含帳戶1和2.如果你看到成本表,1 = 110美元+ 150美元和2 = 130美元+ 160美元。由於帳戶1有負值,所以 - 260美元+ 290美元= 30美元。我會在問題中發佈一個結果表。 – lisovaccaro

+0

確定組A的'Amount'值的邏輯是什麼,因爲該組對應於'Costs'表中具有兩個'Amount'值的Account'1'。 –

回答

0

爲什麼它不工作

你寫的措施是不正確的,因爲它完全按照你所描述的:乘前Multiplier/Amount列求和。它應該是類似以下內容代替:

CalcAmount = SUM(Groups[Multiplier] * Costs[Amount]) 

然而,使其在動力BI工作,下面是需要:

  • 兩個表
  • 使用SUMX()功能之間的正確關係代替SUM()

如何使它工作

我建議你到任何一組的Costs表由Account(或從當前創建一個新表,如果你需要保留原始數據),這樣就可以建立一個一對一與Account列中的Groups表有關。

Costs表:

costs

relationship

之後,您可以創建度量,並使用SUMX()函數來執行逐行評價:

CalcAmount = SUMX(Groups, Groups[Multiplier] * RELATED(Costs[Amount])) 

其結果將是如預期的那樣:

result

您還可以添加Account欄來查看詳細分解:

breakdown


編輯:(創建新表替代解決方案)

創建一個Accounts表與DISTINCT Account列LY:表中 accounts query accounts

關係: relationships

創建Total Amount衡量,其計算總爲每個帳戶:

Total Amount = SUM(Costs[Amount]) 

使用的措施,而不是Costs[Amount]CalcAmount措施:

CalcAmount = SUMX(Groups, Groups[Multiplier] * [Total Amount]) 

如上相同的結果:

final result

+0

嗨,Foxan,我無法按帳戶對費用表進行分組,因爲我在表格中有另一列。我所做的是添加一個Accounts表,並從Costs表中創建一個多對一的關係。然後,我創建了一個從「帳戶」表到「組」表的一對多關係。然而,當您嘗試使用公式時,RELATED函數返回「列'Costs [Amount]'或者不存在,或者與當前上下文中可用的任何表沒有關係。」當兩張桌子通過中間桌子相關時,是否有辦法讓它工作? – lisovaccaro

+0

@lisovaccaro您可以添加總金額度量,並在表達式中替換「Costs [Amount]」。詳情請查看編輯後的解決方案。 –

相關問題