坡度透视

时间:2018-08-16 21:00:12

标签: rows powerpivot

如何计算功率枢轴中前五行的两列之间的斜率?

在excel中会是这样:

Example

有可能吗?

最好的问候, 澳门若昂

1 个答案:

答案 0 :(得分:0)

SLOPE function基于线性回归,因此斜率的计算方式为xy的协方差除以x的方差:

Slope Equation

在DAX中,整个表(而不只是前五个表)的计算如下所示:

Slope = 
    VAR AvgX = CALCULATE(AVERAGE(Data[Date]), ALL(Data))
    VAR AvgY = CALCULATE(AVERAGE(Data[Flow]), ALL(Data))
    RETURN DIVIDE(SUMX(Data, (Data[Date] - AvgX) * (Data[Flow] - AvgY)),
                  SUMX(Data, (Data[Date] - AvgX) * (Data[Date] - AvgX)))

为了只获取前五个,我们需要更改在计算平均值时使用的滤波器。

Slope = 
    VAR Filtered = TOPN(5, FILTER(Data, Data[Date] <= EARLIER(Data[Date])), Data[Date])
    VAR AvgX = CALCULATE(AVERAGE(Data[Date]), Filtered)
    VAR AvgY = CALCULATE(AVERAGE(Data[Flow]), Filtered)
    RETURN DIVIDE(SUMX(Filtered, (Data[Date] - AvgX) * (Data[Flow] - AvgY)),
                  SUMX(Filtered, (Data[Date] - AvgX) * (Data[Date] - AvgX)))

如果只想返回一个具有五个平均数据点的值,则可以添加条件:

RETURN IF(COUNTROWS(Filtered) < 5, BLANK(), DIVIDE([...]))