瀏覽單個文章
老柏(第三)
*停權中*
 
老柏(第三)的大頭照
 

加入日期: Nov 2010
文章: 116
引用:
作者azteq
要先把 =AVERAGE(......... 這些東西key進去,key好後,不是按 enter

而是按 Ctrl + Shift + Enter ,公式兩旁便會出現大括弧將陣列公式包起來

那個大括號只是用來表示,這個是陣列公式
陣列公式提供陣列來暫存待處理的數據, 再配合你使用的函數作計算

以底下這個為例

{=AVERAGE(IF((E12:O31>H2)*(E12:O31<H1),E12:O31))}


換作寫成vba, 大概像下面的樣子
(在下很久沒寫vba,而且本來程度就很有限
所以隨便湊一湊,看得懂大概的意思就好)

set A1() as array
B1=0
for I = 1 to 11 ' O-E=11
for J = 1 to 20
if cell(I,J) > H2 and cell(I,J) < H1
A1(B1)= cell(I,J)
B1=B1+1
endif
next J
next I

C1=average(A1(0)+A1(1).....A1(B1-1))

感謝

對於vba的寫法也給您參考一下
一般輸入公式或值可以用以下這兩種指令
CExcel.Range("e5").Formula =
CExcel.Range("e5").Value =

CExcel是你指定的活頁,Range是放你要填入什麼位置


陣列函數是用這個指令
CExcel.Range("e2").FormulaArray =

他就會把你填入的公式以陣列公式的方式入
舊 2011-07-12, 01:06 PM #20
回應時引用此文章
老柏(第三)離線中