返回列表 上一主題 發帖

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

發帖如果是求助的,
最好上傳範例測試檔, 是基本的,
也可準確根據資料結構去了解問題,
大家不想再花時間為了解題去建測試資料!!!

TOP

若只比對前兩字, 也可:
If Left(Cells(10, i), 2) <> "前置" Then

每3欄為一個群組, STEP  3 才對吧!

TOP

回復 8# Andy2483

有看到隱藏欄,
Sub TEST()
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(Cells(R, "AG"), Cells(10, C)) '定義資料範圍 AG10:???
ReDim Brr(1 To UBound(Arr) - 3, 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
    For k = 1 To 3
        Brr(i - 3, k) = Brr(i - 3, k) + Arr(i, j + k - 1)
    Next k
j01: Next j
Next i
[AC13].Resize(UBound(Brr), 3) = Brr
End Sub


'===================================

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

回復 20# Andy2483


1) 每次發帖都只提供簡化版, 當然得不到正確解答, 除非你真的已可自己修改程式或公式
2) 以這版本來看, 加總條件[卸模]~[架模]~[調產], 都在第11列, 若程式沒修改, 當然不正確
     另外,[前置]MAX-- 又要如何取???
3) 依據上方4個條件, 加總的位在在Q~AF欄, 所以Brr的欄數應變成 1 to 16 而不是 1 to 3
4) k = 1 to 3 這是固定的, 它會隨 j 值變化----j + k

自己再看看原來程式每一行, 若能一一理解, 再來說擴增需求~~

TOP

本帖最後由 准提部林 於 2020-8-26 11:16 編輯

回復 22# Andy2483


[前置]MAX 是要分別從 每個品號(列)  [前置]段裡(標準.實際.誤差) 各取最大   

__取[標準]最大, 同時將該最大[標準]同組的[實際及誤差], 一起填入???
   還是三個分別取最大???

標準 100  實際 120 誤差 -20 (負數--怎比較)
標準 110  實際 100 誤差 10

取: 標準 110  實際 120 誤差 10 ???

TOP

回復 24# Andy2483

慢慢研究:
範例_20200826_v1.rar (221.41 KB)

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題