2017-06-25 53 views
1

我想在Excel中自動填充公式。我的意思是,我試圖獲得列的前26行的平均值,然後是同一列的下26行的平均值,依此類推。自動填充一個公式,這可能嗎?

我有一個非常大的數據文件,所以我不能手動完成。這個想法是每秒將一系列數據點擴展爲數據點,並且每秒有大約26個數據點。例如,

到目前爲止,我已經嘗試過手動操作,並且只是將公式向下拖動,這不起作用,因爲平均值從第2行到第27行,而不是第26行到第52行。

+0

你可以做到這一點通過編寫VBA代碼 – Monah

回答

3

隨着塔A數據,在B1輸入:

=AVERAGE(INDIRECT("A" & 26*(ROW()-1)+1 & ":A" & ROW()*26)) 

和向下複製。這相當於插入:

=SUM(A1:A26) 
=SUM(A27:A52) 
=SUM(A53:A78) 
=SUM(A79:A104) 
=SUM(A105:A130) 
=SUM(A131:A156) 
=SUM(A157:A182) 

但是不必調整每個公式。

+0

好了,我們有兩個很好的解決方案:) –

+0

非常感謝你! :)工作就像一個魅力! –

+0

@ThomasKroißenbrunner請解決您的問題時,請接受[接受答案](https://stackoverflow.com/help/someone-answers)的好意。它是如何*「SO遊戲」*工作:) –

4

你的公式爲第一行直接自動填充可以是:

=AVERAGE(OFFSET(A$1,26*(ROW(1:1)-1),0,26)) 
+0

您的解決方案更好............它避免***間接()*** –

+0

@ Gary'sStudent間接唯一的問題是在插入一些列時(比如在A列之前),它會隨着它移動。但是,它很小。 –

+0

我完全同意你的意見 –

2

這避免了像INDIRECT揮發性功能和OFFSET

在B1,

=AVERAGE(INDEX(A:A,(ROW(1:1)-1)*26 + 1):INDEX(A:A,(ROW(1:1)-1)*26 + 26)) 

的數據是在列A

*26是間距

+ 1是擁有數據的第一個單元格,因此,如果數據在連續兩個變化開始它+ 2

+ 26是第一組的最後一排,如果數據上的行開始如此反覆2,那麼它應該更改爲+ 27