close
資料來源
用EXCEL設A1+A4+A7+A10+A14+A17+A20等累加的公式
-----------------
Sub xx()

i = [a65536].End(xlUp).Row
For k = 1 To i Step 3
temp = temp + Cells(k, 1)
Next

MsgBox "總計為" & Temp

End Sub
-----------------
於B1欄位輸入
B1=SUMPRODUCT(N(OFFSET(A1,(ROW(1:50)-1)*3,0)))
-----------------
N 的意義
公式 敘述 (結果)
=N(A2) 因為 A2 中有數字,因此傳回 7 (7)
=N(A3) 因為 A3 中有文字,因此傳回 0 (0,請參閱上述)
=N(A4) 因為 A4 是邏輯值 TRUE,因此傳回 1 (1,請參閱上述)
=N(A5) 因為 A5 是日期,因此會傳回序號 (會隨使用的日期系統而改變)
=N("7") 因為 "7" 是文字,因此傳回 0 (0,請參閱上述)

-----------------
Row函數:

請選取在儲存格並輸入如下:
C1=row(1:10) →並請在輸入公式位址按F9可看到實際列號
={1;2;3;4;5;6;7;8;9;10}

C2=(row(1:10)-1)*3
C2={0;3;6;9;12;15;18;21;24;27}

又因陣列的索引值是由0開始,因此(row(1:10)-1)吧。

並利用Offset函數的特性來
傳回根據所指定的儲存格位址、列距及欄距而算出的參照位址。
傳回的參照位址可以是單一個儲存格或一個儲存格範圍。
您可以指定要傳回來的列數和欄。
-----------------

所指的0應該是Offset函數的cols值為0
語法
OFFSET(reference,rows,cols,height,width)
傳回根據所指定的儲存格位址、列距及欄距而算出的參照位址。
傳回的參照位址可以是單一個儲存格或一個儲存格範圍。您可以指定要傳回來的列數和欄數。
Cols 是用以指示左上角儲存格要水平 (往左或往右) 移動的欄數。
例如,cols 值為 5,意指所傳回之參照位址之左上角儲存格位址在 reference 引數右方的第五欄上。
而你指的0是指cols為0欄亦即當公式中的OFFSET(A1,(ROW(1:20)-1)*3,0))指定到A欄的位置了。
OFFSET 函數並不會真的移動任何儲存格或更改選定範圍,而只是傳回運算後的參照位址。
例如,
公式一:SUM(OFFSET(A1,1,0))會把A1下一列位置為A2的值加總
公式二:SUM(OFFSET(A1,1,2,3,1)) 會把 A1 下一列右二欄的一個三列一欄的範圍加總實際位置為(C2:C4)加總
arrow
arrow
    全站熱搜

    YOUNG21975 發表在 痞客邦 留言(0) 人氣()