Excel:自動填充連續的公式組

Excel:自動填充連續的公式組

我在 Excel 2016 中有一組公式:

=CLASSSTRUCTURE!B43
=CLASSSTRUCTURE!B43
=CLASSSTRUCTURE!B43
=CLASSSTRUCTURE!B43
=CLASSSTRUCTURE!B44
=CLASSSTRUCTURE!B44
=CLASSSTRUCTURE!B44
=CLASSSTRUCTURE!B44
=CLASSSTRUCTURE!B45
=CLASSSTRUCTURE!B45
=CLASSSTRUCTURE!B45
=CLASSSTRUCTURE!B45

每組中的公式重複四次。

我想自動填入接下來的四行(依此類推):

...
=CLASSSTRUCTURE!B46
=CLASSSTRUCTURE!B46
=CLASSSTRUCTURE!B46
=CLASSSTRUCTURE!B46

有沒有辦法做到這一點?

答案1

通常的方法是使用 INDEX() 函數,該函數可讓您透過給出行號和列號來尋找儲存格範圍內的儲存格。

使用這樣的東西:

=INDEX($A$1:$A$100, INT((ROW($A1)-ROW($A$1))/4)+1)

在哪裡

$A$1:$A$100 是您引用的儲存格範圍(可依需要向下移動)。

ROW() 給出它所引用的單元格的行號,因此 ROW($A1)-ROW($A$1) 給出我們要填充的第一個單元格向下的單元格數。 (注意$)

將其除以 4 並向下舍入,我們就得到了要從中取得資料的儲存格的行號。公式可以在頁面上複製到您想要的位置。

可以以類似的方式使用「OFFSET」或「INDIRECT」函數,但它們會使電子表格速度慢得多,因為它們都是「易失性」函數,無法利用 Excel 對計算過程的智慧最佳化。


最佳化:

我們可以減少「INDEX」的使用次數,因為每 4 個儲存格中有 3 個與上面的儲存格相同。所以我們使用:

Cell     Formula
C1       =INDEX($A$1:$A$100, INT((ROW($A1)-ROW($A$1))/4)+1)
C2       =C1
C3       =C2
C4       =C3
C5       =INDEX($A$1:$A$100, INT((ROW($A1)-ROW($A$1))/4)+1)
C6       =C5
C7       ...

只要您只在 4 行區塊中執行此操作,仍然可以將其複製並貼上到工作表中。

相關內容