在任一欄的第一列輸入以下公式
=OFFSET($A$1,ROUNDUP((ROW()/5),0)-1,ABS(MOD(5-ROW(),5)-4),1,1)
函數:
OFFSET 公式根據所指定欄列數傳回指定的參照內容。
ROUNDUP 公式無條件進位
ROW 公式是取得目前所在的儲存格列數
ABS 公式傳回絕對值
MOD 公式為求餘數
說明:
OFFSET(起始位置,要位移的列數,要位移的欄數,列數高度(註),欄數寬度(註)
$A$1 : 指定開始的位置
ROUNDUP((ROW()/5),0)-1: 將目前所在列數除於5然後將所得小數無條件進位後再減1,得出目前是否換行的條件.
ABS(MOD(5-ROW(),5)-4):用5 減去目前的儲存格位置然後再用5來取餘數之後減4 取得負數(這個用意在於讓數字配合絕對值後由小至大)
註:這個列子裡因只取個單一儲存格內容所以指定1,如果使用的SUM等函數則可指定計算區域的大小。
謝謝蟹大師,不好意思能再請教一個問題嗎?如果我要A~AD的欄位裡面一共有30欄,只取2、5、8、11、14、17、20、23、26、29的欄位值,一樣下拉可以得到,公式要如何下呢?感謝~
蟹大師,我想要這樣,AF跟AH分別下來可以得到這樣的值!拜託
一樣在任一欄的第一列輸入
=OFFSET($A$2,ROUNDUP(ROW()/(30/3),0)-1,MOD(MOD(ROW(),30)*3-2,30),1,1)
及
=OFFSET($A$2,ROUNDUP(ROW()/(30/3),0)-1,MOD(MOD(ROW(),30)*3-1,30),1,1)
以下僅針對差異處說明
$A$2:由於第一列不需要取值所以將起始位置指定至$A$2
ROUNDUP(ROW()/(30/3),0)-1: 資料範圍為30欄所以輸入30當中的3為公差值,以最大值30除公差3來取得換行的條件,也就是每十筆資料就應換行的意思.最後的-1是為了處理 OFFSE T起始值為零的問題
MOD(MOD(ROW(),30)3-1,30):
第一次求餘數是將計算範圍限制在30內(單列欄位數量),第二次則是求出順序位置,得出順序後將值乘上公差即可以轉換出等差數列的位置並取得內容值,當中的減1或減2用來指定起始的位置。