ExcelのISTEXT関数の使い方|セルの値が文字列かどうかを判定する方法

スポンサーリンク

「このセルの値って数値? それとも文字列?」と迷ったことはありませんか。見た目はまったく同じ「1234」でも、数値型と文字列型ではSUM関数の集計結果が変わってしまいます。

CSVを貼り付けたら金額列がゼロになっていた……なんてトラブル、原因は「文字列型の数字」だったというケースが少なくありません。

そんなときに活躍するのがISTEXT関数です。この記事では、ISTEXT関数の基本から実務で役立つ活用パターンまでまとめて紹介します。

この記事は次のような人におすすめ

– セルの値が文字列として扱われているか確認したい
– 数値が文字列型で格納されていないかチェックしたい
– IF関数やISNONTEXT関数と組み合わせて使いたい

ISTEXT関数とは?

ISTEXT(いず てきすと)関数は、指定した値が文字列かどうかを判定する関数です。

対象が文字列であれば TRUE を返します。数値・論理値・空白・エラー値などはすべて FALSE です。

IS系(情報関数)の1つで、セルに入っているデータの種類を確認するための関数ファミリーに属しています。

NOTE

ISTEXT関数は Excel 2003 以降のすべてのバージョンで使用できます。

ISTEXT関数の書き方(構文と引数)

基本構文

=ISTEXT(テストの対象)

引数の説明

引数必須/省略可説明
テストの対象必須文字列かどうか判定したい値またはセル参照

引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。

ISTEXT関数の基本的な使い方

まずはシンプルな例で動きを確認してみましょう。

値の種類ごとの判定結果

さまざまなデータをISTEXT関数で判定すると、次のような結果になります。

数式結果理由
=ISTEXT("東京")TRUE文字列なので TRUE
=ISTEXT("123")TRUEダブルクォーテーションで囲んでいるので文字列型
=ISTEXT(100)FALSE数値なので FALSE
=ISTEXT(TRUE)FALSE論理値なので FALSE
=ISTEXT("")TRUE空文字列も文字列型
=ISTEXT(A1) ※A1が空白FALSE空白セルは文字列ではない

TIP

空文字列(””)と空白セルは異なります。空文字列は ISTEXT で TRUE ですが、空白セルは FALSE です。空白判定には ISBLANK関数 を使いましょう。

セル参照で判定する

セル参照を使えば、特定のセルの値が文字列かどうかを確認できます。

=ISTEXT(A1)

A1 に "東京" が入っていれば TRUE です。100TRUE なら FALSE になります。

数式の結果を判定する

ISTEXT関数の引数に数式を直接入れることもできます。

=ISTEXT(A1&B1)

& 演算子の結果は常に文字列なので、この数式は TRUE です。

一方、=ISTEXT(A1+B1) は計算結果が数値のため FALSE です。

ISTEXT関数の実務活用パターン

パターン1: IF関数と組み合わせてデータ種別を表示する

セルの内容が文字列かどうかに応じて処理を分けたい場面で使えます。

=IF(ISTEXT(B2),"文字列です","文字列ではありません")

B2 が文字列なら「文字列です」と表示します。それ以外なら「文字列ではありません」と表示します。

外部データの品質チェックに便利です。数値が入るべき列に文字列型の数字が混ざっていないか確認できます。

パターン2: 数値列に混入した文字列を検出する

CSVや外部データを貼り付けると、数値が文字列として格納されることがあります。文字列型だと計算に使えません。

=ISTEXT(C2)

数値型の 1234 なら FALSE、文字列型の “1234” なら TRUE です。TRUE のセルが問題箇所です。

文字列型の数字を数値に変換したい場合は、次のように書きます。

=VALUE(C2)

あるいは、セルを選択して「区切り位置」機能(データタブ)を使えば一括変換も可能です。

パターン3: SUMPRODUCT と組み合わせて文字列セルを数える

範囲内に文字列がいくつ含まれるかを数えるには、SUMPRODUCT関数と組み合わせます。

=SUMPRODUCT(ISTEXT(A2:A20)*1)

ISTEXT(A2:A20) が各セルに対してTRUE/FALSEの配列を返します。

*1 で数値化し、SUMPRODUCTで合計すれば文字列セルの個数がわかります。

TIP

単純に文字列セルの個数を数えるだけなら COUNTA関数COUNT関数 の差(COUNTA – COUNT)でも概算できます。ISTEXTとSUMPRODUCTの組み合わせは、厳密な判定が必要なときに便利です。

パターン4: 条件付き書式で文字列セルをハイライトする

数値が入るべき列に文字列が紛れ込んでいるセルだけを目立たせたい場合に使えます。

  1. 対象範囲を選択します
  2. 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
  3. 「数式を使用して、書式設定するセルを決定」を選びます
  4. 数式欄に =ISTEXT(A1) と入力します
  5. 好きな書式(赤い塗りつぶしなど)を設定します

これで文字列が入っているセルだけが色分けされます。「数値が入るべき列に文字列が混ざっていないか」を視覚的に確認できます。

パターン5: データ入力規則で文字列のみ許可する

特定の列に文字列だけを入力させたいときに活用できます。

データの入力規則(データタブ → データの入力規則)で、「ユーザー設定」の数式に次のように入力します。

=ISTEXT(D2)

D2 に数値や論理値を入力するとエラーメッセージが表示されます。氏名や住所など、文字列専用の列の入力制限に使えます。

パターン6: VLOOKUPの前にデータ型を確認する

VLOOKUP関数で「検索値が見つからない」とき、原因がデータ型の不一致だったというケースはよくあります。検索キーが数値型なのにテーブル側が文字列型(またはその逆)だと、見た目は同じ値でもヒットしません。

=ISTEXT(A2)=ISTEXT(D2)

検索キー(A2)とテーブルの先頭列(D2)のISTEXT結果を比較して、両方ともTRUEまたは両方ともFALSEならデータ型が一致しています。結果がFALSEなら型が食い違っている証拠です。

TIP

VLOOKUP の #N/A エラーは ISNA関数 で検知できます。「なぜ #N/A が出るか」を調べるときにISTEXTでデータ型を確認すると、原因の切り分けがスムーズです。

ISTEXT関数とTYPE関数の違い

「セルのデータ型を調べる」という目的では、TYPE関数もよく使われます。

TYPE関数はデータの種類を数値コードで返します。一方、ISTEXT関数は「文字列かどうか」だけを TRUE/FALSE で返します。

比較項目ISTEXT関数TYPE関数
戻り値TRUE / FALSE数値コード(1=数値, 2=文字列, 4=論理値, 16=エラー, 64=配列)
判定範囲文字列かどうかの2択5種類のデータ型を区別
IF関数との相性そのまま条件式に使える=IF(TYPE(A1)=2, ...) のように比較が必要
典型的な用途文字列混入チェックデータ型の詳細な仕分け

使い分けのポイント: 「文字列かどうか」だけ知りたいならISTEXT関数がシンプルです。数値・論理値・エラー値を細かく区別したいならTYPE関数を使いましょう。

ISTEXT関数とISNONTEXT関数の違い

ISTEXT関数には対になる ISNONTEXT関数 があります。判定の結果が真逆になる関係です。

入力値ISTEXT の結果ISNONTEXT の結果
“東京”(文字列)TRUEFALSE
100(数値)FALSETRUE
TRUE(論理値)FALSETRUE
空白セルFALSETRUE
“”(空文字列)TRUEFALSE

つまり =ISTEXT(A1)=NOT(ISNONTEXT(A1)) は同じ結果です。

NOTE

空白セルは「文字列ではない」ため、ISNONTEXT は TRUE を返します。ISTEXT は当然 FALSE です。この点では =NOT(ISTEXT(A1))=ISNONTEXT(A1) は同じ結果になります。

使い分けのポイントは「文字列か?」と「文字列でないか?」のどちらを確認したいかです。条件式の読みやすさで選んでください。

よくあるエラーと対処法

ISTEXT関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。

症状原因対処法
数字なのに TRUE が返るセルの表示形式が「文字列」になっているVALUE関数で数値に変換するか、「区切り位置」機能で一括変換する
空白セルで FALSE が返る空白は文字列ではない空白判定には ISBLANK関数 を使う
日付セルで FALSE が返るExcelの日付はシリアル値(数値)で管理されている日付として表示されていても内部は数値。文字列型の日付は "2026/1/1" のように入力された場合のみ TRUE
空文字列(””)で TRUE が返る空文字列も文字列型である空白と空文字列を区別したい場合は =AND(ISTEXT(A1), A1<>"") を使う
エラー値(#N/A など)で FALSE が返るエラー値は文字列ではないエラー判定には ISERROR関数IFERROR関数 を使う

IS系12関数の違い・使い分け

IS系関数は、セルに入っているデータの種類を判定するファミリーです。用途に合わせて使い分けましょう。

関数名判定内容TRUE になる例
ISBLANK空白セルか未入力のセル
ISERROR任意のエラー値か#N/A, #VALUE!, #REF! など
ISERR#N/A 以外のエラー値か#VALUE!, #REF!, #DIV/0! など
ISNA#N/A エラーか#N/A のみ
ISLOGICAL論理値(TRUE/FALSE)かTRUE, FALSE
ISNUMBER数値か100, 3.14, 日付のシリアル値
ISTEXT(この記事)文字列か“東京”, “123”(文字列型)
ISNONTEXT文字列以外か100, TRUE, 空白
ISFORMULA数式が入っているか=SUM(A1:A10) が入ったセル
ISREF有効なセル参照かA1, Sheet2!B3
ISEVEN偶数か2, 4, 100
ISODD奇数か1, 3, 99

TIP

ISTEXTと対になるのが ISNONTEXT関数、数値判定には ISNUMBER関数 が便利です。「文字列か?」「数値か?」の両方を確認したい場合はセットで使うのがおすすめです。

まとめ

ISTEXT関数は、セルの値が文字列かどうかを判定するシンプルな関数です。

  • 引数は1つだけ。文字列なら TRUE、それ以外なら FALSE
  • 空文字列(””)も文字列として TRUE を返す(空白セルとは異なる)
  • CSVや外部データを貼り付けたあとの「文字列型の数字」検出に便利
  • IF関数・条件付き書式・データ入力規則と組み合わせるのが実務での定番パターン
  • VLOOKUP の #N/A エラーの原因調査にも使える(データ型の不一致チェック)
  • 「文字列かどうか」の2択ならISTEXT、データ型を細かく調べるならTYPE関数

IS系関数ファミリーの中でも実務での出番が多い関数です。データの品質チェックにぜひ活用してみてください。


関連記事

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