返回列表 上一主題 發帖

[發問] 是否有比較快的方法呢?

[發問] 是否有比較快的方法呢?

請問大大們,如果資料有A1~A300 ,每15筆資料 B1=AVERAGE(A1:A15)的平均值
,但下一個是B2=AVERAGE(A16:A30)
B3=AVERAGE(A31:A45)以此類推,
而不是直接下拉B1=AVERAGE(A1:A15)
                            B2=AVERAGE(A2:A16)
                            B3=AVERAGE(A3:A17)
是否有比較快的方法去做呢?
celina710828

B1=AVERAGE(OFFSET($A$1,(ROW(A1)-1)*15,,15,))向下複製
學海無涯_不恥下問

TOP

感謝Hsieh, 我把它改到工作表2    B1=AVERAGE(OFFSET(工作表1!$A$1,(ROW(A1)-1)*15,,15,))
可是我還是想知道說明,是否可以呢?
celina710828

TOP

本帖最後由 ginbow 於 2011-5-30 23:47 編輯

剛剛會錯意  

這是新的試試看

Sub gd()


Dim i As Integer
Dim s As Integer
Dim frow As Integer
Dim d As Integer


s = Worksheets("sheet1").Cells(65536, 1).End(xlUp).Row

Z = s / 15

w = Int(Z)

For x = 1 To w

If frow = 0 Then frow = 1 Else: frow = d + 1


d = frow + 14

Worksheets("sheet1").Range("B" & x).FormulaArray = "=AVERAGE(A" & frow & " : A" & d & ")"


Next x



End Sub

book1.rar (10.53 KB)

GinBow

TOP

回復 3# celina710828


    B1=AVERAGE(OFFSET(工作表1!$A$1,(ROW(A1)-1)*15,,15,))
OFFSET(工作表1!$A$1,(ROW(A1)-1)*15,,15,)就是要得到平均範圍
其中工作表1!$A$1當作資料的起始位置
當B1公式中(ROW(A1)-1)*15就是要從A1位移幾列?
(ROW(A1)-1)=0,0*15還是0,所以B1要算的範圍是從A1下移0列
到了B2公式會變成(ROW(A2)-1)*15
就會是位移15列的位置做起點就是A16
,,15,))當中的15是指,起點位置向下擴展15列的範圍
學海無涯_不恥下問

TOP

感謝ginbow 的幫忙,但巨集無法使用也,我巨集已改為低了,也是不能用,還是很感謝您
Hsieh 大大您好:不好意思我不知道哪裡出了問題平均值不一樣也,幫幫小女吧

Book2.rar (3.05 KB)

celina710828

TOP

A2=AVERAGE(OFFSET('15為一組'!$A$2,(ROW(A2)-2)*15,,15,))
A3=AVERAGE(OFFSET('15為一組'!$A$2,(ROW(A3)-2)*15,,15,))
YOYO

TOP

回復 5# Hsieh


我喜歡這樣的互動方式
好友學習的空間~I like
開心學習,學習很開心

TOP

A2=AVERAGE(OFFSET('15為一組'!$A$2,(ROW(A1)-1)*15,,15,))
向下複製
學海無涯_不恥下問

TOP

謝謝三位大老們,我都有試都可以完成也,

至於我的是2011版找不到
編輯>>到>>特殊>>選空格>>確定>>右鍵>>刪除>>儲存格上移>>確定>>完工

CTRL+`(ESC鍵下那一撇看公式之變化)

選有公式之連續儲存格>>剪下>>切至其他工作表>>貼上
但還是第一次的方法也是可以的,謝謝
celina710828

TOP

        靜思自在 : 滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表 上一主題