返回列表 上一主題 發帖

請教 公式_跳欄並且符合條件才加總

回復 9# 准提部林


Arr = Range(Cells(R, "AG"), Cells(10, C))
這行是設定資料範圍! 不懂
Cells(R, "AG") 是10
Cells(10, C) 是0
Arr = Range(10, 0)
為什麼??
請再指導
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 11# Andy2483

Dim Arr, Brr, R&, C&, i&, j&, k%, xArea As Range
R = Cells(Rows.Count, "d").End(xlUp).Row
MsgBox R & "(D欄最後一行)"
C = Cells(12, Columns.Count).End(xlToLeft).Column
MsgBox C & "(最右一欄)--位址:" & Cells(12, C).Address
Set xArea = Range(Cells(R, "AG"), Cells(10, C))
MsgBox "資料範圍:" & xArea.Address
'Arr = Range(Cells(R, "AG"), Cells(

TOP

本帖最後由 准提部林 於 2020-8-24 18:44 編輯

不然用公式??
AC13:
=SUMIF($AG$10:$GW$10,"*",AG13:GW13)-SUMIF($AG$10:$GW$10,"前置*",AG13:GW13)

=SUMPRODUCT(--(LEFT($AG$10:$GW$10&"前置",2)<>"前置"),AG13:GW13)

右拉3格, 下拉

計算位址右拉時, 是移位的, 自行參酌~~

TOP

VBA中的陣列用法, 要早點了解,
最好也理解字典用法,
字典+陣列, 可處理很多種資料的處理及統計運算需求,
否則隨著資料越多, 就越不好處理~~

TOP

Sub TEST2()
Dim Arr, Brr, R&, C&, i&, j&, k%
R = Cells(Rows.Count, "d").End(xlUp).Row
C = Cells(12, Columns.Count).End(xlToLeft).Column
Arr = Range([A1], Cells(R, C))
ReDim Brr(1 To UBound(Arr) - 12, 1 To 3)
For i = 13 To UBound(Arr)
For j = [AG1].Column To UBound(Arr, 2) Step 4
    If Left(Arr(10, j), 2) = "前置" Then GoTo j01
    For k = 1 To 3
        Brr(i - 12, k) = Brr(i - 12, k) + Arr(i, j + k - 1)
    Next k
j01: Next j
Next i
[AC13].Resize(UBound(Brr), 3) = Brr
End Sub

改成這樣是否較易理解?
Cells(R, C) 就是資料區最右/最下一格
Range([A1], Cells(R, C)) 從a1向下/向右的區域



==================================

TOP

回復 15# 准提部林


還沒有用PC測試
以結果反推裡面程碼的意義 大概了解
1.兩個容器 Arr裝原來的資料 Brr裝回圈的結果
UBound(Arr)是指Arr的縱向陣列數
UBound(Arr, 2)是指Arr的橫向陣列數
2. Arr = Range(Cells(R, "AG"), Cells(10, C))是反對角定義範圍嗎?
沒看過 就慌了
謝謝指導
明早出差 撥空繼續研習 還有公式版呢 真期待
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 9# 准提部林


前輩的迴圈比較難 ,換個角度比較看得懂
可能跟心境有關吧
您無私的把懂的傳授給我們 成就我們
Andy只懂得接受前輩的指導 增長自己
謝謝
For k = 1 To 3
For i = 4 To UBound(Arr)
For j = 1 To UBound(Arr, 2) Step 4
    If Left(Arr(1, j), 2) = "前置" Then GoTo j01
        Brr(i - 3, k) = Brr(i - 3, k) + Arr(i, j + k - 1)
j01: Next j
Next i
Next k
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 9# 准提部林


    對不起 !
忘了問迴圈方式不同執行效率有差別嗎?
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 18# Andy2483


    還沒有測試 但應該有差
因為少判斷 前置 很多次
就直接跳到 j01
撥空再測試 學習
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 14# 准提部林


    搞不懂 哪裡錯
分項比總和大

範例_20200826.zip (310 KB)

用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題