ExcelのVALUETOTEXT関数の使い方|書式0と1の違いを徹底解説

スポンサーリンク

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.012341234.012341234.01234
テキスト格納数値“1234”(文字列)1234“1234”
文字列HelloHello“Hello”
論理値TRUETRUETRUE
エラー値#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つの違いを比較表でまとめておきましょう。

比較項目VALUETOTEXTTEXTARRAYTOTEXT
主な対象単一の値単一の値配列・範囲
書式コード不要必須不要
日付の書式指定できない(シリアル値になる場合あり)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))判定
100100数値
100(テキスト格納)“100”テキスト格納数値
東京“東京”文字列
TRUETRUE論理値
#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関数一覧から目的に合った関数を見つけてみてくださいね。

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