文字が入ったセルのみをカウントする方法|数値や空白は除く

ここでは、エクセルで「文字が入ったセルのみをカウントする方法」を解説します。

 

「文字なら何でも」という条件で、範囲を指定して数えられる数式の説明です。

1.まずはやりたいことを確認

始めに、やりたいことを例を含めて確認します。

 

1-1.「文字が入ったセルの数のみ」をカウントしたい

やりたいことは、「文字が入ったセルのみをカウントする」です。

 

「なんでもいいから文字(=文字列)が入っていれば」という条件でカウントします。

 

数える/数えないのパターンは、次の通りです。

カウントする/しない
  • 文字列     :カウントする
  • 数値(日付含む):カウントしない
  • 空白      :カウントしない

ただ、文字列といっても「純粋に文字列が入力されているパターン」と、「数式の結果文字列になっているパターン」の2つがあります。

 

そこでここでは、それぞれをカウントできる数式を説明します。

 

1-2.例で確認

一つ例を見てみます。

文字列や数値、数式など、様々なデータ型を入れています。

 

「文字列」や「文字列の数値」、「数式での文字列」や「日付」、そして「数値」です。

 

このような、様々な入力のうち「文字列の入ったセル」のみをカウントします。

緑色のセルが「文字列」です。セルA3のみ濃い色なのは、そのセルが「数式で計算された結果の文字列」だからです。

 

カウントに含めたい場合と含めたくない場合があるので、ここでは数式を2つ紹介します。

2.「文字列が表示されているセル」を数える

まずは、「文字列が表示されているセルの数」を数えられる数式からです。

 

2-1.カウントの対象は

カウントの対象は、次の通りです。

カウント対象
  • 文字列が入力されたセル
  • 数式の結果が文字列のセル

簡単にいうと、「見た目が文字列のセルをカウントする」です。

 

2-2.数式の形

数式の形は、次の通りです。

=SUMPRODUCT(ISTEXT(範囲)*1)

「範囲」には、カウントしたい範囲を指定します。複数列、複数行の指定が可能です。

 

2-3.数式の作り方

続いて、数式を作る手順を見てみましょう。

 

(1)以下の数式をコピーし、セルに貼り付ける

【コピーする数式】

=SUMPRODUCT(ISTEXT(範囲)*1)

 

(2)「範囲」の文字を消し、「カウントしたい範囲」を入れる

 

(3)Enterキーを押せば完了

セルA4に入れた数式は、次の通りです。

=SUMPRODUCT(ISTEXT(A1:B3)*1)

 

ちなみに、「セルA2は文字列の数値」なのでカウントします。「文字列の数値」のセルには「左上に緑色の▲」が表示されます。

3.「文字列が入力されているセル」を数える

次に、「文字列が表示されているセルの数」を数えられる数式です。

 

3-1.カウントの対象は

カウントの対象は、次の通りです。

カウント対象
  • 文字列が入力されたセル

逆に言うと、「数式の結果の文字列」は数えません。

 

3-2.数式の形

数式の形は、次の通りです。

=SUMPRODUCT(ISTEXT(範囲)*NOT(ISFORMULA(範囲)))

2ヶ所の「範囲」には、「カウントしたい範囲」を同じく指定します。複数列、複数行の指定が可能です。

 

3-3.数式の作り方

続いて、数式を作る手順を見てみましょう。

 

(1)以下の数式をコピーし、セルに貼り付ける

【コピーする数式】

=SUMPRODUCT(ISTEXT(範囲)*NOT(ISFORMULA(範囲)))

 

(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本の紹介】


Top