数値・数字が入ったセルをカウントする方法|COUNTIF以外
ここでは、「数値・数字が入ったセルをカウントする方法」を解説します。
「数値が表示されているセル」と「数値が入力されているセル」のそれぞれを数える方法を説明します。
1.まずはやりたいことを確認
まずは、やりたいことを例を含めて確認します。
1-1.「数値(数字)」のセルを数えたい
やりたいことは、「『数値(数字)』のセルをカウントする」です。
文字列や空白はカウントせず、数値のみ数えます。
なお、「日付」や「時刻」、「日時」はエクセルで数値として扱われているため、カウント対象です。
ただし、数値や日付でも「文字列」でのものは対象外となります。
1-2.例を確認
一つ例を見てみます。
文字列や数値、数式など、様々なデータ型を入れています。
「文字列」や「文字列の数値」、「数式での数値」や「日付」、そして「数値」です。
このような、様々な入力のうち「数値の入ったセル」のみをカウントします。
緑色のセルが「数値」です。セルA3のみ濃い色なのは、そのセルが「数式で計算された結果の数値」だからです。
カウントに含めたい場合と含めたくない場合があるので、ここでは数式を2つ紹介します。
2.「数値が表示されているセル」を数えるには
まずは、「数値が表示されているセルの数」を数えられる数式からです。
2-1.カウントの対象は
カウントの対象は、次の通りです。
- 数値が入力されたセル
- 数式の結果が数値のセル
簡単にいうと、「見た目が数字のものをカウントする」です。ただし、「文字列の数値」は数えません。
2-2.数式の形
数式の形は、次の通りです。
「範囲」には、カウントしたい範囲を指定します。複数列、複数行の指定が可能です。
2-3.数式の作り方
続いて、数式を作る手順を見てみましょう。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「範囲」の文字を消し、「カウントしたい範囲」を入れる
(3)Enterキーを押せば完了
セルA4に入れた数式は、次の通りです。
=SUMPRODUCT(ISNUMBER(A1:B3)*1)
ちなみに、「セルA2は文字列の数値」なのでカウントされません。「文字列の数値」のセルには「左上に緑色の▲」が表示されます。
3.「数値が入力されているセル」を数えるには
次に、「数値が入力されているセルの数」を数えられる数式です。
3-1.カウントの対象は
カウントの対象は、次の通りです。
- 数値が入力されたセル
逆に言うと、「数式の結果の数値」や「文字列の数値」、「空白」は数えません。
3-2.数式の形
数式の形は、次の通りです。
2ヶ所の「範囲」には、「カウントしたい範囲」を同じく指定します。複数列、複数行の指定が可能です。
3-3.数式の作り方
続いて、数式を作る手順を見てみましょう。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(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本の紹介】