エクセルやGoogleスプレッドシートで文字列を数値に変換できる、VALUE関数についてご紹介します。VALUE関数と反対に数値を文字列に変換する方法や、エラーになる原因と解決方法についても解説しているので、ぜひ参考にしてみてください。
VALUE関数の使い方
VALUE関数の基本的な使い方や、VALUE関数とは逆の働きをするTEXT関数についてご紹介します。ほかの関数と組み合わせて活用するので、単体で使用することは少ない関数です。
VALUE関数とは?
VALUE関数の構成要素:(文字列)
VALUE関数は数字・日付・時刻などを表す、「文字列」を数値に変換します。
例えば文字列が日付「2022/10/1」なら、日付に対応するシリアル値「44835」を返します。時刻「12:00」なら、時刻に対応するシリアル値「0.5」を返します。
シリアル値とは、日付や時刻に割り当てられた番号です。日付の場合、1900年1月1日を「1」としてカウントします。数値の場合、0時を「1」として24時間で分割します。
VALUE関数と逆の働きをする関数は?
数値を文字列に変換するには、TEXT関数の表示形式コードに「”@”」を指定します。なお日付や時刻に対しては、それぞれ対応するコードを指定してください。
TEXT関数は指定した「値」に、「表示形式コード」を使用した書式設定を適用する関数です。
TEXT関数の構成要素:(値, “表示形式コード”)
日付の表示形式コード:”YYYY/MM/D”、時刻の表示形式コード:”H:MM”
TEXT関数で文字列に変換した数字を全角にするには、JIS関数を使用します。
JIS関数は指定した「文字列」に含まれる半角文字を、全角文字に変換する関数です。
例のようにJIS関数の文字列にTEXT関数を指定することで、元通りの書式になりました。
エクセルは数字のみの文字列を入力したときに、自動的に半角に修正します。VALUE関数で全角数字が自動的に半角になっていたのはこの機能のためです。
VALUE関数がエラーになる原因
特にスプレッドシートを使用している場合に、VALUE関数で変換できない原因と解決方法をご紹介します。エクセルの場合は変換対象外の文字が含まれている可能性が高いです。
スプレッドシートでVALUE関数がエラーになる原因
GoogleスプレッドシートでのVALUE関数の定義は、「Googleスプレッドシートで認識される日付、時刻、番号の書式の文字列を数値に変換します。」です。
スプレッドシートで全角の数字は「文字」として認識されるため、VALUE関数はエラーを返します。
ASC関数やTEXT関数は出力形式が「テキスト」なので、参照する数字の全角・半角に関わらず足し算できません。よって、合計値はゼロを返します。
文字列(全角数字)を数値に変換する場合、VALUE関数の文字列にASC関数を指定します。
例えばVALUE(ASC(B2))なら、まずASC関数が参照元の文字を半角に変換します。次に半角の文字(2)を、VALUE関数が数値の(2)に変換します。
半角かつ数値に変換されたVALUE(ASC)の組み合わせのみ、合計値(10)が算出されました。
エクセルでVALUE関数がエラーになる原因
エクセルで#VALUE!エラーになる場合、参照元データに空白や記号が含まれている可能性があります。
数字に変換できる番号・日付・時刻などを除く文字は削除しましょう。
変換可能な文字列の例:パーセンテージ(20%)、分数(1/5)、指数(2.E-01)、会計(\0)