Excelで特定の文字をカウントするのはVBAですべて解決できる

パソコンパソコン・スマホ教室
スポンサーリンク

「Excelで特定の文字を数えたいけど、どうやって実現すればいいの?」──そんな疑問を抱く人は少なくありません。COUNTIFやIF関数である程度は対応できますが、文字列の一部を柔軟にチェックしたい、もしくは膨大なデータを効率的に処理したい場面では限界が見えてきます。そこで登場するのがVBAによる自動化です。本記事では、初心者から中級者まで納得できる「Excelで特定の文字をカウントする方法」を体系的に解説し、実務ですぐ使える知識を提供します。

スポンサーリンク

Excelで特定の文字をカウントする基本的な考え方

Excelのイメージ

Excelのイメージ


まず押さえておきたいのは、Excelの標準機能だけで文字列をカウントする手段です。ここを理解しておくことで、VBAを使うときに「なぜ自動化が便利なのか」が実感できます。

COUNTIF関数による部分一致検索

COUNTIF関数は指定範囲の中から条件に合致するセルの数をカウントできます。例えば「A列に含まれる“Excel”という単語を数える」なら以下のように記述します。
=COUNTIF(A:A,”*Excel*”)
アスタリスク「*」を前後につけることで部分一致検索が可能になります。これにより、「Excel入門」や「Excel VBA講座」といった文字列もカウント対象になります。

IF関数との組み合わせで結果を見やすく

「含まれていたら○、なければ×」のように結果をわかりやすく表示したい場合はIF関数を組み合わせます。
=IF(COUNTIF(A2,”*Excel*”),”○”,”×”)
これでユーザーは一目で文字の有無を判断できます。

COUNTIFでは解決できない課題と限界

標準関数である程度のことはできますが、現実の業務では次のような課題に直面します。

ここがポイント!

  • 対象範囲が何万件にも及び、処理が重くなる。
  • 条件を複数同時にチェックしたい場合、数式が複雑になりすぎる。
  • セルの中の文字列の「部分的な回数」を正確に数えたいがCOUNTIFでは不可能。

ここで必要になるのがVBAによる柔軟なカスタマイズです。

VBAで特定の文字を数える実用的なコード例

VBAを活用すれば、COUNTIFでは難しいケースもシンプルに解決できます。以下に代表的なコードを紹介します。

文字列の出現回数をセル単位で数える

例えばセル内に「Excel Excel VBA」という文字列があった場合、「Excel」が2回出現していることを正確にカウントしたいとします。次のようなUDF(ユーザー定義関数)を作成すると便利です。


Function CountText(Target As Range, Text As String) As Long
Dim s As String
Dim pos As Long
Dim cnt As Long
s = Target.Value
pos = InStr(s, Text)
Do While pos > 0
cnt = cnt + 1
pos = InStr(pos + 1, s, Text)
Loop
CountText = cnt
End Function

これでセルに =CountText(A1,”Excel”) と入力すると、そのセルに含まれる「Excel」の出現回数が返されます。

範囲全体で特定の文字を合計カウント

複数セルにまたがる検索を自動化したい場合はこちらのコードです。


Function CountTextRange(Target As Range, Text As String) As Long
Dim cell As Range
Dim cnt As Long
For Each cell In Target
cnt = cnt + (Len(cell.Value) - Len(Replace(cell.Value, Text, ""))) / Len(Text)
Next cell
CountTextRange = cnt
End Function

この関数を使えば、A列全体に含まれる「Excel」の出現回数を一発で数えられます。
\=CountTextRange(A\:A,”Excel”)

文字列処理を強化するテクニック

VBAを使うと、さらに踏み込んだ操作が可能です。例えば以下の工夫がよく用いられます。

大文字・小文字の区別

通常のCOUNTIFやReplaceでは「Excel」と「EXCEL」を区別しません。しかしVBAではOption Compare Binaryを指定することで厳密な区別が可能になります。

全角・半角の違い

日本語環境では「Excel」と「Excel」のように全角半角の違いがしばしば問題になります。この場合、StrConv関数を用いて事前にデータを統一すると安定した処理ができます。

複数キーワードの同時検索

「Excel」「VBA」「マクロ」といった複数の単語を一括でカウントしたいときは、配列を使ってループ処理すると効率的です。表形式で結果を出すようにすればレポート作成にも役立ちます。

キーワード 出現回数
Excel 35
VBA 20
マクロ 12

excel 特定 の 文字 カウント VBAに関する疑問解決

Q1: COUNTIFとVBAのどちらを使うべき?

データが数百件程度ならCOUNTIFで十分です。しかし数千件以上や複雑な条件を扱う場合はVBAのほうが圧倒的に効率的です。

Q2: マクロを使わずに文字数カウントはできない?

SUBSTITUTE関数やLEN関数を組み合わせてセル単位の出現回数を数えることは可能ですが、複雑になるのでVBAのほうが実務では現実的です。

Q3: 関数を組み合わせると処理が遅くならない?

はい。大量データにCOUNTIFを多用するとExcelが重くなることがあります。そういうときこそVBAで一括処理するのが最適解です。

今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Excelで特定の文字をカウントする方法には、COUNTIFやIF関数を使った簡易的なやり方と、VBAによる強力な自動化の2つのアプローチがあります。小規模な作業なら標準関数で十分ですが、業務レベルの膨大なデータや精密な文字数管理が必要な場面では、VBAの活用が不可欠です。
今すぐこの記事で紹介した関数やコードを試し、あなたの作業効率を劇的に向上させてください。Excelは「使い方次第」で武器にも足かせにもなります。正しい知識を身につけ、仕事を加速させるパートナーにしましょう。

コメント

タイトルとURLをコピーしました