2013-07-18 118 views
1

我有當前完全填充的成本中心分配數據,每天一筆記錄,每個記錄都有一個成本中心維度關鍵字。該立方體具有人頭測量(數據設置爲「1」),聚合函數設置爲「LastChild」。這意味着在任何給定的時間段內,人數統計報告只會在成本中心對一個人進行一次統計。人口稀少百分比值的「平均」彙總

引入部分分配 - 新的度量將具有分配的百分比值,從而允許多個併發成本中心,其中分配的合計應該高達100%(以「日」爲粒度級)。我想弄清楚如何配置其他時間段的聚合。我認爲「平均水平」應該可以正常工作,即在一段時間內分配給成本中心爲50%的人將在該時間段內報告25%。 我看到的問題是我的事實沒有在成本中心分配爲0%的日子裏填充。爲了說明:

Employee1 CostCenterA 1/1/2013 50% 
Employee1 CostCenterB 1/1/2013 50% 
Employee1 CostCenterA 1/2/2013 100% 
Employee1 CostCenterA 1/3/2013 100% 
... etc with 100% in CostCenterA for all days 

由每月報告上述數據顯示,50%分配給CostCenterB,即使這個人是隻分配了一天,並按月平均百分比應爲1.6% 。

我想我可以在數據中生成0%分配,但是我的事實表會因此而爆炸,所以我寧願改變「平均」聚合在稀疏填充的事實中如何處理百分比值即平均值應根據報告期內的粒度單位數(本月的天數,本例中爲0.5/31),而不是事實表中的行數(0.5/1)計算。這可以在SSAS中完成嗎?

回答

2

如果具有平均分配的度量與一個與我的事實「稀疏」成比例的因素(即一段時間內的天數與實際行數的比率)成比例,則可以按如下方式進行糾正:

adjusted average allocation = 
    (calculated average allocation) * (fact count)/(number of days in period) 

我創建了兩個新的隱藏的措施,一個名爲[事實計數]的事實計數(使用聚合函數「計數」的度量),並命名爲計算度量[天期計數]的天數,使用表達式

COUNT(Descendants([Date].[Calendar].CurrentMember,5),INCLUDEEMPTY) 

與[日曆]是t他是我日期維度中層次結構的名稱。

最後,我添加了實現校正公式計算出的量度:

[Measures].[Allocative Head Count]/ 
(
    [Measures].[Days In Period Count]/[Measures].[Fact Count] 
) 

並將其命名爲[調整的平均分配。我現在可以在報告中使用它,並且它看起來略微接近較長時期的平均成本中心分配。

[Days In Period Count] btw的公式在涉及過濾器時不適用於行總數。我爲此打開了another question