TYPE, VALUE, TEXT関数で数値と文字列を変換

Level3 関数

以下のような方におすすめの記事です。

  • データ型のせいでエラーが起きている
  • 現在のデータ型の確認方法を知りたい
  • データ型を関数で強制的に変換したい

関数やVBAを利用していると、データ型が一致しないせいでエラーが発生することがあります。

よくある例は、「100(数値)」と「100(文字列)」はデータ型が一致せず、IF関数やVLOOKUP関数で意図した形でデータ抽出をしません。

このような場合に、まず「100」が文字列なのか数値かを確認し、データ型の不一致が原因かを特定します。

そして、不一致が原因であれば、データ型を変換すれば解決するはずです。

今回のクエストはこちら

データ型の不一致が原因のエラー対処

正常に機能している場合

3桁のコードをセルJ2に入力すれば、VLOOKUP関数で都道府県名を抽出するものです。

VLOOKUP関数について確認したい方はこちらをチェックしてください。

データ型の不一致によってエラーを起こした場合の対処について見ていきましょう。

データ型の確認

TYPE関数を利用すると、データ型を確認できます。

=TYPE( 値 )

機能:引数のデータ型を数値で表示

  • 1:数値
  • 2:文字列
  • 4:論理値
  • 16:エラー値
  • 64:配列

値ごとのデータ型を暗記する必要はありません。

TYPE関数で値が一致するかどうかさえ確認できればよく、一致しない場合に調べましょう。

たんたん
たんたん

TYPE関数でデータ型を調べられることだけは覚えておこう!

返された数字は、また調べにきたらいいよ。

データ型の変換

文字列↔︎数値の相互の変換は以下の関数を利用します。

  • =VALUE( 文字列 ) :文字列を数値へ変換
  • =TEXT( 数値 , 表示形式 ) :数値を文字列へ変換

それぞれの関数はデータ型を変換します。

VALUE関数の引数に数値を利用しても、そのまま数値が表示されエラーにはなりません。

たんたん
たんたん

比較的簡単な関数だね。

またTEXT関数の表示形式は以下のようなものがあります。

  • =TEXT(100000, "#,##0") → “100,000” (文字列)
  • =TEXT(TODAY(), "yyyy/mm/dd") → “2025/12/09” (文字列)

TEXT関数の詳細はこちらをチェックしてください。

関数を利用しないデータ型変換

データ型の変換には関数を使わない方法もあります。

たんたん
たんたん

関数も複雑ではないから、これは好みで選択していいよ!

数式解説
文字列→数値=A1*1 または =A1+0文字列として扱われる数字を「1倍」または「0を加える」と数値として扱われる
数値→文字列=A1 & “”数値の末尾に空白を加えると文字列として扱われる

データ型の確認と変換をする例

セルG3にてVLOOKUP関数を利用しているが、「100(文字列)」で「100(数値)」を検索しているためエラーが発生しています。

VLOOKUP関数の解説はこちらです。

そこで、エラー対処をしていきます。

まず、TYPE関数でデータ型を確認します。すると、検索値の「100」が文字列で不一致だからエラーが発生していると分かります。

よって、検索値をVALUE関数で数値へと変換すれば解決すると判断できます。

以上より、数式を「 = VLOOKUP( VALUE( J2 ) , B:C , 2 ,0 )」へと修正することで、検索値のデータ型を変更できます。

今回のクエストを終えて

データ型の確認と変換を習得!

VLOOKUP関数やIF関数、VBAを利用する際に、データ型の不一致によるエラーの対処は何度も行う可能性があります。

そのような場面に出会ったら、データ型の確認と変換をしましょう。

慣れれば、そもそもエラーが起こらず、起きてもすぐ見当がついて対処できるようになります。

コメント

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