我有一个表,我必须通过在同一个表上循环来创建百分比。这是样本表
我的第一个障碍是创造%权重,在某一天,它是收入的百分比除以当天“该”特许经营权的所有收入。所以在上面的例子中,它是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,然后计算特许经营权%指数。感谢
答案 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]))
<强>解释强>
测量[加权预测]需要说明。
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.