以下のような方におすすめの記事です。
- データ型のせいでエラーが起きている
- 現在のデータ型の確認方法を知りたい
- データ型を関数で強制的に変換したい
関数や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を利用する際に、データ型の不一致によるエラーの対処は何度も行う可能性があります。
そのような場面に出会ったら、データ型の確認と変換をしましょう。
慣れれば、そもそもエラーが起こらず、起きてもすぐ見当がついて対処できるようになります。






コメント