【问题标题】:What is the DAX for sum of percentages百分比总和的 DAX 是多少
【发布时间】:2015-04-25 10:17:46
【问题描述】:

我有一张表,我必须通过在同一张表上循环来创建百分比。这是示例表

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

然后我需要一个当天的特许经营度量,即 (%Forecast * %Weightage) 的总和。在此处的示例中,它将是 Sum (91*23.07 + 97*30.7 + 92*46.15)/100 = 93.21%。

当我对 North 使用切片机时,有人可以帮助 DAX 生成 93.21 的这个 Franchise% 吗?谢谢

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

谢谢阿比吉特。

如果“收入”列是一个单独的表,并且仅与“帐户”和“日期期间”(每月 1 日)连接到主表,那么我无法使用这些公式。收入表必须是单独的表,因为它们是按月计算的,而特许经营表是按天计算的。所以特许经营表到收入表是多对一的。我加入了 Period 和 Account 以创建一个密钥,因此我加入了这两个表。在收入表中,帐户和月份期间是唯一的行。这是分解表, http://oi62.tinypic.com/9fsg8p.jpg

现在,Revenue 表上的 Orange 行是有效行,它位于 Revenue 表中,但未在 Franchise 表中报告。因此,当计算权重时,这一行也需要包含在 Franchise South Total 中。有人可以指导如何重写 DAX 以适应这一点。谢谢我是一个初学者,尽管这很有趣,但我觉得很难。

所以我仍然需要计算 % Weightage,然后是 Franchise% Index。谢谢

【问题讨论】:

    标签: ssas powerpivot tabular dax powerview


    【解决方案1】:

    根据您的图片,您有一张桌子(让我们将其命名为“特许经营”)。您将需要采取以下措施。公式被提及为

    {测量名称} = {测量公式}

    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]))
    

    说明

    • 度量与 PowerPivot 中的“计算字段”相同。以下是描述如何创建它们的链接。 Link-1Link-2
    • 在度量 [Account Weighted Forecast] 的公式中,我可以使用 Sum([% Forecast]) 代替度量 [Total Forecast],从而节省了创建新度量的精力。这种引用被称为“裸柱”。这不是一个好习惯。最好创建一个新的度量,它封装了裸列引用。 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. 
      

    【讨论】:

    • 谢谢 Abhijeet,这真的很有帮助。如果“收入”列在月粮的单独表格上。所以这两个表加入了 Account 和 Month。所以现在你提到的前 3 个公式现在在收入表上。最后两个公式在目标表上。但加权预测并不正确。请你指导一下,如果你做咨询我想给你打电话。谢谢
    • 在 PowerPivot 中的这两个表之间创建关系。即收入表和预测表之间的一对多关系。完成此操作后,答案中的公式应该可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2017-02-02
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多