エクセルでデータを扱っていると、「特定の文字が何個あるか数えたい」「複数の列をまとめてカウントしたい」「1つのセル内に特定の文字が何回出現するか知りたい」といった場面に遭遇することはありませんか?
この記事では【Excel】エクセルで特定の文字をカウント(複数列や複数条件も、セル内の個数も、完全一致と部分一致)方法について解説していきます。
ポイントは
・COUNTIF関数で完全一致の文字をカウント
・ワイルドカードを使って部分一致でカウント
・LEN関数とSUBSTITUTE関数でセル内に特定の文字が何回出現するかカウント
です。
それでは詳しく見ていきましょう。
目次
エクセルで特定の文字を完全一致でカウントする方法1【COUNTIF関数の基本】
エクセルで特定の文字と完全に一致するセルの数を数える最も基本的な方法が、COUNTIF関数を使うことです。
COUNTIF関数は指定した条件に一致するセルの個数を数えることができ、特定の文字列のカウントに最適です。
例えば、以下のようなデータがあるとします。
このデータで「アボカド」という文字が何個あるかを数えたい場合、この方法を使えば簡単に実現できるでしょう。
解決方法
具体的な手順を見ていきましょう。
まず、カウント結果を表示したいセル(例としてC2)に以下の数式を入力します。
=COUNTIF(A2:A8,”アボカド”)
この数式は、A2からA8の範囲で「アボカド」と完全に一致するセルの個数を数えます。
COUNTIF関数の構文は「=COUNTIF(範囲,検索条件)」となっており、検索条件に文字列を直接指定することで完全一致でカウントされるわけです。
結果として「3」が表示され、「アボカド」が3個あることが確認できます。
セル参照を使って検索する文字を動的に変更することもできます。
B2セルに検索したい文字(例として「サーモン」)を入力し、C2セルに以下の数式を入力します。
=COUNTIF(A2:A8,B2)
これでB2セルの値を変更するだけで、カウント結果も自動的に更新されます。
アボカドに変更して試してみましょう。
【操作のポイント:COUNTIF関数の第1引数に検索範囲、第2引数にカウントしたい文字列を指定することで、完全一致でカウントできます】
複数列をまとめてカウントする方法
複数の列にまたがってカウントしたい場合は、範囲を広げるか、複数のCOUNTIF関数を合計します。
例えば、A列とB列の両方をカウントする場合は、以下のように記述します。
=COUNTIF(A2:B8,”アボカド”)
この数式はA列とB列をまとめてカウントします。
または、各列を個別にカウントして合計する方法もあります。
=COUNTIF(A2:A8,”アボカド”)+COUNTIF(B2:B8,”アボカド”)
この方法は列が離れている場合に便利でしょう。
エクセルで部分一致で特定の文字をカウントする方法2【ワイルドカードを使用】
特定の文字を含むセルをカウントしたい場合もあるでしょう。
そんな時に役立つのが、COUNTIF関数でワイルドカードを使った部分一致のカウントです。
ワイルドカードを使えば、「アボカド」という文字を含むすべてのセル(「アボカドサラダ」「冷凍アボカド」など)をカウントできます。
例えば、以下のようなデータで部分一致をカウントしたい場合を考えてみましょう。
「アボカド」という文字を含む商品がいくつあるかを数えたい場合に最適です。
解決方法
「ホーム」タブをクリックして、カウント結果を表示したいセルに移動します。
【ここに図を挿入】
C2セルに以下の数式を入力します。
=COUNTIF(A2:A8,”*アボカド*”)
この数式は、A2からA8の範囲で「アボカド」という文字を含むセルの個数を数えます。
「*」はワイルドカードと呼ばれ任意の文字列を表すため、「アボカド」の前後に何か文字があってもカウントされるわけです。
結果として「3」が表示され、「アボカドサラダ」「冷凍アボカド」「アボカドディップ」の3つがカウントされます。
特定の文字で始まるセルをカウントしたい場合は、前方のワイルドカードを省略します。
=COUNTIF(A2:A8,”アボカド*”)
この数式は「アボカド」で始まるセルだけをカウントします。
逆に、特定の文字で終わるセルをカウントする場合は、後方のワイルドカードを省略します。
=COUNTIF(A2:A8,”*サラダ”)
この数式は「サラダ」で終わるセルだけをカウントするでしょう。
【操作のポイント:COUNTIF関数でワイルドカード「*」を使用することで、特定の文字を含むセル(部分一致)の個数をカウントできます】
複数条件で部分一致をカウントする方法
複数のキーワードのいずれかを含むセルをカウントしたい場合は、複数のCOUNTIF関数を合計します。
=COUNTIF(A2:A8,”*アボカド*”)+COUNTIF(A2:A8,”*サーモン*”)
この数式は「アボカド」を含むセルと「サーモン」を含むセルの合計数を返します。
注意点として、「アボカドとサーモン」のように両方のキーワードを含むセルがある場合は重複してカウントされます。
エクセルで1つのセル内に特定の文字が何回出現するかカウントする方法3【LEN関数とSUBSTITUTE関数の組み合わせ】
1つのセルの中に特定の文字が何回出現するかを数えたい場合もあるでしょうか?
そんな時には、LEN関数とSUBSTITUTE関数を組み合わせた方法が便利です。
SUBSTITUTE関数で特定の文字を削除し、削除前後の文字数の差を計算することで、セル内の文字の出現回数をカウントできます。
例えば、以下のようなデータがあるとします。
1つのセル内に「アボカド」という文字が何回出現するかを数えたい場合を考えてみましょう。
解決方法(完全一致でセル内の出現回数をカウント)
「ホーム」タブをクリックして、カウント結果を表示したいセル(例としてB2)に移動します。
B2セルに以下の数式を入力します。
=(LEN(A2)-LEN(SUBSTITUTE(A2,”アボカド”,””)))/LEN(“アボカド”)
この数式は、A2セルから「アボカド」という文字列をすべて削除し、削除前後の文字数の差を「アボカド」の文字数で割ることで出現回数を計算します。
具体的には、「アボカドとアボカドのサラダ」から「アボカド」を削除すると「とのサラダ」となり、文字数が12文字から7文字に減少するため、差分の5文字を「アボカド」の4文字で割ると1.25…となりますが、実際には2回出現しているわけです。
数式を下方向にコピーすれば、各セル内の「アボカド」の出現回数が表示されます。
結果として1行目は「2」、2行目は「0」、3行目は「0」、4行目は「1」となります。
セル参照を使って検索する文字を動的に変更することもできます。
C2セルに検索したい文字(例として「サーモン」)を入力し、D2セルに以下の数式を入力します。
=(LEN(A2)-LEN(SUBSTITUTE(A2,C2,””)))/LEN(C2)
これでC2セルの値を変更するだけで、カウント結果も自動的に更新されるでしょう。
↓アボカドに変更した後
【操作のポイント:LEN関数で元の文字数を取得し、SUBSTITUTE関数で特定の文字を削除した後の文字数との差を計算することで、セル内の文字の出現回数をカウントできます】
特定の1文字がセル内に何回出現するかカウントする方法
1文字だけ(例えば「あ」や「ン」)がセル内に何回出現するかを数えたい場合は、より簡単な数式で対応できます。
=LEN(A3)-LEN(SUBSTITUTE(A3,”ン”,””))
この数式は、A3セルから「ン」という文字をすべて削除し、削除前後の文字数の差を計算します。
1文字の場合は割り算が不要なため、シンプルに差分だけで出現回数が分かります。
例えば「サーモン、サーモン、サーモン」というテキストの場合、「ン」は3回出現するため、結果として「3」が表示されます。
カンマ(,)やスペースなどの記号の出現回数をカウントすることも可能です。
=LEN(A3)-LEN(SUBSTITUTE(A3,”、”,””))
この数式は読点(、)の出現回数をカウントし、「サーモン、サーモン、サーモン」の場合は「2」が表示されるわけです。
また、大文字小文字を区別してカウントしたい場合は、SUBSTITUTE関数がそのまま使えます。
SUBSTITUTE関数は大文字小文字を区別するため、「A」と「a」は別の文字としてカウントされます。
まとめ エクセルで特定の文字をカウント(複数列や複数条件・セル内の個数・完全一致と部分一致)方法
エクセルで特定の文字をカウントする方法をまとめると、COUNTIF関数で完全一致の条件を指定すれば特定の文字列と完全に一致するセルの個数を簡単にカウントでき、ワイルドカード「*」を使えば部分一致でカウントできます。
また、LEN関数とSUBSTITUTE関数を組み合わせれば1つのセル内に特定の文字が何回出現するかをカウントでき、複数列をまとめてカウントする場合は範囲を広げるか複数のCOUNTIF関数を合計すれば対応可能です。
これらの方法を状況に応じて使い分けていけば、ほとんどのケースで文字カウントの問題を解決できるでしょう。
特に範囲内の完全一致カウントにはCOUNTIF関数が最も基本的で理解しやすいため、まずこの方法をマスターすることをおすすめします。
ただし、セル内の文字の出現回数を数える場合はLEN関数とSUBSTITUTE関数の組み合わせが必須なため、用途に応じて適切な関数を選択することも大切かもしれません。
エクセルの文字カウント機能を正しく理解して、効率的なデータ分析を実現していきましょう!