見た目は数字なのに合計に含まれない、VLOOKUPで一致しない、というトラブルの多くは「数値に見える文字列」が原因です。結論から言うと、ISNUMBER関数は=ISNUMBER(値)で、値が数値ならTRUE、数値でなければFALSEを返す関数です。セルの中身が本当に数値かどうかを確かめたり、SEARCH関数などと組み合わせて条件判定に使ったりします。
ISNUMBER関数の基本構文
=ISNUMBER(値)
値にはセル参照や数式を指定します。結果はTRUE(数値である)かFALSE(数値ではない)のどちらかです。日付や時刻もExcelの内部では数値なので、TRUEになります(日付が数値やシリアル値で表示されてしまう問題の直し方参照)。
ISNUMBER関数で数値かどうかを確かめる例
次のような受注数量の表(A1:B5)で考えます。3行目の「8」は、ほかのシステムから貼り付けたなどの理由で文字列として入っているものとします(セルの左寄せが目印です)。
| A(商品コード) | B(数量) | C(=ISNUMBER(B2)の結果) | |
|---|---|---|---|
| 2 | A-101 | 12 | TRUE |
| 3 | A-102 | 8(文字列) | FALSE |
| 4 | A-103 | (空白) | FALSE |
| 5 | A-104 | 20 | TRUE |
A列=商品コード、B列=数量という対応で、C2に=ISNUMBER(B2)と入れて下にコピーした結果です。文字列の「8」と空白セルはFALSEになります。
このとき=SUM(B2:B5)の結果は40ではなく32です。SUM関数は範囲内の文字列を無視するため、文字列の「8」が足されていません(SUM関数の基本的な使い方|合計を計算する方法参照)。数量の合計が合わないときは、ISNUMBERでFALSEになるセルを探すと原因がすぐに見つかります。
ISNUMBER関数とSEARCH・FIND関数で「含むかどうか」を判定する
SEARCH関数やFIND関数は、文字が見つかれば位置(数値)を、見つからなければエラーを返します。これをISNUMBERで包むと「含む=TRUE、含まない=FALSE」に変換できます。
=ISNUMBER(SEARCH("ペン",A2))
この形は、アンケートの複数回答を数えるアンケートの複数回答(カンマ区切り)をCOUNTIFで集計する方法や、SUMPRODUCTで部分一致の条件を作るSUMPRODUCTでAND/OR条件の集計をする方法で使っています。
ISNUMBER関数のよくある注意点
- 数字だけの文字列もFALSEになる:
=ISNUMBER("8")はFALSEです。見た目ではなく「データの種類」を判定する関数だと覚えておきましょう。VLOOKUPで数値と文字列が一致しない問題は#N/Aエラーが出る原因と対処法(VLOOKUP編)で解説しています。 - 文字列の数字を数値に直すには: 1セルずつ直すなら、エラーインジケーター(セル左上の緑の三角)から「数値に変換する」を選びます。数式で直す方法は、#VALUE!エラーの記事#VALUE!エラーの原因と直し方も参考になります。
- ほかのIS系関数との使い分け: 文字列かどうかはISTEXT、空白かどうかはISBLANK、エラーかどうかはISERRORで判定できます。
ISNUMBER関数が登場する記事
ISNUMBER関数の使い方まとめ
ISNUMBER関数は=ISNUMBER(値)で、数値ならTRUE、それ以外はFALSEを返します。合計が合わないときの原因調査や、SEARCH・FINDと組み合わせた「含むかどうか」の判定に便利です。条件付きの集計については、サイトの人気記事エクセルのsumifs関数でOR条件の集計をする方法やエクセル関数で条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。






