Excelの「NUMBERVALUE 関数」はテキスト形式の数字を数値に変換できる関数です。「VALUE関数」や新しい「REGEXREPLACE関数」での変換の違いについて確認しました。OCRなどの利用時に認識した余分なスペース削除にも使用できます。
内容:
動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2410)です。
NUMBERVALUE 関数について
Microsoft サポートの説明では「ロケールに依存しない方法で文字列を数値に変換します」とされています。本来の機能は、数値の桁区切りでピリオドやスペースの使用方法が異なる国の数値を変換する関数です。
NUMBERVALUE(文字列, [小数点記号], [桁区切り記号])
活用例(VALUE関数やREGEXREPLACE関数との違い)
NUMBERVALUE 関数は、機能の目的とは異なりますが、OCRなどの利用時に認識した余分なスペース削除にも使用できます。
例えば、【Power Query】画像からテキストデータを抽出する事例 では、余分な半角スペースを認識しています。このような事例で、半角スペースを削除して、計算可能な数値に変換したいような場面で利用できます。
以下はテキスト形式の数字(全角文字、全角カンマ、全角スペース、数字以外も文字列)が含まれたセルについて、VALUE関数・NUMBERVALUE 関数・REGEXREPLACE関数での変換結果の比較です。
上図のとおり、テキスト形式の数字を処理する各関数の特徴は次のとおりでした。。
- VALUE関数は、セルの書式が文字列のときに、数値に変換できる。
- NUMBERVALUE 関数は、全角カンマや、半角スペースを含んでも処理できる。全角スペースに対応させると、半角スペースには対応できない。
- REGEXREPLACE関数は、正規表現の書き方次第で色々なパターンに対応できる。
なお、REGEXREPLACE関数は新しい関数で、指定された正規表現 に基づいて、文字列のテキストを別の文字列に置き換えることができる関数です。
Excelで、全角数字および半角数字だけを残した数値にする場合は以下のようにします。
=REGEXREPLACE(B4,"[^\d0-9]","")*1
以上、Excelでテキスト形式の数字を数値に変換できる NUMBERVALUE 関数の使用例でした。