ExcelのVALUETOTEXT関数とは|値をそのままテキストに変換する関数
Excelで値を文字列に変換したい場面は意外と多いものです。セルの中身をログとして残したいとき、数式の結果を別の文字列と連結したいとき、データ型をチェックしたいとき。そんなとき真っ先に思い浮かぶのがTEXT関数ですが、毎回書式コードを指定するのが面倒に感じたことはありませんか。
VALUETOTEXT関数を使えば、書式コードを書かなくても値をそのままテキストに変換できます。引数は最小1つだけで済み、数値・文字列・論理値・エラー値のいずれもまとめて受け止めてくれる便利な関数です。
この記事では、ExcelのVALUETOTEXT関数の構文から書式0と1の違い、TEXT関数・ARRAYTOTEXT関数との使い分け、VLOOKUPデバッグやデータ型可視化といった実務活用例、よくあるエラーと対処法、そしてExcel 2019以前の代替策まで一気通貫で解説します。
読み方と対応バージョン
VALUETOTEXT は「バリュー・トゥ・テキスト」と読みます。名前のとおり「値(Value)をテキスト(Text)へ変換する」関数で、もともとはWebアプリのスクリプト言語に近い直感的な命名です。
対応バージョンは以下のとおりです。
- Microsoft 365(推奨。常に最新仕様)
- Excel 2021
- Excel 2024
- Excel for the web(Web版)
Excel 2019以前のバージョンでは使えません。古い環境で数式を入力すると #NAME? エラーが返ります。職場のExcelバージョンが古い場合は、後述する代替手段を参考にしてください。
できること・できないこと
VALUETOTEXT関数の役割を正確につかむため、できることと、できないことを整理しておきます。
できること
- 数値・文字列・論理値・エラー値を、そのままテキストに変換する
- 書式1を指定すると、文字列だけ引用符(ダブルクォーテーション)で囲める
- テキスト格納数値(見た目は数字だが文字列として保存されている値)と真の数値を見分けるデバッグ用途に使える
- 数式の結果を文字列としてログに残す
できないこと
- 日付を「yyyy/mm/dd」のような任意の書式で返すこと(日付はシリアル値になる場合があります)
- 数値に
#,##0のような桁区切りを付けること - 配列をまとめて1つのテキストにすること(配列の変換にはARRAYTOTEXT関数を使います)
日付の書式変換や桁区切りが必要なら、TEXT関数、配列の連結ならTEXTJOIN関数やARRAYTOTEXT関数と使い分けてくださいね。
ExcelのVALUETOTEXT関数の構文と引数
VALUETOTEXT関数の構文は次のとおりです。
=VALUETOTEXT(値, [書式])
引数は2つあり、「値」は必須、「書式」は省略可能です。省略した場合は書式0(簡潔モード)が適用されます。
引数「値」の指定方法
第1引数「値」には、テキストに変換したい値を指定します。セル参照でも直接入力でも構いません。
- セル参照:
=VALUETOTEXT(A1) - 直接入力(数値):
=VALUETOTEXT(12345) - 直接入力(文字列):
=VALUETOTEXT("売上") - 数式の結果:
=VALUETOTEXT(SUM(A1:A10)) - 論理値:
=VALUETOTEXT(A1>100)
数値、文字列、論理値(TRUE/FALSE)、エラー値のいずれも受け付けます。空白セルを指定した場合は、空文字列(長さ0のテキスト)が返ります。
セル範囲(A1:A5 のような複数セル)を指定すると、Microsoft 365のスピル機能によって行ごとに結果が縦に展開されます。配列を1つのテキストにまとめたい場合はARRAYTOTEXT関数の出番なので、混同しないように注意してください。
引数「書式」の指定方法(0と1)
第2引数「書式」には、0または1を指定します。
| 値 | モード名 | 動作 |
|---|---|---|
| 0(既定) | 簡潔(concise) | セルの標準書式と同じテキストを返す |
| 1 | 厳格(strict) | 文字列のみ引用符で囲み、エラー値は #…! のまま返す |
省略すると0が適用されます。0と1で結果が大きく変わるのは文字列だけです。数値・論理値・エラー値は、どちらを指定しても見た目は同じになります。
0と1以外の数値(たとえば2や-1、文字列の “1”)を指定すると #VALUE! エラーが返るので注意してください。書式は数値リテラルで指定するのが基本です。
書式0と1の違い|6データ型での比較表
書式0と書式1の違いを、データ型ごとに一覧で確認しましょう。
| データ型 | セルの値(A列) | 書式0(簡潔) | 書式1(厳格) |
|---|---|---|---|
| 数値 | 1234.01234 | 1234.01234 | 1234.01234 |
| テキスト格納数値 | “1234”(文字列) | 1234 | “1234” |
| 文字列 | Hello | Hello | “Hello” |
| 論理値 | TRUE | TRUE | TRUE |
| エラー値 | #VALUE! | #VALUE! | #VALUE! |
| 空白セル | (空) | (空文字列) | (空文字列) |
| 日付(標準書式) | 2026/4/30 | シリアル値※ | シリアル値※ |
※シリアル値とは、Excelが日付を内部で管理する連番(1900/1/1を1とした通し番号)です。日付セルの表示がシリアル値になるかどうかは、セルの表示書式に依存します。標準書式のセル(書式設定が「標準」のセル)に日付シリアル値を入れた場合、VALUETOTEXT は数値文字列を返します。一方で「短い日付」「長い日付」などの日付書式が設定されたセルなら、表示通りの「2026/4/30」が返ります。
表を見ると、書式0と書式1で結果が異なるのは「文字列」と「テキスト格納数値」の行だけです。書式1では "Hello" のように引用符が付きます。逆に言えば、引用符が付くかどうかで「そのセルの中身が文字列かどうか」を即座に判断できるわけです。
この引用符の有無が、後述するデバッグ活用で大きな力を発揮します。
書式0と1で変わらないデータ型の補足
数値・論理値・エラー値・空白セルでは、書式0と書式1で結果が変わりません。これは VALUETOTEXT が「文字列だけ引用符で囲んで強調する」設計になっているためです。
- 真の数値
1234.01234は、どちらでも引用符なしの数値文字列 - 論理値
TRUEは、どちらでもTRUEというテキスト - エラー値
#N/Aは、どちらでも文字列の#N/A
この仕様を覚えておくと、結果を見るときに迷いません。
TEXT関数・ARRAYTOTEXT関数との使い分け
VALUETOTEXT関数と似た機能を持つ関数として、TEXT関数とARRAYTOTEXT関数があります。3つの違いを比較表でまとめておきましょう。
| 比較項目 | VALUETOTEXT | TEXT | ARRAYTOTEXT |
|---|---|---|---|
| 主な対象 | 単一の値 | 単一の値 | 配列・範囲 |
| 書式コード | 不要 | 必須 | 不要 |
| 日付の書式指定 | できない(シリアル値になる場合あり) | yyyy/mm/ddなど自由 | できない |
| 数値の桁区切り | できない | #,##0 で可能 | できない |
| 引用符の付与 | 書式1で文字列のみ可能 | できない | 書式1で文字列のみ可能 |
| 出力形態 | テキスト | テキスト | カンマ区切りの1つのテキスト |
| 対応バージョン | Microsoft 365 / 2021以降 | 全バージョン | Microsoft 365 / 2021以降 |
使い分けの基準はシンプルです。
- 「ただテキストに変換したいだけ」→ VALUETOTEXT関数
- 「日付を
yyyy年mm月dd日にしたい」「金額に桁区切りを付けたい」→ TEXT関数 - 「配列やセル範囲を1つのテキストにまとめたい」→ ARRAYTOTEXT関数
- 「文字列かどうかを見分けたい」→ VALUETOTEXT関数(書式1)
TEXT関数は全バージョンで使えるため、Excel 2019以前の環境ではTEXT関数一択になります。逆に、書式コードを考えるのが面倒な場面ではVALUETOTEXT関数が圧倒的に手軽です。
3つの関数の関係性を一言でまとめると、「単一値ならVALUETOTEXT、配列ならARRAYTOTEXT、書式指定ならTEXT」と覚えておけば迷いません。
実務活用例3選|VLOOKUPデバッグから品質チェックまで
ここからは、VALUETOTEXT関数が実務で本当に役立つ場面を3つ紹介します。
活用例1:テキスト格納数値を見分ける(VLOOKUPデバッグ)
VLOOKUPで正しいキーを指定しているのに #N/A が返る。そんなとき原因の多くは「テキスト格納数値」です。見た目は数値なのに、中身は文字列として格納されているケースですね。CSVから取り込んだ社員番号や、システムからエクスポートした商品コードでよく発生します。
VALUETOTEXT関数の書式1を使うと、一発で見分けられます。
=VALUETOTEXT(A2, 1)
- A2が真の数値
12345→ 結果は12345(引用符なし) - A2がテキスト格納数値
"12345"→ 結果は"12345"(引用符あり)
引用符が付いていればテキスト格納数値です。VALUE関数で数値に変換してからVLOOKUPを組み直すか、検索キー側を =VLOOKUP(A2&"", ...) のように文字列化してマッチさせます。
データ型を返すTYPE関数と併用するとさらに確実です。TYPE関数は数値なら1、文字列なら2を返します。次のように両方を並べて表示すると、どのセルがテキスト格納数値かが瞬時に分かります。
A列:元データ
B列:=VALUETOTEXT(A2, 1)
C列:=TYPE(A2)
C列が2(文字列)なのにA列が数字に見えるセルが、テキスト格納数値の犯人です。
活用例2:FILTER結果を1セルにまとめる
FILTER関数の結果を1つのセルにまとめて表示したいときがあります。たとえば「営業部の社員名をカンマ区切りで1セルに並べたい」ようなケースですね。そんなときはTEXTJOIN関数とVALUETOTEXT関数を組み合わせます。
B列の部署が「営業」の行のA列(名前)をカンマ区切りで1セルにまとめるなら、次のように書きます。
=TEXTJOIN(", ", TRUE, FILTER(A2:A100, B2:B100="営業"))
この数式は多くの場合そのまま動きます。ただし数値や論理値が混在する列では、TEXTJOIN単独だと型変換でつまずくことがあります。VALUETOTEXT関数でテキストに統一しておくと安全です。
=TEXTJOIN(", ", TRUE, VALUETOTEXT(FILTER(C2:C100, B2:B100="営業")))
配列全体を1つのテキストに変換したい場合は、ARRAYTOTEXT関数のほうが端的に書けます。
=ARRAYTOTEXT(FILTER(A2:A100, B2:B100="営業"), 0)
VALUETOTEXT関数は単一値向け、ARRAYTOTEXT関数は配列向けと覚えておくと迷いません。
活用例3:データ型を目視確認する(品質チェック)
他部署や外部から受け取ったデータの品質チェックに、VALUETOTEXT関数が役立ちます。書式1で変換した列を横に並べると、各セルのデータ型が一目で分かります。
| A列(元データ) | B列(=VALUETOTEXT(A2,1)) | 判定 |
|---|---|---|
| 100 | 100 | 数値 |
| 100(テキスト格納) | “100” | テキスト格納数値 |
| 東京 | “東京” | 文字列 |
| TRUE | TRUE | 論理値 |
| #N/A | #N/A | エラー値 |
| (空セル) | (空文字列) | 空白 |
引用符が付くのは文字列・テキスト格納数値だけです。このルールを知っていれば、フィルターで「" を含むセル」を絞り込むだけで文字列セルを一括検出できます。
大量データのクレンジング前に、まずVALUETOTEXT関数で「どのセルが何型か」を可視化する。これだけで、後工程の集計ミスやVLOOKUPトラブルを大幅に減らせます。
よくあるエラーと対処法
VALUETOTEXT関数で発生するエラーは主に2種類です。エラーの詳細はExcelエラー値まとめも参考にしてください。
#VALUE!エラー|書式に0/1以外を指定したとき
第2引数「書式」に0または1以外の値を指定すると、#VALUE! エラーが返ります。
=VALUETOTEXT(A1, 2) → #VALUE!エラー
=VALUETOTEXT(A1, -1) → #VALUE!エラー
=VALUETOTEXT(A1, "1") → #VALUE!エラー(文字列の"1"はNG)
書式に指定できるのは数値の0か1のみです。省略すれば0が適用されるので、迷ったら省略してしまいましょう。
なお、第1引数にエラー値が入っているセルを指定した場合はエラーになりません。エラー値そのものがテキストとして返ります。たとえば =VALUETOTEXT(A1) でA1が #N/A なら、結果は文字列の #N/A です。これはエラーをログに残したいデバッグ用途で便利です。
#NAME?エラー|非対応バージョンで使ったとき
Excel 2019以前のバージョンでVALUETOTEXT関数を入力すると、#NAME? エラーが表示されます。Excelがこの関数名を認識できないためです。
非対応バージョンでは、以下の代替手段を使いましょう。
- 単純なテキスト変換:
=A1&""(空文字列を結合) - 数値の書式変換:
=TEXT(A1, "0") - 引用符付きテキスト:
=CHAR(34) & A1 & CHAR(34) - データ型による出し分け:
=IF(ISTEXT(A1), CHAR(34) & A1 & CHAR(34), A1 & "")
CHAR(34) はダブルクォーテーションの文字コードです。VALUETOTEXT関数の書式1と似た結果が得られます。ISTEXT 関数と組み合わせれば「文字列のときだけ引用符を付ける」挙動も再現できますよ。
スピル先のエラー|セル範囲を指定したとき
VALUETOTEXT関数にセル範囲(例:=VALUETOTEXT(A1:A10, 1))を指定すると、結果が縦方向にスピル展開されます。スピル先に既存データがあると #SPILL! エラーになります。スピル先を空けるか、=VALUETOTEXT(A1, 1) のようにセル単位で記述してフィルダウンしてください。
同じMicrosoft 365で増えた周辺関数まとめ
VALUETOTEXTは、Microsoft 365で追加された「データ操作系の新関数群」のひとつです。あわせて押さえておくと使いこなしの幅が広がります。
| 関数 | 役割 | VALUETOTEXTとの関係 |
|---|---|---|
| ARRAYTOTEXT | 配列・セル範囲を1つのテキストにまとめる | 配列版のVALUETOTEXT |
| TEXTJOIN | 区切り文字付きで連結 | 結果を結合する後処理に使う |
| TEXTSPLIT | テキストを区切り文字で分割 | VALUETOTEXTとは逆方向の操作 |
| TEXT | 書式コードで詳細に整形 | 書式指定が必要なときに使う |
| TYPE | データ型を数値で返す | デバッグで併用すると効果的 |
「テキスト変換 → 連結 → 整形」の3工程を意識すると、これらの関数を自然に使い分けられます。VALUETOTEXTは、その第一歩である「型を意識せず、まずテキストに揃える」役割を担う関数です。
まとめ|VALUETOTEXT関数で型のミスを未然に防ぐ
VALUETOTEXT関数は、書式コード不要で値をテキストに変換できるExcelの便利関数です。最後にポイントを整理しておきましょう。
- 構文は
=VALUETOTEXT(値, [書式])で、書式は省略可能(既定は0) - 書式0は簡潔モード、書式1は文字列に引用符を付ける厳格モード
- 引用符の有無で「文字列かどうか」を一発で判別できる
- テキスト格納数値の判別やデータ型チェックに威力を発揮する
- 日付の書式変換はTEXT関数、配列の変換はARRAYTOTEXT関数を使い分ける
- 0と1以外を書式に指定すると
#VALUE!、Excel 2019以前では#NAME?エラー - 古い環境では
=A1&""や=TEXT(A1, "0")、=CHAR(34)&A1&CHAR(34)で代替する
普段の業務でデータの型がおかしいと感じたら、VALUETOTEXT関数で確認する癖をつけてみてください。VLOOKUPの #N/A エラーや、SUMIFの集計漏れに悩まされる回数がぐっと減るはずです。
関連する関数もあわせて確認すると理解が深まります。FORMULATEXT関数はセルの数式をテキストで取得でき、UNICODE関数・UNICHAR関数は文字コードの変換に使えます。TYPE関数はデータ型をコードで取得するのでVALUETOTEXTと相性抜群です。網羅的に探すならExcel関数一覧から目的に合った関数を見つけてみてくださいね。
