我需要一些帮助在PowerPivot中创建一个度量。我用Google搜索并尝试了所有可以找到的成功选项。我有一个销售线索的事实表。一些线索给了我们一些不卖。我需要衡量潜在客户的价值。我将这些值相加并将其除以表中的记录数
Average Total of Leads:=calculate(Table1[Sum of Value]/Table1[Count of Lead name])
我的问题是创建一个给我3个月滚动平均值的度量。
我试过了:
Roll3Average:=[Average Value of leads]/CALCULATE(DISTINCTCOUNT(dimdate[MonthName]),
DATESINPERIOD(dimdate[Dates],
LASTDATE(dimdate[Dates]),-3,Month
)
)
我试过了:
Rolling3Average:=IF(COUNTROWS(VALUES(dimdate[MonthName])) = 1,
CALCULATE(
[Average of Value]/ COUNTROWS(VALUES(dimdate[MonthName] ) ) ,
DATESBETWEEN(
dimdate[Dates],
FIRSTDATE(PARALLELPERIOD(dimdate[dates], -2, MONTH)),
LASTDATE(PARALLELPERIOD(dimdate[dates], 0, MONTH))
), ALL(DimDate)
)
)
我试过了:
Total Sales rolling:=
CALCULATE (averagex(Table1,[Average Total of deals]),
FILTER (ALL ( dimdate),dimdate[Month] >= MAX (dimdate[Month]) -2&& dimdate[Month] <= MAX ( DimDate[Month])))
我做不到。
我希望有人能看到我出错的地方。
@Marcus
Click here and see my datamodel Thanks
我的数据模式仍然存在问题。
我已经链接了一个非常简单的例子。我希望有一个人可以帮助我。
谢谢
答案 0 :(得分:1)
请注意,在我使用的示例中,我使用的是[销售]而不是潜在客户。
您要进行的主要结构更改是在dimDates表中创建month_index。拥有该领域的优势在于它可以更轻松地计算超过3个月的总数,因为它可以像在第二个示例中那样去除交叉年份。另一个优点是让month_index处理非标准日历,例如4-4-5
首先:
Sales:=SUM(Data[Qty])
下一部分将计算3个月内的销售额(或潜在客户)。下面我们使用month_index字段来快速定义我们想要求和的日期范围。
3_Month_Sales :=
CALCULATE (
[Sales],
FILTER (
ALL ( dimdate ),
dimdate[Month_index] <= MAX ( dimdate[Month_index] )
&& dimdate[Month_index]
>= MAX ( dimdate[Month_index] ) - 2
)
)
下一部分取决于问题,因为平均值可以通过两种方式计算。主要问题是它是3个月的平均值,还是基于分子是具有大于0的值的月数。
简单的方法:
3_Month_Average:=DIVIDE( [3_Month_Sales], 3)
我学到的更复杂的方法可以将SUMX包装在计算中。计算的想法是查看3个月的时间段,然后sumx按年份逐月迭代。最后,它检查销售额是否大于0,如果分配则为1。那些1的总和
Count_of_Periods :=
CALCULATE (
SUMX (
VALUES ( dimdate[Year] ),
SUMX ( VALUES ( dimdate[Month] ), IF ( [Sales] > 0, 1 ) )
),
FILTER (
ALL ( dimdate ),
dimdate[Month_index] <= MAX ( dimdate[Month_index] )
&& dimdate[Month_index]
>= MAX ( dimdate[Month_index] ) - 2
)
)
最后
3_Month_Alternative:=DIVIDE([3_Month_Sales], [Count_of_Periods])
下面是使用一些随机样本数据的图像,以及不同字段如何交互。作为示例的一部分,2017年4月的数据被删除,以显示count_of_periods计算如何处理该期间没有数据的事实