Excelを使ってデータ集計をしていると、
「セルに特定の文字が含まれていたら自動的に計算してほしい」
という場面は非常に多くあります。
たとえば、次のようなケースです。
- 商品名に「A」が含まれていたら売上を合計したい
- 備考欄に「返品」と書かれていたら金額をマイナス計上したい
- コメントに「OK」とあれば対象件数をカウントしたい
このような「特定の文字が入っていたら計算する」処理は、
IF関数をはじめ、SUMIF関数やCOUNTIF関数を使うことで簡単に自動化できます。
本記事では、Excel標準関数のみで行える方法を、
初心者にもわかりやすく、実務例を交えながら詳しく解説します。
目次
- ✅ 基本の考え方:IF関数+SEARCH関数で条件を設定する
- ・特定の文字を含む場合に計算する基本構文
- ✅ SUMIF関数で「特定の文字を含む行の合計」を求める
- ・構文
- ✅ COUNTIF関数で「特定の文字を含む件数」を数える
- ✅ 複数の文字条件で計算する(OR条件・AND条件)
- ・OR条件:「AまたはBを含む」
- ・AND条件:「AもBも含む」
- ✅ 特定の文字が含まれていない場合の計算
- ✅ SUMIFS関数で複数条件の合計を効率化
- ✅ LEN関数+SUBSTITUTEで文字数に応じた計算を行う
- ✅ FILTER関数で特定文字を含む行を抽出して集計(Excel 365対応)
- ・抽出
- ・合計
- ✅ 実務例①:「返品」を含むデータをマイナス集計する
- ✅ 実務例②:「A」「B」など特定グループごとに売上を自動合計
- ✅ 実務例③:「OK」を含むデータだけ平均を計算
- ✅ 条件付き書式と組み合わせて視覚的に確認
- ✅ 注意点:SEARCH関数のエラー処理とFIND関数との違い
- ✅ RPAやPower Automateとの連携で自動処理化も可能
- ✅ まとめ:特定の文字を条件に計算してExcel集計を自動化しよう
✅ 基本の考え方:IF関数+SEARCH関数で条件を設定する
まず、特定の文字が含まれているかを判定する方法をおさらいしましょう。
セルA2に文字列があり、「特定の文字を含む場合に計算」したいときは、
IF関数とSEARCH関数を組み合わせます。
・特定の文字を含む場合に計算する基本構文
"=IF(ISNUMBER(SEARCH("A",A2)),計算式,0)"
・説明
SEARCH("A",A2)
:「A」がA2に含まれているか検索ISNUMBER(...)
:含まれていればTRUE、含まれなければFALSEIF(...)
:TRUEなら計算式を実行し、FALSEなら0を返す
・例
B2に売上金額が入っている場合:
"=IF(ISNUMBER(SEARCH("A",A2)),B2,0)"
これで、「商品名(A2)」に「A」が含まれているときだけ、売上(B2)が反映されます。
他の文字列には0が入るため、合計時に影響しません。
✅ SUMIF関数で「特定の文字を含む行の合計」を求める
特定の文字が含まれる行をすべて合計したい場合は、SUMIF関数を使うのが最も簡単です。
・構文
"=SUMIF(範囲,条件,合計範囲)"
・例
"=SUMIF(A2:A10,"A",B2:B10)"
・解説
A2:A10
:検索対象(文字を含む列)"*A*"
:「A」を含むセルを条件に指定B2:B10
:合計する金額列
これにより、「A」を含む商品名の行だけが自動的に集計されます。
「A商品」「A-01」などの部分一致にも対応しているのがポイントです。
参考:【Excel】COUNTIF/SUMIF関数を使って条件付き集計を行う方法とは?徹底解説!
✅ COUNTIF関数で「特定の文字を含む件数」を数える
合計ではなく、「何件あったか」を数えたいときにはCOUNTIF関数を使います。
"=COUNTIF(A2:A10,"返品")"
これで、「返品」という文字を含むセルの数をカウントできます。
たとえば、5件中2件が「返品」と書かれていれば結果は「2」となります。
この方法は、コメント欄や備考欄の分析などにも便利です。
✅ 複数の文字条件で計算する(OR条件・AND条件)
実務では、「AまたはBが含まれる場合に合計」や「AもBも含まれる場合にのみ合計」といった
複数条件の計算もよくあります。
・OR条件:「AまたはBを含む」
"=SUMPRODUCT((ISNUMBER(SEARCH("A",A2:A10)) + ISNUMBER(SEARCH("B",A2:A10))>0)*B2:B10)"
OR条件では、どちらかの条件を満たす場合にTRUEとなり、
該当行の金額を合計できます。
・AND条件:「AもBも含む」
"=SUMPRODUCT((ISNUMBER(SEARCH("A",A2:A10)))*(ISNUMBER(SEARCH("B",A2:A10)))*B2:B10)"
この式では、「A」も「B」も含む場合のみB列の金額が加算されます。
SUMPRODUCT関数は条件付き集計を柔軟に処理できるため、実務で非常に重宝します。
参考:【Excel】IF関数で複数条件を指定する方法とは?AND・OR・IFSまで完全ガイド!
✅ 特定の文字が含まれていない場合の計算
逆に「特定の文字を含まない行」だけを合計したい場合もあります。
そのときはNOT関数を使うか、条件を工夫します。
"=SUMPRODUCT((NOT(ISNUMBER(SEARCH("返品",A2:A10))))*B2:B10)"
これにより、「返品」を含まない行の金額のみを合計できます。
除外条件付きの集計や、正常データの抽出に活用できます。
✅ SUMIFS関数で複数条件の合計を効率化
Excel 2007以降では、SUMIFS関数を使うことで複数条件を簡単に指定できます。
"=SUMIFS(B2:B10,A2:A10,"A",C2:C10,">=1000")"
この式では、
- A列に「A」を含み
- C列の数値が1000以上
という2条件を満たすデータのB列を合計します。
AND条件での集計を直感的に書けるのがSUMIFSの強みです。
✅ LEN関数+SUBSTITUTEで文字数に応じた計算を行う
セル内に特定の文字が何回出現するかによって計算結果を変えたい場合には、
LEN関数とSUBSTITUTE関数を使います。
"=LEN(A2)-LEN(SUBSTITUTE(A2,"A",""))"
この式でA2に「A」が何回含まれるかを求め、
出現回数×金額などの計算にも応用可能です。
"=(LEN(A2)-LEN(SUBSTITUTE(A2,"A","")))*B2"
例えばA2に「AAAB」が入っていてB2が100なら、
「A」は3回出現しているので「3×100=300」となります。
商品コードやキーワードの出現頻度に応じて計算したい場合に便利です。
参考:【Excel】複数の文字列を関数で一括置換する方法|SUBSTITUTE関数・置換リストの解説
✅ FILTER関数で特定文字を含む行を抽出して集計(Excel 365対応)
Microsoft 365やExcel 2021以降では、FILTER関数を使えば
特定文字を含むデータだけを抽出し、合計まで自動化できます。
・抽出
"=FILTER(A2:B10,ISNUMBER(SEARCH("A",A2:A10)))"
これで、A列に「A」を含む行がすべて一覧として表示されます。
・合計
"=SUM(FILTER(B2:B10,ISNUMBER(SEARCH("A",A2:A10))))"
条件を満たす金額だけを抽出して合計できるため、
表が更新されても自動で再計算されるのが特徴です。
✅ 実務例①:「返品」を含むデータをマイナス集計する
返品処理などでは、備考欄に「返品」と記載された行を自動でマイナス計算する方法が役立ちます。
"=IF(ISNUMBER(SEARCH("返品",A2)),-B2,B2)"
- A2に「返品」と書かれていればB2の値をマイナス
- 含まれていなければそのままの金額
これを売上列に設定すれば、返品分を自動控除できる仕組みが完成します。
✅ 実務例②:「A」「B」など特定グループごとに売上を自動合計
商品名や部署名の頭文字でグループ分けしたい場合にも、
特定文字を条件にして計算を自動化できます。
"=SUMIF(A2:A100,"A*",B2:B100)"
→ 「A」で始まる商品(A1001、A-02など)の売上合計
"=SUMIF(A2:A100,"B*",B2:B100)"
→ 「B」で始まる商品の売上合計
このように、「前方一致」を利用してカテゴリ別の自動集計を簡単に実現できます。
✅ 実務例③:「OK」を含むデータだけ平均を計算
評価や検査結果など、「OK」と含まれるセルだけの平均値を出したいときはAVERAGEIF関数を使います。
"=AVERAGEIF(A2:A10,"OK",B2:B10)"
「A列にOKを含む行」のB列の平均値を求めます。
品質チェックやアンケート結果の分析などに最適です。
✅ 条件付き書式と組み合わせて視覚的に確認
数式による計算だけでなく、条件付き書式を使えば、
特定文字を含むセルを自動的に色付けすることも可能です。
手順
- 対象範囲を選択(例:A2:A100)
- [ホーム] → [条件付き書式] → [新しいルール]
- 「数式を使用して…」を選択
- 数式を入力
"=ISNUMBER(SEARCH("A",A2))" - 塗りつぶし色を設定
これで、「A」を含むセルが自動的に色付きになります。
数式の結果を視覚的に確認できるため、ミス防止にも効果的です。
✅ 注意点:SEARCH関数のエラー処理とFIND関数との違い
SEARCH関数は、指定文字が見つからない場合に#VALUE!エラーを返します。
そのため、IFERRORで補うと安定します。
"=IF(ISNUMBER(SEARCH("A",A2)),B2,0)"
↓
"=IF(ISNUMBER(IFERROR(SEARCH("A",A2),0)),B2,0)"
また、SEARCHは大文字・小文字を区別しませんが、
FIND関数を使うと厳密な一致(区別あり)で検索できます。
用途に応じて使い分けましょう。
✅ RPAやPower Automateとの連携で自動処理化も可能
Excelで「特定文字を含むデータだけ計算」する仕組みを作っておけば、
RPA(UiPathやPower Automateなど)と連携して完全自動集計も可能になります。
たとえば:
- 「至急」や「確認」と含むデータがあれば、自動で通知
- 「返品」を含むデータだけ別シートへ転送し、金額調整を自動化
Excel関数を使った条件付き計算は、
RPAの前処理・データ整形段階で非常に重要な役割を果たします。
✅ まとめ:特定の文字を条件に計算してExcel集計を自動化しよう
- IF+SEARCH関数で「特定文字を含む場合のみ計算」が可能
- SUMIF・SUMIFS関数で条件付き合計を自動化
- COUNTIFやAVERAGEIFで件数や平均値の算出も簡単
- LEN+SUBSTITUTEで文字数に応じた計算もできる
- FILTER関数を使えば、特定文字を含む行を抽出して動的集計が可能
- 条件付き書式と組み合わせると視覚的な確認も容易
- RPAやPower Automateと組み合わせれば業務全体の自動化も可能
「セルに特定の文字が入っていたら計算」という仕組みは、
日常のExcel作業を大幅に効率化する最も実用的なテクニックの一つです。
単なる関数操作ではなく、条件付き計算のロジックを理解しておくことで、
データ分析・業務自動化・RPA連携まで幅広く応用できるスキルになります。
ぜひこの記事で紹介した手法を活用し、Excelでの集計作業をよりスマートに自動化していきましょう。