5/19/2020

Excel。SUMIF関数で検索条件が部分一致の時には、ワイルドカードで対応します。【Wildcard】

Excel。SUMIF関数で検索条件が部分一致の時には、ワイルドカードで対応します。

<SUMIF関数>

様々な関数がExcelには用意されていて、便利な関数も多いのですが、その関数を使いたくても、表の方が、対応していない作り方だと、シンプルに関数を使うことができないケースがあります。

次の表がそのパターンの一つです。

この表を基にラーメン類の集計と定食類の集計をおこなうとします。

表をみると、カテゴリーの列がありません。

カテゴリーの列が用意されていて、その列に「ラーメン」や「定食」というデータが入力されていれば、そのカテゴリーを使って、SUMIF関数を使って、集計することができるはずです。

ただ、残念ながら今回の表には、カテゴリーのようなデータがある行がありません。

このような表の場合、どのようにしたらいいのでしょうか?

考え方としては、単一条件で合算値を算出したい場合に使用する「SUMIF関数」は使うのですが、検索条件と一致しないと算出することができません。

今回は、醤油ラーメンもあれば味噌ラーメンもあります。

そこで、『ワイルドカード』を組み合わせて使うことで、カテゴリーの列がなくても集計することができます。

H2にSUMIF関数ダイアログボックスを表示します。

範囲には、$B$2:$B$11と設定します。オートフィルで数式をコピーするので、絶対参照も合わせて設定します。

なお、SUMIF関数で、この範囲が理解しにくいところですね。

この範囲は、次の検索条件のデータがある範囲という意味の範囲です。

検索条件ですが、ここをラーメンとか定食と入力しても、検索することができないので、ワイルドカードを使う必要があります。

なので、"*"&G2

今回は、幸いにして、「~ラーメン」「~定食」とそのコトバで終了する商品名だけなので、ワイルドカードの「*(アスタリスク)」を前に設定することで対応できます。

仮に、"*"&G2&”*”と前後に「*(アスタリスク)」で囲ってしまうと、「ラーメン定食」も対象になってしまうので、注意が必要です。

また、「冷やし中華」のように「ラーメン」という文字がない場合は、検索することができませんので、数式をアレンジする必要が発生します。

合計範囲には、$E$2:$E$11と設定します。

こちらも、オートフィルで数式をコピーしますので、絶対参照を設定しておきます。

あとは、OKボタンをクリックして、オートフィルで数式をコピーして確認してみましょう。

なお、H2の数式は、
=SUMIF($B$2:$B$11,"*"&G2,$E$2:$E$11)

ご覧のように、カテゴリーの列がなくても、ワイルドカードを使用することで、カテゴリーごとに集計することができましたが、今回のように、「~ラーメン」「~定食」というように固定されたパターンとは限らないと思われますので、カテゴリーのような列をつくることを管理運営上、お勧めします。