Excelでテキスト中の記号だけを数えたい場面は意外とよくあります。「!」「#」「%」「○」「×」など、文字以外の記号をひとつひとつ探して数えるのは手間がかかります。ここでは関数だけで正確かつ効率的に記号の数を数える方法を、わかりやすく丁寧に解説します。記号を数えるための基礎から応用、注意点までを押さえて、すぐ使える技をマスターしましょう。
目次
エクセル 記号の数を数える 関数 の基本仕組み
記号を数えるには、Excelに元々備わっている関数を組み合わせる方法が中心です。記号は英数字ではない文字や、特定のパターンに合致する文字を指すことが多く、LEN関数で文字全体の長さを取得し、SUBSTITUTE関数で記号を一時的に取り除いて、その差分で記号の出現回数を計算するのが基本テクニックです。これにより記号の数を精密に数えることができます。
LEN関数とは何か
LEN関数はセル内の文字数をすべて数えます。文字とはアルファベット・数字・スペース・記号も含み、空白も1文字としてカウントされます。記号も対象になるため、この関数を使うことでテキスト全体の総文字数を把握できます。ただし末尾の空白などは見た目上見えない場合があり、思わぬ余分が含まれることがあります。
SUBSTITUTE関数とは何か
SUBSTITUTE関数はテキスト内の指定した文字列を別の文字列で置き換えます。記号を数えたい場合には、記号を空文字に置き換えることで実質的に消去できます。この操作によって「記号がない状態」の文字列長を取得でき、それを元の長さから引くことで記号の数を逆算できます。
記号の数を求める一般的な公式
最も基本的な公式は次の形になります。
=LEN(対象セル)−LEN(SUBSTITUTE(対象セル,”記号”,””))
この公式ではまず元の文字列長をLENで求め、SUBSTITUTEで記号を空にしてからの長さを再びLENで取得し、それらの差分が記号の出現回数です。このやり方は単一種類の記号を数えるのに非常に使いやすいです。
特定の記号や複数記号を数える応用技術
一種類だけでなく複数の記号をまとめて数えたいケースや、大文字小文字を区別したいかどうか、範囲(セル複数)で計算するかどうかなど、実践的なパターンがいくつかあります。ここではそうした応用パターンを解説します。
複数の記号をまとめて数える方法
記号が複数種類存在する場合、一つずつ公式を使うか、SUMPRODUCT関数と配列を使ってまとめて処理する方法があります。たとえば「!」「#」「%」などいくつかまとめて数えたいなら、SUBSTITUTEを入れ子にするか、配列定数として公式内部で一度に扱うことが可能です。効率よく処理できる方法を選べます。
大文字小文字を区別しないで記号を数える方法
記号自体は大文字小文字に関係ないものが多いですが、文字と混ざって使われている場合にはテキスト全体をUPPER関数やLOWER関数で統一してから処理すると間違いが少なくなります。記号自体を統一するわけではありませんが、他の文字との混在が多いデータで信頼性を高める技術として使えます。
複数セル・範囲で記号の数を合計する方法
一つのセルだけでなく複数のセルや行列にまたがって記号の合計を求めたいなら、SUMPRODUCT関数とLEN+SUBSTITUTEの組み合わせが有効です。範囲を指定して、それぞれのセルで記号を数えてから合計を返します。大型の表やデータ集計に適しており、ひとつひとつ確認する手間を省けます。
COPYやCOUNTIFを使って「〇」「×」などの記号を数える方法
丸の「〇」やバツの「×」など、見た目でわかりやすい日本語記号を数えたい場合には、COUNTIF関数やSUMPRODUCT関数を使うのが便利です。この方法は範囲内である記号と一致するセルを数えるため、文字列中1文字だけのセルや、セル全体がその記号であるケース向きです。セル数を数えるのに適しており、文字列中の出現回数を数えるLEN+SUBSTITUTEとは趣が異なります。
COUNTIF関数を使う方法
範囲内のセルが丸「〇」やバツ「×」などの記号と一致するセル数を数えるには、次のような公式を使います。
=COUNTIF(範囲,”記号”)
ただしこの方法では文字列中にその記号が含まれていても他の文字が混じっていると一致しないため、セル全体が「〇」などその記号のみで構成されている状態でのカウントに向いています。
SUMPRODUCT関数を併用する方法
範囲内にあるセルが特定記号と一致するかどうかを真偽値で判定し、それを数値に変換して合計することで、COUNTIFでは対応しにくい応用に対応できます。例えば別ファイルで範囲を参照する場合や複雑な条件がある場合、SUMPRODUCT((範囲=”記号”)*1) のような構文で記号セルの合計を得ることが可能です。
似ている記号の違いに注意する
日本語の丸「〇」と英語の丸「○」、全角と半角のバツ「×」「×」など、見た目が似ていても文字コードが異なる記号は別の記号として扱われます。指定する記号が範囲内で実際に使われている文字と完全一致しているかどうか、コピー&貼り付けで確かめることが正確なカウントのために重要です。
関数だけでは難しい記号のケースと解決策
テキスト中の記号が多数混在していたり、文字列の中に記号以外の非表示文字が含まれていたりする場合、単純な公式では誤差が出ることがあります。こうしたケースにはExcelの機能や工夫、またはVBAを用いる方法がありますので、適切な解決手段を選べるように知っておくことが重要です。
非表示文字や全角・半角の違いの影響
スペースの種類(全角スペース・半角スペース)、制御文字(改行・タブ)、見えない文字などが含まれていると、記号を数えようとする対象文字列の長さが予想外に長くなり、記号数の差分計算に誤差が出ることがあります。事前にTRIM関数やCLEAN関数で余分な空白や制御文字を除く処理を挟むと精度が上がります。
記号が文字列の一部として混ざるケース
文字列中に「A+B=C」のように記号と文字が混ざっている場合、記号だけを数えるにはLEN−LEN(SUBSTITUTE)方式が適しています。しかし、ここでも”+”を数えるなら元の文字列中に”+”の数だけ減算が発生するので公式がそのまま適用できます。ただしSUBSTITUTEは大文字小文字・同一文字の一致を前提として動くため、目的の記号との完全一致が必要です。
VBAを使ったカスタム関数による対応
関数だけで複雑な記号のセットを対象にしたり、文字列が非常に長かったりする場合にはVBAでカスタム関数を作る方法があります。正規表現を使って記号以外の文字を除き、残った部分の長さを返す方法や、特定条件を満たす記号のみを数える関数を自作できます。関数より柔軟性が高くなります。
簡単なサンプルで実践する使い方
ここまで紹介した方法を実際のサンプルで使うと、どれほど効率よくなるかを確認できます。日常の業務で使える例で手順を追うことで理解が深まり、応用の幅も広がりますのでぜひ試してみてください。
記号「#」を一つのセルで数える例
セルA1に「商品#123#-特注#完了」といった文字列が入っているとします。
記号「#」が何回出ているかを数えるには、以下の式を使います。
=LEN(A1)−LEN(SUBSTITUTE(A1,”#”,””))
これにより「#」の出現回数が返されます。文字列中の同じ記号が複数あってもカウントできます。
複数セルで記号「/」を合計で数える例
セル範囲A2からA10までに複数のテキストが入っていて、それぞれに「/」が含まれているとします。
次の式を使えば範囲全体で「/」の数を合計できます。
=SUMPRODUCT(LEN(A2:A10)−LEN(SUBSTITUTE(A2:A10,”/”,””)))
これで複数セルにまたがる記号の数がまとめて得られます。
「!」「%」「&」など複数の記号を同時に数える例
いくつかの記号をまとめてカウントするには、中に入れ子のSUBSTITUTEを重ねる方法や、配列定数を使う方法があります。たとえば次のような構文を使います。
=LEN(A1)−LEN(SUBSTITUTE(SUBSTITUTE(A1,”!”,””),”%”,””))
このように置き換え操作を連続で行えば複数記号を取り除いた後の長さとの差でまとめて数えられます。種類が多いほど式が長くなりますが、正確性は高いです。
Excelのバージョン・互換性と最新の追加機能
Excelはバージョンによって関数の動作や取り扱う文字に差異があります。最新のOffice 365やExcel 2021以降ではUnicode対応が改善されており、絵文字やサロゲートペアの文字数カウントが正確になっています。古いバージョンを使っている場合は記号や特殊文字の扱いに注意が必要です。
Unicode文字・絵文字の取り扱い
最新のExcelではUnicodeの拡張文字に対する処理精度が上がっており、単一の絵文字などを正しく一文字としてカウントする機能が強化されています。ただし絵文字に付随する変化記号や複数コードポイントで構成される文字は、まだバージョンによっては複数文字として扱われることがあります。
SUBSTITUTE+LEN方式の互換性
この組み合わせはExcelのほぼすべてのバージョンでサポートされており、オンライン版やモバイル版でも同様に動作します。最新のExcelでは計算処理が高速になっており、大量データを扱っているシートでもパフォーマンスが良いことが確認されています。
新しい関数や機能の提案
Office 365などの最新環境では、LET関数を使って公式をわかりやすく整理したり、名前付き範囲を使って記号セットを定義することで公式の管理性を高めることが可能です。複雑な記号処理を頻繁に行う場合はこれらを活用するとよいでしょう。
まとめ
記号の数を数えるには、LEN関数とSUBSTITUTE関数の組み合わせが基礎です。単一記号・複数記号、範囲計算や大文字小文字の区別など、応用のバリエーションも多数あります。特にUnicodeや最新のExcel環境では文字のカウント精度が向上しており、正確な集計が可能です。手軽に使える公式からVBAまでを状況に応じて使い分けることで、業務効率が大幅にアップします。ぜひ実践してみてください。
コメント