答案 0 :(得分:0)
SLOPE function基于线性回归,因此斜率的计算方式为x
和y
的协方差除以x
的方差:
在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([...]))