ISNUMBER関数を徹底解説!基本的な使い方からIF・MATCH関数との組み合わせをマスターしよう

この記事で分かること
  • ISNUMBER関数の基本的な使い方と役割
  • ISNUMBER関数を使ったデータの数値判定方法
  • IF関数と組み合わせた条件分岐の方法
  • MATCH関数と組み合わせて特定の数値データを検索する方法
  • ISNUMBER関数を使う上での注意点

エクセルISNUMBER関数とは?基本的な使い方をマスターしよう

エクセルでデータ分析や集計を行う際、「このセルに入っているデータは数値なのか?それとも文字列なのか?」を判定したい時に役立つのが、ISNUMBER関数です。

ISNUMBER関数の役割

ISNUMBER関数とは

指定したセルや値が「数値」であるかどうかを判定し、その結果を論理値(TRUEまたはFALSE)で返す関数

  • TRUE (真):指定した値が数値である場合
  • FALSE (偽):指定した値が数値以外(文字列、論理値、エラー値など)である場合

このTRUE/FALSEの結果を利用して、後述のIF関数などで処理を分岐させることができます。

ISNUMBER関数の書式

ISNUMBER関数の書式:

=ISNUMBER()

:数値かどうかを判定したいセル、または直接入力した値や式を指定します。

例題:基本的な数値判定

以下の表を使って、基本的な使い方を見てみましょう。

数式:

=ISNUMBER(A2)

B列の数式から分かること:

  • A2の「123」は純粋な数値なので、TRUEを返しています。
  • A3の「Excel」は文字列なので、FALSEを返しています。
  • A4の「12/25」は、エクセル内部ではシリアル値という数値として扱われるため、TRUEを返しています。
  • A5の「’456」は、見た目は数字ですが、セルの先頭に'(アポストロフィ)が付いているため文字列として扱われ、FALSEを返しています。


知っておきたい応用技:関数*1と複数条件の判定

関数*1:計算結果が数値かどうかの判定

ISNUMBER関数は、セルだけでなく、他の関数の結果が数値であるかどうかも判定できます。

たとえば、セルに計算式の結果が入っている場合、その結果が数値として成立しているかをチェックできます。

=ISNUMBER(A2+B2)

例題:計算結果の判定

C2セル数式:

=ISNUMBER(A2+B2)

C3セル数式:

=ISNUMBER(A3+B3)

C4セル数式:

=ISNUMBER(A4/B4)

エラー値は数値ではないため、計算結果がエラーになった場合、ISNUMBER関数はFALSEを返します。この特性は、エラーチェックにも応用できます。

複数条件(AND/OR)の判定は可能?

ISNUMBER関数自体は単一の値を判定するものなので、複数のセルを直接判定することはできません

しかし、AND関数OR関数と組み合わせることで、「A1もB1も両方とも数値であるか」や「A1かB1のどちらか一方が数値であるか」といった複数条件の判定が可能です。

  • AND条件(両方数値):

=AND(ISNUMBER(A2), ISNUMBER(B2))

  • OR条件(どちらか数値):

=OR(ISNUMBER(A2), ISNUMBER(B2))

例題:AND関数と組み合わせた複数判定


【実務で必須】ISNUMBER関数とIF関数の組み合わせ方

ISNUMBER関数が返すTRUE/FALSEという論理値は、IF関数論理式として活用するのに最適です。

これにより、数値であるかどうかに応じて処理を条件分岐させることができます。

組み合わせの書式

=IF(ISNUMBER(値), 真の場合に返す値, 偽の場合に返す値)

  • 真の場合に返す値数値の時に実行したい処理(例:「OK」や計算式)
  • 偽の場合に返す値数値以外の時に実行したい処理(例:「エラー」や空白)

例題:数値データのみを合計する

以下の売上データの中から、数値として入力されている売上データのみを合計したいとします。

A列B列C列D列
商品売上数式結果
りんご1500=IF(ISNUMBER(B2), B2, 0)1500
みかん2000=IF(ISNUMBER(B3), B3, 0)2000
バナナデータなし=IF(ISNUMBER(B4), B4, 0)0
メロン3000=IF(ISNUMBER(B5), B5, 0)3000
いちご‘1000=IF(ISNUMBER(B6), B6, 0)0
合計6500

C列の数式の意味:

  1. ISNUMBER(B2):B2セルが数値かどうかを判定します。
  2. 判定がTRUE(数値)の場合:B2の値、つまり売上金額そのままを返します。
  3. 判定がFALSE(数値以外、または文字列)の場合:0を返します。

C列の値をすべて合計(=SUM(C2:C6))すると、数値データのみの合計値6500円を正確に求めることができます。

結果

ISNUMBER関数とMATCH関数の組み合わせ方

ISNUMBER関数は、MATCH関数と組み合わせることで、特定の範囲から数値データがどこにあるかを検索し、その位置(行番号)を取得するテクニックにも使われます。

特に、配列数式として利用することで強力な検索機能を発揮します。

組み合わせの考え方

  1. MATCH関数検査値に、検索対象のデータと同じサイズの配列を指定します。
  2. その配列に、ISNUMBER(範囲)の結果であるTRUE/FALSEの配列を入れます。
  3. MATCH関数の検査範囲には、TRUEという論理値を指定します。

これにより、範囲内で最初にTRUE(数値)が出現した場所を特定できます。

例題:範囲内で最初の数値データの位置を特定する

以下のリストから、最初に入力されている数値データが何行目にあるかを見つけたいとします。

A列
データ
項目名
文字列A
100
200
文字列B
300
文字列C

B2セルに入力する数式(配列数式):

=MATCH(TRUE, ISNUMBER(A2:A8), 0)

この数式を実行すると、結果は2となります。

これは、検索範囲のA2:A8の中で、2番目のセルであるA2(値:文字列A)の次、A3節にある「100」が最初の数値であることを示しています。

配列数式として入力すると、ISNUMBER(A2:A8)が{FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE}という配列を返し、その中でTRUEを検索するため、結果は2となります。

結果
重要

この数式は、配列数式として入力する必要があります。通常通りEnterを押すのではなく、数式入力後に Ctrl + Shift + Enter (Macの場合は Command + Shift + Enter) を押してください。数式が中括弧 { } で囲まれれば成功です。


ISNUMBER関数を使う上での注意点

見た目は数字なのにFALSEになる」という現象について解説します。

1. 文字列として扱われている数字

前述の通り、見た目は数字でも、文字列として入力されているとISNUMBER関数はFALSEを返します。

  • :「’123」(セルの先頭にアポストロフィがある)
  • :Webや他のシステムからコピー&ペーストした際、文字形式で貼り付けられてしまった数字

文字列として扱われている数字を数値に戻すには、以下の方法があります。

  • 数値として再入力する
  • VALUE関数 を使って強制的に数値に変換する
  • データタブの「区切り位置」機能を使って変換する

2. 空白セル

空白セルは、ISNUMBER関数では数値ではないと判定され、FALSEが返されます。

空欄のセル

=ISNUMBER(A1)

FALSE

もし、「空白セルは無視して、何かデータが入っているなら数値か判定したい」という場合は、ISBLANK関数などで事前に空白チェックを行う必要があります。


まとめ

今回は、エクセルのISNUMBER関数について、基本的な使い方から応用、そして注意点までを詳しく解説しました。

機能使い方組み合わせ
基本的な役割セルや値が数値かを判定し、TRUE/FALSEを返す
条件分岐判定結果(TRUE/FALSE)を論理式として活用するIF関数
検索範囲内の最初の数値データの位置を特定するMATCH関数(配列数式)
注意点見た目が数字でも文字列として入力されている場合はFALSEになるVALUE関数で数値に変換可能

ISNUMBER関数は、データクレンジングや集計の際に、数値データだけを正確に扱うための土台となる非常に重要な関数です。

ぜひ、今回ご紹介したIF関数MATCH関数との組み合わせ技をマスターして、日々のエクセル業務の効率アップに役立ててください!

この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
シェアする
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました