Excelやスプレッドシートのデータで複数の条件が規則性のある文字列である場合、ワイルドカードを使用すればSUMIF関数の条件をシンプルに作成して合計を出すことができます。
この記事では、SUMIF関数でワイルドカードを用いて集計する方法について解説します。日付や数字の場合はワイルドカードは使用できないので代替方法をご紹介します。
この記事の内容
SUMIFでワイルドカードを使って合計を出す
SUMIF関数でワイルドカードを使って集計する方法を解説します。解説には、サンプルとして次の商品の売上表を使います。
ワイルドカード「*」を使う
ワイルドカード「*」は、0文字以上の任意の文字列を表します。
店舗番号列から「B」から始まる店舗を検索したい場合は条件に「”B*”」と入力すると、文字列の並びが「B」+「任意の文字列」であるセルを検索できます。ただし「B」のみのセルもヒットするので注意してください。
=SUMIF(C5:C14,"B*",E5:E14)
「B」を含む店舗 | 金額 |
B(5行目) | 24,800円 |
B004(7行目) | 39,200円 |
B005(9行目) | 5,700円 |
B002(11行目) | 6,100円 |
B2(14行目) | 42,900円 |
先頭に「B」の付く店舗の合計金額「118,700円」を計算することができました。
ワイルドカード「?」を使う
ワイルドカード「?」は、任意の1文字を表します。
下の表での店舗番号列から「B○○〇」から始まる店舗を検索したい場合は条件に「”B???”」と入力すると、文字列の並びが「B」+「任意の文字3文字」であるセルを検索できます。
=SUMIF(C5:C14,"B???",E5:E14)
文字列の検索には、「*」と「?」の2種類のワイルドカードをを状況に応じて使い分けられると便利です。
日付・数字の場合は
SUMIF関数でワイルドカードを使っても文字列の条件の合計しか出せません。
続いては、検索条件が日付や数字のあいまい検索について代替案のサンプルをご紹介しています。
数値が「1?」のデータを合計する
10個、15個・・・などの数値を条件として合計を出したい場合があります。
数値の条件は「10以上20未満」となるので、10以上のSUMIF関数の結果から20以上をマイナスすることで取得できます。数式で表すと次のようになります。
=SUMIF(D5:D14,">=10",E5:E14)-SUMIF(D5:D14,">20",E5:E14)
日付が「2019/09/??」のデータを合計する
これも言い換えると「2019/09/01以上2019/10/01未満」という条件なので上記同様に範囲指定で対応できます。
=SUMIF(B5:B14,">=2019/09/01",E5:E14)-SUMIF(B5:B14,">2019/10/01",E5:E14)
日付が「????/??/01」のデータを合計する
2019/01/01, 2019/10/01・・・など月初のみの集計を行いたいケースです。この場合は販売日から日付の部分を文字列で切り出して検索列を作ります。
日付を文字列で切り出すにはTEXT関数「=TEXT(日付, “dd”)」で行うことができます。ちなみに月だけを取り出す場合は「=TEXT(日付, “mm”)」です。
これで通常の文字列と同様にSUMIF関数で集計できるようになりました。
=SUMIF(F5:F14,"01",E5:E14)
以上、SUMIF関数でワイルドカードを利用して集計を行う方法でした。
コメント