「Excelで”済”って入ってるセルはいくつある?」
「文章の中に”○○”という単語が何回出てくる?」
こんな集計をしたいと思ったことはありませんか?
Excelには、特定の文字や文字列を数える関数が用意されています。
これを使えば、いちいち目で数えなくても、一瞬でデータを集計できます。
この記事では、初心者の方でもわかるように、Excelで特定の文字をカウントする基本的な方法をわかりやすく解説します。
特定の文字が入っているセルの数を数える|COUNTIF
COUNTIFの基本
Excelで最もよく使われるのが COUNTIF
関数です。
基本の書式:
=COUNTIF(範囲, 条件)
この関数は、指定した範囲の中で、条件に当てはまるセルの個数を数えてくれます。
パラメータの説明:
- 範囲:調べたいセルの範囲(例:A1:A10)
- 条件:探したい文字や条件(例:”済”、”>50″など)
例1|完全一致で「済」を数える
例えば、A1:A10に「済」「未」「済」などのステータスが入っている場合を考えてみましょう。
完全一致の場合:
=COUNTIF(A1:A10, "済")
この数式は、「済」と完全に一致するセルだけを数えます。「処理済み」や「完済」のように、他の文字が含まれているセルは数えません。
実際の例:
セル | 内容 | カウント対象 |
---|---|---|
A1 | 済 | ○ |
A2 | 未 | × |
A3 | 済 | ○ |
A4 | 処理済み | × |
この場合、結果は「2」になります。
例2|部分一致で「済」を含むセルを数える
「済」という文字が含まれているセル全てを数えたい場合は、ワイルドカード *
を使います。
部分一致の場合:
=COUNTIF(A1:A10, "*済*")
*
は「どんな文字列でもOK」という意味なので、「処理済み」「完済」「未済」なども全てカウントされます。
実際の例:
セル | 内容 | カウント対象 |
---|---|---|
A1 | 済 | ○ |
A2 | 未 | × |
A3 | 処理済み | ○ |
A4 | 完済 | ○ |
この場合、結果は「3」になります。
その他のワイルドカード使用例
前方一致(「済」で始まる):
=COUNTIF(A1:A10, "済*")
後方一致(「済」で終わる):
=COUNTIF(A1:A10, "*済")
1文字だけ違いを許可(「?」を使用):
=COUNTIF(A1:A10, "?済")
これは「完済」「未済」のように、「済」の前に1文字だけあるものを数えます。
これでセル単位で「何件済んでいるか」などが簡単に集計できます。次は、文章中に含まれる特定の文字数そのものを数える方法を紹介します。
セル内の特定の文字数を数える|LENとSUBSTITUTE
LEN・SUBSTITUTEを組み合わせて使う
例えば、A1に「ありがとう ありがとう」と入っていて、「ありがとう」が何回入っているか数えたい場合があります。
基本の数式:
=(LEN(A1)-LEN(SUBSTITUTE(A1,"ありがとう","")))/LEN("ありがとう")
仕組みを詳しく解説
この数式がどのように働くかを、ステップごとに見てみましょう。
元の文字列: 「ありがとう ありがとう」(8文字)
LEN(A1)
で元の文字数を数える- 結果:8文字
SUBSTITUTE(A1,"ありがとう","")
で「ありがとう」を空文字に置換- 「ありがとう ありがとう」→「 」(スペース1文字のみ)
LEN(SUBSTITUTE(A1,"ありがとう",""))
で置換後の文字数を数える- 結果:1文字
- 差を取る:
8 - 1 = 7
- これは削除された文字数
- 単語の長さで割る:
7 ÷ 5 = 1.4
- 「ありがとう」は5文字なので、
7 ÷ 5 = 1.4
- 「ありがとう」は5文字なので、
あれ?計算が合わない?
実は上記の例では、スペースがあるため計算が複雑になります。正確な例で説明し直しましょう。
正確な例:
A1に「ありがとうありがとう」(スペースなし、10文字)が入っている場合
- 元の文字数:10文字
- 「ありがとう」を削除後:0文字(空文字)
- 差:10 – 0 = 10文字
- 「ありがとう」の文字数で割る:10 ÷ 5 = 2回
結果:「ありがとう」が2回含まれている
実用的な例
文章中の「です」を数える:
=(LEN(A1)-LEN(SUBSTITUTE(A1,"です","")))/LEN("です")
特定の文字「あ」の出現回数:
=LEN(A1)-LEN(SUBSTITUTE(A1,"あ",""))
(1文字の場合は最後の割り算は不要)
これで文章の中に何回「ありがとう」が含まれるかも集計できます。次は、応用編として複数条件で数えたい場合を見ていきましょう。
応用|複数の条件で数えたい場合
COUNTIFSを使う
COUNTIFS
を使うと複数条件を同時にカウントできます。これは非常に実用的な機能です。
基本の書式:
=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, ...)
例1|2つの条件を満たすセルを数える
A列に進捗状況、B列に重要度が入っている表で、「済」かつ「重要」のものを数えたい場合:
=COUNTIFS(A1:A10, "済", B1:B10, "重要")
データ例:
行 | A列(進捗) | B列(重要度) | カウント対象 |
---|---|---|---|
1 | 済 | 重要 | ○ |
2 | 未 | 重要 | × |
3 | 済 | 普通 | × |
4 | 済 | 重要 | ○ |
この場合、結果は「2」になります。
例2|数値条件との組み合わせ
A列に点数、B列に科目名が入っている場合で、「数学」かつ「80点以上」を数える:
=COUNTIFS(A1:A20, ">=80", B1:B20, "数学")
例3|日付との組み合わせ
A列に完了日、B列にステータスが入っている場合で、「今月完了」かつ「済」を数える:
=COUNTIFS(A1:A50, ">="&DATE(2024,6,1), A1:A50, "<"&DATE(2024,7,1), B1:B50, "済")
より高度なカウント方法
SUMPRODUCT関数を使った柔軟なカウント
複雑な条件の場合は、SUMPRODUCT
関数も便利です。
例:文字列に「重要」または「緊急」が含まれるセルを数える
=SUMPRODUCT((ISNUMBER(SEARCH("重要",A1:A10)))+(ISNUMBER(SEARCH("緊急",A1:A10))))
配列数式を使った高度なカウント
例:各セルの文字数が10文字以上のセルを数える
=SUMPRODUCT(--(LEN(A1:A10)>=10))
よくある疑問と解決方法
Q1. 大文字・小文字を区別せずにカウントしたい
解決法: UPPER
関数や LOWER
関数を組み合わせます。
=COUNTIF(A1:A10, UPPER("abc"))
または範囲全体を大文字に変換:
=SUMPRODUCT(--(UPPER(A1:A10)="ABC"))
Q2. 空白セルを除いてカウントしたい
解決法: 条件に「空白以外」を追加します。
=COUNTIFS(A1:A10, "済", A1:A10, "<>")
"<>"
は「空白以外」という意味です。
Q3. エラーが表示される
よくあるエラーと原因:
- #VALUE!エラー:範囲のサイズが一致していない
- #NAME?エラー:関数名のスペルミス
- #REF!エラー:参照先のセルが削除された
対策:
- 範囲指定を再確認する
- 関数名のスペルを確認する
- 絶対参照($A$1:$A$10)を使用する
Q4. カウント結果が0になってしまう
チェックポイント:
- 文字列の前後にスペースが入っていないか
- 全角・半角が一致しているか
- 条件式の書き方が正しいか
確認方法: TRIM
関数でスペースを除去して比較:
=COUNTIF(A1:A10, TRIM("済"))
実践的な活用例
活用例1:プロジェクト管理
タスク管理表で進捗を集計:
完了タスク数: =COUNTIF(D2:D100, "完了")
未着手タスク数: =COUNTIF(D2:D100, "未着手")
進行中タスク数: =COUNTIF(D2:D100, "進行中")
活用例2:アンケート集計
選択肢ごとの回答数を集計:
満足: =COUNTIF(B2:B500, "満足")
やや満足: =COUNTIF(B2:B500, "やや満足")
普通: =COUNTIF(B2:B500, "普通")
活用例3:在庫管理
在庫状況の集計:
在庫あり: =COUNTIFS(C2:C200, ">0", A2:A200, "<>")
在庫切れ: =COUNTIF(C2:C200, 0)
発注必要: =COUNTIFS(C2:C200, "<=10", C2:C200, ">0")
活用例4:テキスト分析
文書中のキーワード出現頻度:
=SUMPRODUCT((LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"重要","")))/LEN("重要"))
まとめ
今回はExcelで特定の文字をカウントする方法について詳しく紹介しました。
重要なポイント:
COUNTIF
で範囲内に特定の文字があるセルの個数を集計- ワイルドカード(*、?)で柔軟な検索が可能
LEN
とSUBSTITUTE
を組み合わせれば、セル内の文字列の出現回数もカウント可能COUNTIFS
で複数条件の集計もできるSUMPRODUCT
を使えばより複雑な条件も対応可能
覚えておきたい基本パターン:
- 完全一致:
=COUNTIF(範囲, "文字")
- 部分一致:
=COUNTIF(範囲, "*文字*")
- 複数条件:
=COUNTIFS(範囲1, 条件1, 範囲2, 条件2)
- 文字出現回数:
=(LEN(セル)-LEN(SUBSTITUTE(セル,"文字","")))/LEN("文字")
こんなときに活用しよう:
- プロジェクトの進捗管理
- アンケートの集計作業
- 在庫や売上の分析
- 文書やレポートの内容分析
- 品質管理のチェック項目集計
コメント