導入
実務の現場では、売上データや経費精算表など、膨大な行数を持つ表から「特定のルールに合致するデータだけを抽出・集計したい」という場面が多々あります。単なる合計(SUM関数)や単一条件の合計(SUMIF関数)だけでは対応しきれないケースも多いでしょう。今回は、ワイルドカードを活用して、柔軟に条件を指定し、効率的に合計を算出するテクニックを解説します。
基礎知識
Excelで条件付き集計を行う際、最も頻繁に使われるのが「SUMIF関数」です。
SUMIF関数の基本構文は「=SUMIF(範囲, 検索条件, 合計範囲)」です。
ここで重要なのが「検索条件」の指定方法です。通常は「”売上”」のように完全一致を指定しますが、ここにワイルドカードを組み合わせることで、曖昧な条件検索が可能になります。
・「?(疑問符)」:任意の1文字を表します。
・「(アスタリスク)」:0文字以上の任意の文字列を表します。
これらを組み合わせることで、「〇〇で始まる」「〇〇を含む」といった柔軟な条件設定が可能になります。
実装/解決策
例えば、A列に「商品名」、B列に「売上金額」が入っているリストがあるとします。
「商品名の2文字目が『え』であるもの」を合計したい場合、検索条件を「?え」と設定します。
・「?」:先頭の1文字は何でも良い。
・「え」:2文字目が「え」であること。
・「」:3文字目以降は何文字続いても良い。
このロジックを使うことで、複雑な抽出作業を関数一つで完結できます。
サンプルプログラム
実務でVBAからこの関数をセルに書き込みたい場合、以下のようなコードが有効です。そのままコピーして活用してください。
Sub SetSumifFormula()
‘ A2:A101に項目、B2:B101に金額がある前提
‘ セルD1に条件に一致する合計を表示する
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
‘ SUMIF関数を入力する(2文字目が「え」のものを合計)
‘ 注意:VBA内でダブルクォーテーションを記述する際は、””で囲む必要があるため、
‘ 条件部分は “””” で囲むのがポイントです。
ws.Range(“D1”).Formula = “=SUMIF(A2:A101, “”?え””, B2:B101)”
MsgBox “合計を算出しました。”
End Sub
応用・注意点
実務で陥りやすい注意点を2つ挙げます。
1. SUMIFS関数との使い分け:
条件が複数(例:商品名が「え」を含み、かつ担当者が「田中」である等)の場合は、SUMIFではなくSUMIFS関数を使用してください。SUMIFSは「合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2…」という順序になるため、引数の順番がSUMIFと異なる点に注意が必要です。
2. ワイルドカード自体を検索したい場合:
もしデータの中に「?」や「」そのものが含まれている場合、そのまま検索するとワイルドカードとして解釈されてしまいます。その場合は、検索したい文字の前に「~(チルダ)」を付けて「~?」「~」と記述することで、文字として認識させることができます。
現場のデータは不規則なことも多いですが、このワイルドカードの仕組みを理解しておけば、どんなデータ構造にも柔軟に対応できるはずです。ぜひ日々の業務で活用してください。
