Excel。セル内の複数の文字列から該当の文字列だけを集計するには、どうしたらいい
<COUNTIF関数+ワイルドカード>
データを読み込んでみたら、データがセルごとに分かれてなく、セル内にまとまっていると、不便なことが結構発生します。
例えば、次の表。
B列の受講希望に科目が入力されています。
受講科目ごとに何件あるのか集計したいのですが、セル内に「Word」や「Excel」といった科目名が、列ごとに区切らえれず、まとめて入力されています。
そのため、集計することができません。
では、どのようにしたら、手早く科目名ごとに集計することができるのでしょうか
受験希望欄に「Word」だったらという条件で件数を算出したいので、使用する関数は「COUNTIF関数」をつかえば、集計することはできます。
ここで、考えないといけないのが、どのような条件を設定すればいいのでしょうか。
そこで、次のような条件はどうでしょうか。
「セル内にWordという文字が含まれている」
この条件ならば、件数を算出することができそうです。
では、どのようにしたら、「含まれる」という条件を設定することができるのでしょうか
「含まれる」を表現するには「ワイルドカード」をつかうことで、対応することができます。
E2に設定した数式を確認していきます。
=COUNTIF($B$2:$B$6,"*"&D2&"*")
設定後、オートフィルで数式をコピーします。
たった、これだけなのですが、COUNTIF関数でワイルドカードを使用するということに気が付かないと、算出するのに時間がかかってしまいます。
最後に、COUNTIF関数の引数の内容を確認しておきましょう。
最初の引数は、範囲。
今回は、B列が対象なので「$B$2:$B$6」。
範囲選択ですが、オートフィルで数式をコピーするので、絶対参照を設定することも忘れないようにします。
2つ目の引数は、検索条件。
「D列の文字を含む」というのが条件なので、D2を「*(アスタリスク)」で囲います。
「*(アスタリスク)」は、「”(ダブルコーテーション)」をつかって挟みます。
さらに文字結合をする「&(アンパサンド)」をつかい、条件が完成します。
ワイルドカードをつかうことで、条件の幅が広がります。
ただ、B列のように、セル内にまとめて入力するよりも、別々の列にするほうが、Excelの様々な機能を使いやすくなります。
表を、データベース化することも、選択肢の中にいれておくのもいいかもしれませんね。