「このセルの値って数値? それとも文字列?」と迷ったことはありませんか。見た目はまったく同じ「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 です。100 や TRUE なら 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: 条件付き書式で文字列セルをハイライトする
数値が入るべき列に文字列が紛れ込んでいるセルだけを目立たせたい場合に使えます。
- 対象範囲を選択します
- 「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します
- 「数式を使用して、書式設定するセルを決定」を選びます
- 数式欄に
=ISTEXT(A1)と入力します - 好きな書式(赤い塗りつぶしなど)を設定します
これで文字列が入っているセルだけが色分けされます。「数値が入るべき列に文字列が混ざっていないか」を視覚的に確認できます。
パターン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 の結果 |
|---|---|---|
| “東京”(文字列) | TRUE | FALSE |
| 100(数値) | FALSE | TRUE |
| TRUE(論理値) | FALSE | TRUE |
| 空白セル | FALSE | TRUE |
| “”(空文字列) | TRUE | FALSE |
つまり =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系関数ファミリーの中でも実務での出番が多い関数です。データの品質チェックにぜひ活用してみてください。
関連記事
- ISNONTEXT関数の使い方|文字列以外かどうかを判定する方法
- ISNUMBER関数の使い方|数値かどうかを判定する方法
- ISLOGICAL関数の使い方|論理値(TRUE/FALSE)を判定する方法
- ISBLANK関数の使い方|空白セルを判定する方法
- ISNA関数の使い方|#N/Aエラーを判定する方法
- ISERROR関数の使い方|エラー値を判定する方法
- ISFORMULA関数の使い方|数式が入っているか確認する方法
- ISREF関数の使い方|セル参照が有効かどうかを判定する方法
- IFERROR関数の使い方|エラーを非表示にする方法
- IF関数の使い方|条件分岐の基本
- VALUE関数の使い方|文字列を数値に変換する方法
- VLOOKUP関数の使い方|別の表からデータを検索する方法
- COUNT関数の使い方|数値セルの個数を数える方法
- COUNTA関数の使い方|空白以外のセルを数える方法
- Excel関数一覧(機能別)
