什么是DAX百分比之和

时间:2015-02-23 22:33:32

标签: ssas powerpivot tabular dax powerview

我有一个表,我必须通过在同一个表上循环来创建百分比。这是样本表

enter image description here

我的第一个障碍是创造%权重,在某一天,它是收入的百分比除以当天“该”特许经营权的所有收入。所以在上面的例子中,它是150 /(150 + 200 + 300)= 23.07%,那么它是200/650 = 30.7%和300/650 = 46.15(注意:我没有采取报告期间1/1/2015因为要循环,我们将“那个”特许经营记录的表格循环到“那一天”。)

然后我需要当天的特许经营措施,这将是(%预测*%重量)的总和。在这里的例子中,它将是Sum(91 * 23.07 + 97 * 30.7 + 92 * 46.15)/ 100 = 93.21%。

当我使用切片器进行北方时,有人可以使用DAX来帮助生成93.21的特许经营权%吗?感谢

--------------- 2015年2月26日的问题更新------------------------

谢谢你Abhijeet。

如果“收入”列是一个单独的表,并且只与帐户和日期期间(本月的第1个月)一起加入主表,那么我将无法使用这些公式。收入表必须是单独的表,因为它们是一个月粮食,而特许经营权表是一天粮食。特许经营表到收入表是多对一的。我加入了Period和Account来创建一个键,所以我加入了两个表。在收入表中,“帐户”和“月份期间”是唯一的行。这是分析表, http://oi62.tinypic.com/9fsg8p.jpg

现在,Revenue表上的Orange行是有效行,它位于Revenue表中,但未在Franchise表中报告。因此,当计算权重时,此行也需要包括在特许经营南方总计中。有人可以指导如何重写DAX以适应这一点。谢谢我是一个初学者,虽然这很有趣,但我觉得很难。

所以我仍然需要计算%Weightage,然后计算特许经营权%指数。感谢

1 个答案:

答案 0 :(得分:1)

根据您的图片,您有一张桌子(让我们将其命名为' Franchise')。您需要采取以下措施。公式被称为

{Measure Name} = {Measure Formula}

1. Total Reported Revenue = Sum([Revenue])
2. Franchise Reported Revenue = CALCULATE(Sum([Revenue]),All(Franchise[Account]))
3. % Weightage = 100 * [Total Reported Revenue] / [Franchise Reported Revenue]
4. Total Forecast = Sum([% Forecast])
5. Account Weighted Forecast = [Total Forecast] * [% Weightage] / 100
6. Weighted Forecast =  If(HASONEVALUE(Franchise[Account]),  
                               [Account Weighted Forecast], 
                               Sumx(DISTINCT(Franchise[Account]),[Account Weighted Forecast]))

<强>解释

  • 测量与&#34;计算字段&#34;相同在PowerPivot中。以下是描述如何创建它们的链接。 Link-1 Link-2
  • 在衡量[帐户加权预测]的公式中,我可以使用Sum([%Forecast])而不是测量[Total Forecast],从而节省了创建新度量的工作量。这种参考被称为&#34;裸柱&#34;。这不是一个好习惯。最好创建一个新的度量,它封装裸列引用。 Link
  • 测量[加权预测]需要说明。

    HASONEVALUE(Franchise[Account]) : Determines if current calculation is 
         for normal cell or total\subtotal cell. This will return true for 
         normal cell and false otherwise.
    
    Sumx(DISTINCT(Franchise[Account]),[Account Weighted Forecast]) : This is        
         evaluated for totals\subtotals cell. Function Sumx iterates through        
         each account and find out [Account Weighted Forecast] and them sum it.