doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

Excelで最初のテキスト値を一瞬で取り出す3つの方法【XLOOKUP・INDEX・ISTEXT】

スポンサーリンク


Excelで最初のテキスト値を一瞬で取り出す3つの方法【XLOOKUP・INDEX・ISTEXT】

「数値や空白が混ざった列から、最初のテキストだけを取り出したい」——そんな場面で手が止まっていませんか?

実は、ISTEXT関数を組み合わせた数式1行で、この問題はあっさり解決できます。この記事を読めば、Excelのバージョンに関係なく使える方法が分かり、今日から即座に業務へ応用できます。


この記事で使うサンプルデータ

記事全体を通して、以下の表を使います。プロジェクト進捗表のコメント列を想定したデータです。

A列(コメント)
1 101
2 (空白)
3 205
4 (空白)
5 対応中
6 1
7 承認済み
8 (空白)
9 要確認
10 330

数値・空白・テキストが複数混在するこのデータから、「対応中」(最初のテキスト値)を取り出すのがゴールです。


なぜ通常の検索関数では対応できないのか

MINMAXは数値専用のため、テキストの検出には使えません。VLOOKUPMATCH単体では「テキストかどうか」を条件に検索できません。

解決の鍵は、ISTEXT関数です。ISTEXTはセルの値がテキストならTRUE、そうでなければFALSEを返します。これを検索条件として活用することで、「最初のテキスト値」をピンポイントで取得できるようになります。


方法① XLOOKUP + ISTEXT(Excel 365 / 2021 推奨)

最もシンプルで読みやすい方法です。

=XLOOKUP(TRUE, ISTEXT(A1:A10), A1:A10, "テキストなし")

動作の仕組み

  1. ISTEXT(A1:A10) が各セルを判定し、{FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE} という配列を返す
  2. XLOOKUP がその配列の中で最初にTRUEになった位置(5行目)を見つける
  3. 同じ位置の値「対応中」を返す
処理ステップ 結果
ISTEXT配列 FALSE, FALSE, FALSE, FALSE, TRUE, ...
取得する値 対応中

第4引数に"テキストなし"を指定することで、テキストが1件も見つからない場合のエラーも防げます。

向いている場面

  • Excel 365 / 2021 環境
  • 数式を極力シンプルに保ちたいとき

方法② INDEX + MATCH + ISTEXT(Excel 2016以前にも対応)

XLOOKUPが使えない環境での定番パターンです。

=IFERROR(INDEX(A1:A10, MATCH(TRUE, ISTEXT(A1:A10), 0)), "テキストなし")

※Excel 2016以前では Ctrl + Shift + Enter で配列数式として入力

動作の仕組み

  1. ISTEXT(A1:A10)TRUE/FALSE の配列を生成する(方法①と同じ)
  2. MATCH(TRUE, ..., 0) が最初のTRUE相対位置(5)を返す
  3. INDEX(A1:A10, 5) でA5の値「対応中」を取得する
  4. IFERROR でエラー時に「テキストなし」を表示する
処理ステップ 結果
MATCHの返り値 5(5行目)
INDEXの取得値 対応中

向いている場面

  • Excel 2010〜2019 環境
  • 会社のPCなどXLOOKUPが使えない場合

方法③ VLOOKUP を使う場合(補足)

VLOOKUPはISTEXTを直接検索条件にできないため、作業列が必須です。

  • B列に =ISTEXT(A1) を入力してコピー(TRUE/FALSEが並ぶ)
  • C列にA列の値をそのままコピー
  • =VLOOKUP(TRUE, B1:C10, 2, FALSE) で検索する

手順が多く、シートが複雑になるため、実務では方法①か②を優先するのがおすすめです。どうしてもVLOOKUPしか使えない制約がある場合の最終手段と考えてください。


3つの方法を比較する

方法 対応バージョン 作業列 簡潔さ おすすめ度
XLOOKUP + ISTEXT 365 / 2021 不要 ★★★
INDEX + MATCH + ISTEXT 2010以降 不要 ★★☆
VLOOKUP + 作業列 全バージョン 必要 ★☆☆

よくあるミスと対処法

⚠️ 数値が「文字列として保存」されているケース

Excelでは、見た目は数字でも「文字列として保存」されているセルが存在します。ISTEXTはその場合でもTRUEを返すため、意図しないセルが「最初のテキスト値」として検出されることがあります。

セルの左上に緑の三角マークが出ていたら要注意です。

対処法:数値文字列を除外する数式

=XLOOKUP(TRUE, ISTEXT(A1:A10)*(ISERROR(A1:A10*1)), A1:A10, "テキストなし")

この数式の動作原理:

  • A1:A10*1:各セルに1を掛ける。純粋な数値や数値文字列なら計算が成立し、日本語テキストはエラーになる
  • ISERROR(...) :計算がエラーになったセル(=本物のテキスト)をTRUEに変換する
  • ISTEXT(...)*ISERROR(...):両方TRUEのセルだけが1(TRUE)になる

これにより、「承認済み」のような日本語テキストのみを対象に絞り込めます。

✅ 空白セルの扱い

ISTEXTは空白セルに対してFALSEを返します。空白を誤ってテキストと判定する心配はありません。


まとめ:あなたの環境に合った方法を選ぼう

状況 使うべき方法
Excel 365 / 2021 を使っている XLOOKUP + ISTEXT
Excel 2016以前の環境 INDEX + MATCH + ISTEXT
作業列を使ってもいい VLOOKUP + 作業列(非推奨)
数値文字列が混入している可能性がある ISTEXT * ISERROR の組み合わせ

まずはサンプルデータで動作を確認し、自分のシートのデータ範囲に置き換えて使ってみてください。数式をそのままコピーして、範囲だけ変更すればすぐに使えます。

次のステップとして、「最後のテキスト値を取得する方法」や「条件付きで特定の文字列を含むセルを検索する方法」も合わせて読むと、データ抽出の幅がさらに広がります。