文字が入ったセルのみをカウントする方法|数値や空白は除く
ここでは、エクセルで「文字が入ったセルのみをカウントする方法」を解説します。
「文字なら何でも」という条件で、範囲を指定して数えられる数式の説明です。
1.まずはやりたいことを確認
始めに、やりたいことを例を含めて確認します。
1-1.「文字が入ったセルの数のみ」をカウントしたい
やりたいことは、「文字が入ったセルのみをカウントする」です。
「なんでもいいから文字(=文字列)が入っていれば」という条件でカウントします。
数える/数えないのパターンは、次の通りです。
- 文字列 :カウントする
- 数値(日付含む):カウントしない
- 空白 :カウントしない
ただ、文字列といっても「純粋に文字列が入力されているパターン」と、「数式の結果文字列になっているパターン」の2つがあります。
そこでここでは、それぞれをカウントできる数式を説明します。
1-2.例で確認
一つ例を見てみます。
文字列や数値、数式など、様々なデータ型を入れています。
「文字列」や「文字列の数値」、「数式での文字列」や「日付」、そして「数値」です。
このような、様々な入力のうち「文字列の入ったセル」のみをカウントします。
緑色のセルが「文字列」です。セルA3のみ濃い色なのは、そのセルが「数式で計算された結果の文字列」だからです。
カウントに含めたい場合と含めたくない場合があるので、ここでは数式を2つ紹介します。
2.「文字列が表示されているセル」を数える
まずは、「文字列が表示されているセルの数」を数えられる数式からです。
2-1.カウントの対象は
カウントの対象は、次の通りです。
- 文字列が入力されたセル
- 数式の結果が文字列のセル
簡単にいうと、「見た目が文字列のセルをカウントする」です。
2-2.数式の形
数式の形は、次の通りです。
「範囲」には、カウントしたい範囲を指定します。複数列、複数行の指定が可能です。
2-3.数式の作り方
続いて、数式を作る手順を見てみましょう。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「範囲」の文字を消し、「カウントしたい範囲」を入れる
(3)Enterキーを押せば完了
セルA4に入れた数式は、次の通りです。
=SUMPRODUCT(ISTEXT(A1:B3)*1)
ちなみに、「セルA2は文字列の数値」なのでカウントします。「文字列の数値」のセルには「左上に緑色の▲」が表示されます。
3.「文字列が入力されているセル」を数える
次に、「文字列が表示されているセルの数」を数えられる数式です。
3-1.カウントの対象は
カウントの対象は、次の通りです。
- 文字列が入力されたセル
逆に言うと、「数式の結果の文字列」は数えません。
3-2.数式の形
数式の形は、次の通りです。
2ヶ所の「範囲」には、「カウントしたい範囲」を同じく指定します。複数列、複数行の指定が可能です。
3-3.数式の作り方
続いて、数式を作る手順を見てみましょう。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「範囲」の文字を消し、「カウントしたい範囲」を入れる
※2ヶ所とも「同じ範囲」にする
(3)Enterキーを押せば完了
セルA4に入れた数式は、次の通りです。
=SUMPRODUCT(ISTEXT(A1:B3)*NOT(ISFORMULA(A1:B3)))
ちなみに、「セルA3は『="数式"』という数式」なのでカウントされません。
4.数式の計算の流れを解説
続いて、「なぜこの数式で文字列のカウントができるのか?」、数式の計算の流れの説明です。
4-1.文字列が表示されているセルを数える数式
まずは、「文字列が表示されているセルを数える」数式からです。
セルA4に入れた数式は、次の通りです。
=SUMPRODUCT(ISTEXT(A1:B3)*1)
順番に確認します。
(1)ISTEXT( )*1の部分
ISTEXT関数は、「セルが文字列の場合にTRUEを返す」関数です。
例の表にISTEXT関数をあてると、セルごとに次のようになります。
ちなみにISTEXT関数は、「文字列が入力されたセル」と「数式で文字列のセル」の2種類がTRUEになります。
そして、エクセルでは「TRUE」と「FALSE」に1をかけると「1」や「0」になります。
先ほどの表に1をかけると、セルごとに次のようになります。
これで、TRUEなら1、FALSEなら0になります。
(2)SUMPRODUCT( )の部分
SUMPRODUCT関数は、「カッコ内の範囲の計算結果の合計を返す」関数です。
つまり、先ほどの表の「1」を合計します。
このような流れで、数式は「数値が表示されたセルの数」をカウントするのです。
4-2.文字列が入力されているセルを数える数式
次に、「文字列が入力されているセルを数える」数式です。
セルA4に入れた数式は、次の通りです。
=SUMPRODUCT(ISTEXT(A1:B3)*NOT(ISFORMULA(A1:B3)))
順に確認します。
(1)ISTEXT( )の部分
この部分は、先ほどと同じ計算がされます。結果、表はセルごとに次のようになります。
(2)NOT(ISFORMULA( ))の部分
ISFORMULA関数は、「セルが数式の場合にTRUEを返す」関数です。そしてNOT関数は、「TRUEならFALSEを、FALSEならTRUEを返す」関数です。
つまり、セルが「数式以外ならTRUE」を、「数式ならFALSE」を返します。
この部分だけで見ると、表はセルごとに次のようになります。
(3)ISNUMBER( )*NOT( )の部分
エクセルでは、「TRUEは1」、「FALSEは0」として扱います。そのため掛け合わせると、「TRUE*TRUE=1」、その他は「0」となります。
結果、表はセルごとに次のようになります。
(4)SUMPRODUCT( )の部分
先ほどの説明のように、SUMPRODUCT関数は、「カッコ内の範囲の計算結果の合計を返す」関数です。
なので、先ほどの表の「1」を合計します。
このような流れで、数式は「文字列が入力されたセルの数」をカウントするのです。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】