エクセルを使っていて、特定の文字を含むデータだけをカウントしたり、その合計金額を出したりしたい場面って結構ありますよね。私も仕事でアンケート結果や売上データを整理するときに、条件に合うものだけを上手く集計できなくて悩んだことがあります。エクセルの特定の文字のカウントや合計について検索してみると、複数条件の組み合わせや、ワイルドカードを使った曖昧な検索、さらには大文字と小文字の区別といった応用的なテクニックがたくさん出てきます。この記事では、私が実際に試してみて便利だなと感じた、目的のデータを正確に集計するための様々な方法をご紹介していこうかなと思います。

- 条件に一致するデータを抽出して数を出す基本的な方法
- 一部のキーワードだけを含むデータを探し出すテクニック
- 複数の条件を組み合わせて必要な数値だけを足し合わせる手順
- 計算が合わない原因になる空白や不要な文字を取り除くコツ
エクセルで特定の文字をカウントし合計する
まずは、エクセルでデータ集計の基本となる、セルの件数を数える方法からお伝えしていきます。関数を使うだけで、面倒な手作業から一気に解放されますよ。
COUNTIF関数で条件に合うセルを抽出
特定のキーワードと完全に一致するセルの件数を数えたいときは、COUNTIF関数がとても便利です。例えば、顧客リストの中から「東京」に住んでいる人が何人いるかをパッと出したい時などに使えますね。
基本的な使い方は、=COUNTIF(範囲, 検索条件)という形になります。
検索する文字を直接数式に入れる場合は、必ずダブルクォーテーション(””)で囲むのを忘れないようにしてください。「”東京”」といった感じですね。
もし、単に数値が入っているセルだけを数えたいという場合は、数値が含まれるセルをカウントする方法も参考になるかもしれません。文字を数えるか、数値を数えるかで関数を使い分けるのがポイントかなと思います。
ワイルドカードで部分一致検索を行う手法
完全に一致する言葉だけじゃなくて、「○○株式会社」みたいに前後に別の文字がくっついているデータもまとめて数えたいことってありますよね。そんな時はワイルドカードという記号を使ってみてください。
よく使うのはアスタリスク(*)です。検索条件を「”*東京*”」とすれば、「東京都」でも「東京営業所」でも、とにかく「東京」という文字が含まれていれば全てカウントしてくれます。
| 記号 | 意味 | 例 |
|---|---|---|
| * (アスタリスク) | 0文字以上の任意の文字列 | “*県” (神奈川県、青森県など) |
| ? (クエスチョンマーク) | 任意の1文字 | “??市” (亀山市、山県市など) |
この記号を知っているだけで、検索の自由度がグッと上がりますよ。
セル内に出現する文字数を正確に数える技
アンケートのフリーコメント欄などで、1つのセルの中に特定の単語が何回書かれているかを数えたい場合は、少し工夫が必要です。COUNTIF関数はあくまで「条件を満たすセルの数」を数えるので、1つのセルに2回キーワードが出てきても1件と計算されちゃうんですね。
こんな時は、全体の文字数から、検索したい文字を消した状態の文字数を引き算するという裏技的な計算をします。具体的には、LEN関数とSUBSTITUTE関数を組み合わせます。
公式:=(LEN(対象セル) – LEN(SUBSTITUTE(対象セル, 検索文字, “”))) / LEN(検索文字)
最初は数式が長くて複雑に見えるかもですが、この仕組みを覚えておくとテキスト分析なんかでかなり重宝しますよ。
複数条件を指定して件数を集計する計算式
実際のデータ整理では、「A地区で、かつB商品を買った人」みたいに、複数の条件を同時に満たすものを数えたいケースが多いですよね。こういう「〜であり、かつ〜である(AND条件)」という場合は、COUNTIFS関数の出番です。
条件を後ろにどんどん追加していけるので、複雑な絞り込みも簡単にできちゃいます。
一方で、「A商品かB商品のどちらか(OR条件)」という場合は、一つの関数で処理するのが難しいので、それぞれのCOUNTIF関数の結果を足し算(+)するのが一番シンプルで確実な方法かなと思います。
フィルター適用時の可視セルのみ数える技
表にオートフィルターをかけて、画面に見えている行だけを数えたいのに、普通のCOUNT関数だと非表示になっている行まで数えられてしまって困った経験はないですか?
フィルターで絞り込んだ結果だけを集計したい時は、SUBTOTAL関数を使います。
集計方法の番号を指定するときに、100番台(例えば103ならデータの個数)を選ぶと、非表示の行をしっかり除外して可視セルだけを計算してくれます。
ただし、SUBTOTAL関数自体には「特定の文字だけを数える」という機能がないので、両方を組み合わせたい場合は少し複雑な配列数式を使う必要があります。このあたりはちょっと上級者向けかもしれませんね。
エクセルの特定の文字のカウントや合計の実践

件数を数えるだけでなく、特定の文字を含むデータの「売上」や「経費」の合計金額を出したい場面も多いですよね。ここからは数値を足し算する実践的なテクニックを見ていきましょう。
SUMIF関数で条件に合う数値を足し算
「特定の商品名を含むデータだけ、売上金額を合計したい」という時に活躍するのがSUMIF関数です。先ほどのCOUNTIF関数と似ていますが、最後に「合計したい数値が入っている範囲」を指定するのが特徴です。
例えば、=SUMIF(商品名の範囲, "*Tシャツ*", 売上金額の範囲) と入力すれば、「メンズTシャツ」や「Tシャツ白」といった文字を含む行の金額だけを自動で足し算してくれます。
マイナスの数値だけを集計したいなどの特殊な条件指定については、SUMIF関数を使った応用テクニックも参考にしていただくと、より理解が深まるかなと思います。
日付や数値を基準に曖昧集計を回避する策
先ほど紹介したワイルドカードですが、実は大きな弱点があります。それは「文字列」として入力されているデータにしか使えないという点です。
エクセルが日付(シリアル値)や純粋な数値として認識しているデータに対して、「2023/10/*」のように指定してもうまく計算してくれません。
日付で集計したい場合は、SUMIFS関数を使って「10月1日以上、11月1日未満」のように比較演算子(>=など)で範囲を指定するか、TEXT関数を使って日付を一旦文字列に変換してから集計するのが確実です。
これを知らないと、なぜか結果が0になってしまうという落とし穴にハマりやすいので注意ですね。
大文字小文字の区別や特殊記号を処理する
エクセルの関数はとても賢い反面、デフォルトではアルファベットの大文字「A」と小文字「a」、全角と半角を区別せずに同じものとしてカウントしてしまいます。
これを厳密に区別したい場合は、完全に一致するかを判定してくれるEXACT関数を数式に組み込む必要があります。
また、データの中に記号のアスタリスク(*)そのものが入力されていて、それを検索したい場合は、検索文字の前にチルダ(~)を付けて「~*」と入力します。これをエスケープ処理と呼ぶのですが、特殊記号を扱う時には欠かせないテクニックです。
データ精度を高める事前の徹底した空白処理
計算式は絶対にあっているはずなのに、なぜかカウントや合計が合わない…。そんな時は、データの中に見えない空白(スペース)が紛れ込んでいる可能性を疑ってみてください。
システムから出力したデータによくある現象ですね。集計作業を始める前に、データを綺麗にしておく(データクレンジング)ことがとても重要です。
文字の前後の不要なスペースを取り除くにはTRIM関数が便利です。もっと徹底的に文字間のスペースも全て消したいなら、SUBSTITUTE関数でスペースを空白(””)に置き換えるのがおすすめです。
このひと手間をかけるだけで、計算ミスを防ぐことができますよ。
まとめエクセルの特定の文字のカウントと合計
今回は、目的のデータを正確に集計するための様々なアプローチをご紹介してきました。条件がシンプルな場合はCOUNTIF関数やSUMIF関数で十分ですが、複数の条件が絡んだり、セル内の文字数を厳密に調べたい時は、いくつかの関数を組み合わせる工夫が必要になってきますね。
データが膨大で関数だけでは処理が重くなってしまう場合は、パワークエリやマクロ(VBA)の導入を検討してみるのも一つの手かなと思います。ご自身の扱うデータの種類や目的に合わせて、一番やりやすい方法を選んでみてください。
なお、これらの関数や処理方法はあくまで一般的な目安として捉えていただき、会社の重要なデータを扱う場合や、より複雑なシステムを構築するような場合は、正確な情報を公式サイトで確認したり、最終的な判断は詳しい専門家に相談しながら進めていただくことをおすすめします。
