[英]How to get the slopes of different sets of data in excel, using the offset function?
我有一個數據集的結構,表示年份編號的 x 值從 1 到 18,但該數據集包含 500 多個從 1 到 18 的年份實例,每個實例的 y 值不同。
x_values y_values
1 0.10
2 0.20
3 0.25
. .
. .
. .
18 16.7
1 0.13
2 0.18
3 0.22
. .
. .
. .
18 17.1
這種模式重復超過 500 次。
我想使用斜率 function 計算每個實例的斜率。
在之前的場景中,我想找到每個實例的平均 y 值,我使用了以下公式:
=AVERAGE(OFFSET($B$2,(ROW()-ROW($C$2))*18,,18,))
其中 $B$2 是我的參考單元格,指示第一個實例中的第一個 y 值。
我想應用一個類似的公式來計算斜率,但到目前為止,當我使用這個公式時,我得到了一個 #N/A 錯誤:
=SLOPE(OFFSET($B$2,(ROW()-ROW($D$2))*18,,18,),$A$2:$A$19)
其中 $A$2:$A$19 范圍代表 18 個 x 值。
任何有關為什么會發生此錯誤以及如何解決此錯誤的幫助將不勝感激。
如果您使用 Evaluate Formula 逐步執行此公式,您將看到行號周圍有大括號 - 因此 Row 函數提供的是單元素數組。 您可以使用 Index 將它們變成標量:
=SLOPE(OFFSET($B$2,INDEX((ROW()-ROW($D$2))*18,1),0,18,1),$A$2:$A$19)
注1:
最好使用 Index 並避免使用 Offset 等易失函數:
=SLOPE(INDEX(B:B,(ROW()-ROW($B$2))*18+2):INDEX(B:B,(ROW()-ROW($B$2))*18+19),$A$2:$A$19)
筆記2:
我無法完全解釋為什么使用 Slope 會出現這種行為,但 Average 是可以的。 似乎 Average 可以像這樣處理 arrays 數組:
=SUMPRODUCT(AVERAGE(OFFSET(A2,{1,2},0,1,1)))
雖然 Slope 不能,但它仍然不能完全解釋您在逐步執行公式時看到的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.