目次
Excelで文字数を数える方法を説明します。 範囲内の総文字数を求めたり、セル内や複数のセル内の特定の文字だけを数える数式を学習します。
前回のチュートリアルでは、セル内の文字数の合計を数えることができるExcelのLEN関数を紹介しました。
LEN式はそれ自体でも便利ですが、SUM、SUMPRODUCT、SUBSTITUTEなどの他の関数と連携して、より複雑なタスクを処理できます。 このチュートリアルではさらに、Excelで文字をカウントする基本および高度な式をいくつか詳しく見ていきます。
範囲内のすべての文字を数える方法
複数のセルの文字数の合計を数える場合、すぐに思いつくのは、各セルの文字数を取得し、その数を合計することです。
=len(a2)+len(a3)+len(a4)です。
または
=sum(len(a2),len(a3),len(a4))
小さな範囲であれば、上記の式で十分ですが、大きな範囲の文字数を数えるには、もっとコンパクトな、例えば、SUMPRODUCT 関数で、配列を掛け合わせて、その積の合計を返すようなものを考えなければなりません。
以下は、範囲内の文字をカウントする一般的なExcelの計算式です。
=sumproduct(len( レンジ ))そして、あなたの現実の計算式は、これに近いかもしれません。
=sumproduct(len(a1:a7))です。
範囲内の文字を数えるもう一つの方法は、LEN関数とSUMを組み合わせて使用することです。
=sum(len(a1:a7))
SUM関数はSUMPRODUCTと異なり、デフォルトでは配列計算を行わないので、配列式にするためにはCtrl + Shift + Enterキーを押す必要があります。
次のスクリーンショットに示すように、SUM式は同じ文字数の合計を返します。
この範囲文字数計算式の仕組み
LEN関数は、指定した範囲の各セルの文字列の長さを計算し、数値の配列として返します。 そして、SUMPRODUCTまたはSUMは、それらの数値を合計して、文字数の合計を返します。
上記の例では、セルA1~A7の文字列の長さを表す7個の数値の配列を合計している。
注意:ExcelのLEN関数は絶対数をカウントすることに注意してください。 各セルのすべての文字 文字、数字、句読点、特殊記号、およびすべてのスペース(先行、後続、単語間のスペース)を含む。
セル内の特定の文字をカウントする方法
セル内のすべての文字を数えるのではなく、特定の文字、数字、特殊記号の出現回数のみを数える必要がある場合もあります。
セル内の文字の出現回数を数えるには、LEN関数とSUBSTITUTEを使用します。
=LEN( セル )-len(代入( セル , 人柄 ,""))この計算式をよりよく理解するために、次のような例を考えてみましょう。
例えば、配送された商品のデータベースを管理する場合、商品の種類ごとに一意な識別子があり、各セルにはカンマやスペースなどの区切り文字で区切られた複数の商品が含まれているとします。 課題は、各セルに与えられた一意な識別子が何回出現するかをカウントすることです。
納品物のリストがB列(B2から始まる)にあり、「A」の出現回数を数えるとして、計算式は次のようになります。
=len(b2)-len(substitute(b2,「a」, 「」))
このExcelの文字数計算式の仕組み
この式のロジックを理解するために、もっと小さなパーツに分解してみよう。
- まず、B2で文字列の総長を数えます。
LEN(B2)
substitute(b2, "a", "a")
len(substitute(b2,a",""))
その結果、「削除」された文字の数が得られ、それはセル内のその文字の出現回数の合計と等しくなります。
このようにすれば、ユーザーが入力した文字以外の出現回数を、数式に手を加えることなくカウントすることができます。
注意:ExcelのSUBSTITUTEは大文字と小文字を区別する関数なので、上記の数式も大文字と小文字を区別します。 例えば、上記のスクリーンショットでは、セルB3には大文字で2つ、小文字で1つの計3つの "A "が出現しますが、SUBSTITUTE関数に "A "を渡したので大文字だけをカウントしたのです。
セル内の特定の文字をカウントする大文字小文字を区別しないExcelの計算式
大文字と小文字を区別しない文字カウントが必要な場合は、SUBSTITUTEの内部にUPPER関数を組み込み、指定した文字を大文字に変換してから置換を実行します。 また、数式には必ず大文字を入力してください。
例えば、セルB2の「A」と「a」の項目を数えるには、次の数式を使用します。
=len(b2)-len(substitute(upper(b2), "a", "a"))
もう一つの方法は、Substitute関数をネストして使用することです。
=LEN(B2)-LEN(SUBSTITUTE(B2, "A","), "a","")
下のスクリーンショットにあるように、どちらの計算式も指定した文字の大文字と小文字の出現を完璧にカウントしています。
表中のさまざまな文字を数える必要があるけれども、その都度数式を変更したくない場合があります。 この場合は、代入関数を別の関数の中に入れ、あるセル(この例ではD1)に数えようとする文字を入力し、そのセルの値をUPPER関数とLOWER関数で大文字と小文字に変換してください。
=len(b2)-len(substitute(b2, upper($d$1), ""), lower($d$1), ""))
または、ソースセルと文字を含むセルの両方を大文字または小文字に変換します。 たとえば、次のようになります。
=len(b2)-len(substitute(upper(b2), upper($c$1),""))
この方法の利点は、参照するセルに大文字と小文字のどちらを入力しても、自分の 大文字小文字を区別しない文字数計算式 は正しいカウントを返します。
セル内の特定のテキストまたは部分文字列の出現回数を数える
が何回出てきたかを数えるなら 特定文字 (すなわち、あるテキスト、または部分文字列)があるセル、例えば "A2 "や "SS "に現れたら、上記の式で返される文字数を部分文字列の長さで割ってください。
大文字小文字を区別する の式で表されます。
=(len(b2)-len(substitute(b2, $c$1,"")))/len($c$1)
大文字小文字を区別しない の式で表されます。
=(len(b2)-len(substitute(lower(b2),lower($c$1),"")))/len($c$1)
ここで、B2 はテキスト文字列全体を含むセル、C1 はカウントしたいテキスト(部分文字列)です。
計算式の詳しい説明は、「セル内の特定のテキスト/単語をカウントする方法」をご覧ください。
範囲内の特定の文字をカウントする方法
セル内の文字を数えるExcelの数式はわかりましたが、さらに改良して、ある文字が範囲内に何回現れるかを調べたいと思うかもしれません。 そのために、前の例で説明したセル内の特定の文字を数えるExcelのLEN数式を、配列を扱えるSUMPRODUCT関数内に配置することにします。
スンプロダクト(len( レンジ )-len(代入( レンジ , せいかく ,"")))この例では、数式は次のような形になる。
=sumproduct(len(b2:b8)-len(substitute(b2:b8, "a", ""))))
そして、こちらもExcelの範囲内の文字をカウントする計算式です。
=sum(len(b2:b8)-len(substitute(b2:b8, "a", ""))))
最初の数式と比較すると、SUMPRODUCTの代わりにSUMを使用していることが最も明らかな違いです。 また、Ctrl + Shift + Enterキーを押す必要があるのも、配列を処理するように設計されているSUMPRODUCTと異なり、SUMが配列を処理できるのは、SUMを使用しているときだけです。 配列式 .
文字を数式にハードコードしたくない場合は、もちろんD1などのセルに文字を入力して、そのセルを文字数計算の数式で参照することができます。
=sumproduct(len(b2:b8)-len(substitute(b2:b8, d1,"")))
注)特定の機器の出現回数をカウントする場合は、その機器に対応した回数をカウントします。 部分文字列 の場合、文字数を部分文字列の長さで割る必要があります。 そうしないと、部分文字列の各文字が個別にカウントされます。 たとえば
=sum((len(b2:b8)-len(substitute(b2:b8, d1, ""))) / len(d1)))
この文字カウント式の仕組み
SUBSTITUTE関数は、指定した文字(この例では「A」)の出現回数をすべて空の文字列(「"」)に置き換えるために使用します。
そして、SUBSTITUTEで返された文字列をExcelのLEN関数に与えて、Aを除いた文字列の長さを計算させ、その文字数を文字列の全長から引きます。 この計算の結果は、セルごとに1文字分の文字数の配列になります。
最後に、SUMPRODUCT は配列内の数値を合計し、指定された文字が範囲内にある場合の総カウントを返します。
大文字と小文字を区別せず、範囲内の特定の文字をカウントする計算式
SUBSTITUTEが大文字と小文字を区別する関数であることはすでにご存じでしょう。このため、Excelの文字数計算式も大文字と小文字を区別します。
大文字と小文字を区別しない数式を作成するには、前の例で示した「セル内の特定の文字をカウントする大文字と小文字を区別しない数式」に従います。
特に、以下の公式のいずれかを使って、範囲無視の場合の特定の文字をカウントすることができます。
- UPPER機能を使って、文字を大文字で入力する。
=sumproduct(len(b2:b8) - len(substitute(上部(b2:b8), "a","))
- ネストしたSUBSTITUTE関数を使用する。
=SUMPRODUCT(LEN(B2:B8) - LEN(SUBSTITUTE((B2:B8), "A",""), "a",""))
- UPPER関数とLOWER関数を使用して、あるセルに大文字または小文字の文字を入力し、数式でそのセルを参照します。
=sumproduct(len(b2:b8) - len(substitute(substitute((b2:b8), upper($e$1), ""), lower($e$1), "")))
以下のスクリーンショットは、最後の数式を実行する様子を示しています。
ヒント. 特定テキスト (部分文字列)を範囲に含めるには、「範囲内の特定のテキスト/単語をカウントする方法」で示した数式を使用します。
以上、LEN関数を使ってExcelで文字を数える方法をご紹介しました。 文字単位ではなく、単語単位で数える方法を知りたい方は、次回の記事で便利な数式をご紹介しますので、ぜひご期待ください。
とりあえず、このチュートリアルで取り上げた文字数計算式のワークブックのサンプルをダウンロードし、ページの最後にある関連リソースのリストをチェックしてみてください。 読んでくださってありがとうございました。