Excel関数 逆引き集 | 数値でない場合の回避 → ISNUMBER

Excel
スポンサーリンク

概要

計算式を書いていて、

  • 「見た目は数字っぽいのに、なぜか計算エラーになる」
  • 「CSV 取り込みで、数値列に文字が混ざっている」
  • 「合計や平均を取りたいけど、“数値じゃないもの” は計算から外したい」

こういうときに使えるのが ISNUMBER 関数です。

「これは“数値”として認識されているか?」 を TRUE / FALSE で判定できるので、
IF と組み合わせることで、「数値でない場合を回避」するのにとても役立ちます。


ISNUMBER の基本

ISNUMBER の書式と動き

=ISNUMBER(値)

この式の結果は、必ず TRUE か FALSE です。

  • その値が「数値」として扱えるなら → TRUE
  • それ以外(文字列・空白・エラーなど) → FALSE

ポイントは、「見た目」ではなく「Excel が内部で数値として持っているか」を判定することです。

例えば、セルの中身が

  • 123 → TRUE
  • 3.14 → TRUE
  • 日付(例:2025/12/31)→ TRUE(Excel 内部では数値なので)
  • “123”(文字列としての 123)→ FALSE
  • 空白 → FALSE
  • “ABC” → FALSE

となります。


IF と組み合わせて「数値なら計算、そうでなければ回避」

数値のときだけ掛け算する

B2 に数量、C2 に単価が入っているとします。
C2 に「文字」や「空白」が入る可能性があるなら、
数値のときだけ計算するようにしておくと安全です。

=IF(ISNUMBER(C2), B2*C2, "")
  • C2 が数値 → B2*C2 を計算
  • C2 が数値でない(文字列や空白など)→ 空白を返す

数値でないときに無理に掛け算してエラーになるのを防げます。


数値でない場合は 0 として扱う

合計などで「数値以外は 0 として扱いたい」場合もあります。

=IF(ISNUMBER(A2), A2, 0)
  • A2 が数値 → そのまま A2
  • 数値でない → 0

この列を SUM すれば、「数値だけを合計」した結果になります。


文字が混ざった列から「数値だけ」扱いたいとき

数値かどうかをフラグ化する

例えば、A列にいろいろな値が入っていて、
数値だけを集計したいとします。

B列に次の式を書いてフラグを立てられます。

=ISNUMBER(A2)
  • A2 が数値 → TRUE
  • それ以外 → FALSE

さらに、TRUE を 1、FALSE を 0 に変換したいなら、こう書けます。

=IF(ISNUMBER(A2), 1, 0)

この列を合計すれば、「数値が何件あるか」のカウントにも使えます。


数値かどうかで処理を切り替える

数値ならそのまま、数値でなければメッセージ表示

A2 に入力された値が数値なら OK、
数値でないなら「数値を入力してください」と促したい場合。

=IF(ISNUMBER(A2), A2, "数値を入力してください")

こうしておけば、入力チェックとしても使えます。


日付も「数値として扱われているか」を確認できる

日付が文字列になっているケースの判定

Excel の日付は、内部的には「シリアル値」という数値です。
なので、本物の日付なら ISNUMBER は TRUE になります。

=ISNUMBER(A2)
  • A2 に 2025/12/31 などの日付が正しく入っている → TRUE
  • 取り込みミスなどで “2025/12/31” と文字列扱い → FALSE

見た目は日付でも、実際には文字列のことがあるので、
日付列のクリーニングにも ISNUMBER が使えます。


例題

問題1

A2 の値が数値なら TRUE、数値でなければ FALSE を返す式を書いてください。

=ISNUMBER(A2)

問題2

C2 に単価、B2 に数量が入っています。
C2 が数値のときだけ B2*C2 を計算し、
数値でない場合は空白(””)を返す式を書いてください。

=IF(ISNUMBER(C2), B2*C2, "")

問題3

A2 にさまざまな値が入っています。
数値ならその値を、数値でない場合は 0 を返す式を書いてください。

=IF(ISNUMBER(A2), A2, 0)

問題4

A2 に入力された値が数値ならそのまま表示し、
数値でない場合は「数値を入力」と表示する式を書いてください。

=IF(ISNUMBER(A2), A2, "数値を入力")

問題5

A2 に日付が入力されている列があります。
「A2 が Excel にとって“数値としての正しい日付”なら TRUE、
文字列などで日付っぽく見えるだけなら FALSE」を判定する式を書いてください。

=ISNUMBER(A2)

まとめ

「数値でない場合の回避 → ISNUMBER」は、
一言で言えば 「これは本当に“計算に使っていい値”か?」を確認するための関門 です。

基本形はこれだけです。

=IF(ISNUMBER(セル), 数値だったときの処理, 数値でないときの処理)

計算式が想定外のエラーを出しているとき、
まずは ISNUMBER を使って「前提となる入力が本当に数値か?」をチェックしてみてください。
土台がきちんと数値でそろっているかどうかが確認できるだけで、
トラブルシュートの難易度がぐっと下がります。

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