エクセルを使っていると、「セルの中に特定の文字がいくつあるかを自動で数えたい」と思ったことはありませんか?
例えば「商品名に『モニタ』が何回出てくるか知りたい」「5000円以上の金額を入力したセルが何個あるか数えたい」といった場面です。手作業では時間もかかり、ミスも出やすい…。そこで頼れるのがVBAによる文字カウントです。この記事では、ただの基礎解説にとどまらず、実務で本当に役立つテクニックまで徹底解説します。読み終えた頃には「え?こんなことまでできるの?」と驚くはずです。
CountIfメソッドの基礎を理解する
CountIfの基本構文
CountIfメソッドは指定範囲の中で条件に合うセルの数を返します。構文は次のとおりです。
WorksheetFunction.CountIf(セル範囲, 条件)
例えば「A列に『モニタ』が入力されているセルの数」を数えたい場合は以下のように書きます。
WorksheetFunction.CountIf(Range("A:A"), "モニタ")
これで「モニタ」と一致するセル数が自動で取得できます。
部分一致の応用
完全一致だけでなく、ワイルドカードを使えば柔軟な検索が可能です。
条件 | 意味 |
---|---|
“ノート*” | 「ノート」で始まる文字列 |
“*ート” | 「ート」で終わる文字列 |
“*トパ*” | 「トパ」を含む文字列 |
このテクニックを知っているかどうかで、集計の効率が一気に変わります。
CountIfでは足りない?CountIfsの出番
複数条件を一度に指定する
「A社の商品で、かつ値段が10万円を超えるもの」など、条件が2つ以上になる場合はCountIfsを使います。
WorksheetFunction.CountIfs(Range("A:A"), "A社", Range("D:D"), ">100000")
このように複数の範囲と条件を組み合わせれば、かなり複雑な集計も可能になります。
別シートを参照する方法
条件範囲に別シートを指定することもできます。
WorksheetFunction.CountIfs(Sheets("売上").Range("A:A"), "A社")
これにより大規模なファイルでも自在に分析できます。
実務で役立つ応用テクニック
数値条件を使いこなす
例えば「D列に5000円超のセルがいくつあるか」を数えたいなら、こう書きます。
WorksheetFunction.CountIf(Range("D:D"), ">5000")
単純ですが、売上や在庫チェックに欠かせない応用例です。
ユーザー定義関数で文字数をカウント
CountIfではセル単位の判定しかできません。もし「セルの中で特定の文字が何回出てくるか」を数えたいならVBAで自作関数が有効です。
Function CharCount(rng As Range, target As String) As Long Dim i As Long, c As Long For i = 1 To Len(rng.Value) If Mid(rng.Value, i, Len(target)) = target Then c = c + 1 End If Next i CharCount = c End Function
これを使えば、セル内の「A」が何回登場するかなども正確に数えられます。
エラーチェックと安全なコード
実務では「空白セル」や「文字以外の値」が混ざることもあります。
そんな時はIf文で条件をつけて、エラーを防ぐのがおすすめです。
excel 特定 の 文字 カウント VBAに関する疑問解決
Q1: CountIfとFindの違いは?
CountIfは件数を一瞬で返しますが、どのセルかは分かりません。
一方Findはセルの場所を特定するのに向いています。両者を使い分けましょう。
Q2: 大量データでも速度は大丈夫?
数万件程度ならCountIfで問題ありません。ただし繰り返し処理が多い場合は配列に取り込んでから判定する方が高速になります。
Q3: 関数とVBAはどちらを使うべき?
単純な条件ならExcelの関数で十分ですが、複数条件やセル内の文字数カウントなど、関数で表現できない処理はVBAの出番です。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
excel 特定 の 文字 カウント VBAは、ただのセル数を数えるだけではなく、条件の工夫やユーザー定義関数を組み合わせることで驚くほど強力なツールになります。
この記事で紹介した内容を押さえれば、
- 条件付きカウントの基本から応用まで理解できる
- 部分一致や数値条件を自在に扱える
- セル内の文字出現回数まで分析できる
実務に直結するデータ集計力が格段にアップします。ぜひ今日から取り入れて、業務を一段上の効率化へ進めてみてください。
コメント