Power BI:计算STDEVX.P超过6个月

时间:2017-06-22 07:45:14

标签: powerbi dax standard-deviation

我正在尝试计算最近的6个月STDEVX.P(不包括当前月份;因此在2017年5月,我想在2016年11月至2017年4月的STDEVX.P期间)按产品销售为了进一步计算销售订单的变化。

销售数据由每日交易组成,因此它包含交易日期:msExchMailboxGuid和已售出的单位:iContractsChargebacks[TransactionDate],但如果在给定时间段内没有销售,则不会有数据那个月。

因此,例如,在7月1日,过去6个月的销售情况如下:

iContractsChargebacks[ChargebackUnits]
3月因为没有销售而失踪。所以,当我在数据集上计算STDEVX.P时,它会在5个周期内计算它,而实际上有6个周期,只有一个恰好为零。

在一天结束时,我需要计算当前六个月期间的STDEVX.P。如果在提取月度销售数字时,它只返回3个周期(月),则需要假设其他3个期间为零值。

我考虑手动计算标准偏差,而不是使用DAX STDEVX.P公式,并发现这两条链接作为参考,如何这样做,第一个最接近我的需要:

https://community.powerbi.com/t5/Desktop/Problem-with-STDEV/td-p/19731

Calculating the standard deviation from columns of values and frequencies in Power BI ...

我试图解决它,但仍然没有得到正确的计算。我的代码是:

Jan 100
Feb 125
Apr 140
May 125
Jun 130

*注意:我没有在代码中使用日期参数,而是在日期表中创建了一个计算列,为每个月提供一个唯一的ID,使我更容易。

2 个答案:

答案 0 :(得分:2)

关于您的模型的更多解释,您的问题肯定会更容易回答。例如。你如何定义[SumOfOrderQuantity]和[6M Sales],因为那里的错误肯定会影响最终的结果。此外,了解您所看到的结果与您期望的结果相比(使用示例数据)。

然而,我的猜测是你的DimDate表是一个标准的日期表(每个日期有一行),但你想要按月标准差。

公式中的FILTER语句将日期范围正确地限制为前6个完整月份,但每个日期仍会有一行。您可以在Power BI中通过进入数据视图,选择' New Table'来确认这一点。在功能区上建模,并将您的FILTER语句放在:

Table = FILTER(ALL(DimDate),
DimDate[MonthID]<=(MAX(DimDate[MonthID])-1) &&
DimDate[MonthID]>=(MAX(DimDate[MonthID])-6))

假设您在某个月内有超过一天的销售额,那么按日而不是按月计算差异会让事情变得更糟。

我建议尝试:

Table = FILTER(SUMMARIZE(ALL(DimDate),[MonthID]),
DimDate[MonthID]<=(MAX(DimDate[MonthID])-1) &&
DimDate[MonthID]>=(MAX(DimDate[MonthID])-6))

附加的SUMMARIZE语句意味着每个MonthID只能获得一行,而不是每个日期获得1行。如果您的[6M销售额]是所有6个月的月平均值,并且[SumOfOrderQuantity]是每月的月度总和,那么您应该设置为计算方差,平方,除以6和平方根。

如果您需要进行进一步的故障排除,请记住您可以使用MonthID,SumOfOrderQuantity和[6M Sales]在画布上放置一个表格,并将计算的每个阶段所期望的数字与您看到的数字进行比较。

希望这有帮助。

答案 1 :(得分:0)

在尝试通过SKUS根据销售数据计算变异系数(标准/均值)时,我遇到了类似的问题。我可以使用Power Query编辑器中的Pivot-Unpivot函数来消除几个月的销售损失问题:

1)导出包含任何计算列的数据

2)重新导入数据,以便计算的列也可以在超级查询编辑器中使用

3)按月份透视数据

4)用0s替换空值

5)清除数据

6)关闭并应用查询

7)使用公式为变异系数添加计算列

CV = CALCULATE(STDEV.P(Table1[Value]),ALLEXCEPT(Table1,Table1[Product]))/CALCULATE(AVERAGE(Table1[Value]),ALLEXCEPT(Table1,Table1[Product]))

因此,标准差和均值也将考虑缺失月份的零销售。

相关问题