数値・数字が入ったセルをカウントする方法|COUNTIF以外

ここでは、「数値・数字が入ったセルをカウントする方法」を解説します。

 

「数値が表示されているセル」と「数値が入力されているセル」のそれぞれを数える方法を説明します。

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

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

 

1-1.「数値(数字)」のセルを数えたい

やりたいことは、「『数値(数字)』のセルをカウントする」です。

 

文字列や空白はカウントせず、数値のみ数えます。

 

なお、「日付」や「時刻」、「日時」はエクセルで数値として扱われているため、カウント対象です。

 

ただし、数値や日付でも「文字列」でのものは対象外となります。

 

1-2.例を確認

一つ例を見てみます。

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

 

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

 

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

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

 

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

2.「数値が表示されているセル」を数えるには

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

 

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

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

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

簡単にいうと、「見た目が数字のものをカウントする」です。ただし、「文字列の数値」は数えません。

 

2-2.数式の形

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

=SUMPRODUCT(ISNUMBER(範囲)*1)

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

 

2-3.数式の作り方

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

 

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

【コピーする数式】

=SUMPRODUCT(ISNUMBER(範囲)*1)

 

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

 

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

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

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

 

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

3.「数値が入力されているセル」を数えるには

次に、「数値が入力されているセルの数」を数えられる数式です。

 

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

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

カウント対象
  • 数値が入力されたセル

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

 

3-2.数式の形

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

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

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

 

3-3.数式の作り方

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

 

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

【コピーする数式】

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

 

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

※2ヶ所とも「同じ範囲」にする

 

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

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

=SUMPRODUCT(ISNUMBER(A1:B3)*NOT(ISFORMULA(A1:B3)))

 

ちなみに、「セルA2は文字列の数値」、「セルA3は『=1』という数式」なのでカウントされません。

4.数式の計算の流れを解説

続いて、「なぜこの数式で数値のカウントができるのか?」、数式の計算の流れの説明です。

 

4-1.数値が表示されているセルを数える数式

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

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

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

 

順番に確認します。

 

(1)ISNUMBER( )*1の部分

ISNUMBER関数は、「セルが数値の場合にTRUEを返す」関数です。

 

例の表にISNUMBER関数をあてると、セルごとに次のようになります。

ちなみにISNUMBER関数は、「数値が入力されたセル」と「数式で数値のセル」の2種類がTRUEになります。

 

そして、エクセルでは「TRUE」と「FALSE」に1をかけると「1」や「0」になります。

 

先ほどの表に1をかけると、セルごとに次のようになります。

これで、TRUEなら1、FALSEなら0になります。

 

(2)SUMPRODUCT( )の部分

SUMPRODUCT関数は、「カッコ内の範囲の計算結果の合計を返す」関数です。

 

つまり、先ほどの表の「1」を合計します。

このような流れで、数式は「数値が表示されたセルの数」をカウントするのです。

 

4-2.数値が入力されているセルを数える数式

次は、「数値が入力されているセルを数える」数式です。

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

=SUMPRODUCT(ISNUMBER(A1:B3)*NOT(ISFORMULA(A1:B3)))

 

順に確認します。

 

(1)ISNUMBER( )の部分

この部分は、先ほどと同じ計算がされます。結果、表はセルごとに次のようになります。

(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