複数の条件にあう数字の合計をだす(SUMIF関数をVBAでつくる)

複数の項目に該当する物の合計を出したいときがあります。そんなときに使えるVBAを作りました。

目次

完成イメージ

リストにしている検索ワードのそれぞれの合計値を入力する。

VBAコード

Sub 条件にあう数字の合計()

Dim m As Long
Dim arr(100) As Long
Dim k As Long
For k = 4 To 7

    Set 戻り値 = Range("B:B").Find(Cells(2, k).Value)
    場所 = 戻り値.Address
    m = 0
    '配列に値を割り当てる→合計をTotalに代入する
    Do Until 戻り値 Is Nothing 'Do Until~Loopステートメントは、セルがNothingになるまで検索を繰り返す
        arr(m) = Range(戻り値.Address, 戻り値.Address).Offset(0, 1).Value
        Total = Total + arr(m)
        m = m + 1
        Set 戻り値 = Range("B:B").FindNext(戻り値)
        If 場所 = 戻り値.Address Then '場所と戻り値が同じ値になるまで続ける(=最初に戻ってきたら終了)
        Exit Do
        End If
    Loop
    Cells(3, k).Value = Total
    Total = 0
Next k

End Sub
  • FindNextを使って文字を探す。
  • Offsetでその文字の横にある数字を指示。
  • 数字を配列に記憶させる。
  • 配列に記憶した値の合計をだす。
  • 上記のことを繰り返し処理(For Next)する。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次