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