7/14/2022

Excel。セル内の複数の文字列から該当の文字列だけを集計するには、どうしたらいい

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の様々な機能を使いやすくなります。


表を、データベース化することも、選択肢の中にいれておくのもいいかもしれませんね。