Excelで、数値の先頭に「0」を追加して桁数を揃えた文字列を作成する方法です。
電話番号や郵便番号などの先頭に「0」を含むデータをExcelで処理するときは、注意が必要です。文字列の表示形式で扱っていると、編集時に一部のデータが数値に変換され、先頭の0が消えてしまうことがあります。
その結果、VLOOKUPなどの検索が一致しないなどの問題などが発生してしまいます。
先頭に「0」を含む元データを保有しており、簡単に再処理できる場合は問題ありませんが、データ処理が進んでいる場合などはTEXT関数を使った変換も便利です。
なお、Microsoft365のExcelバージョン 2309 以降は、「先頭のゼロを削除して数値に変換する」の無効設定が可能です。詳しくは後述します。
内容:
数値の先頭に0を追加して4桁の文字列に変換する関数例
下図のA列は、文字列で保存され先頭に「0」を含むデータです。B列はA列の値が数値になり、先頭の「0」が消えています。
このケースで、B列の数値を「先頭に0を付けた4桁の文字列」に変換する関数例が、C列~E列です。
C列から順に、TEXT関数、RIGHT関数、REPT関数を使用した事例です。
結論としては、TEXT関数がシンプルであり、書式の色々な応用も可能で最良です。
それぞれの数式例は上図のとおりですが、以下です。
セルC4の数式例: =TEXT(B4,""0000"")
セルD4の数式例: =RIGHT(""000""&B4,4)
セルE4の数式例: =REPT(""0"",4-LEN(B4))&B4
数値の先頭に「文字列と0」を追加して5桁の文字列に変換する関数例
TEXT関数は、数値に指定のフォーマットを適用した文字列を作成する関数です。
下図のC列のように、先頭に文字列「X」と4桁で0埋めした書式に変換することも可能です。郵便番号のデータであれば、”〒”を追加するなどの使い方が可能です。
なお、D列は、TEXT関数の桁数の指定と、元の桁数が異なる場合の動作確認用です。
桁数を指定した範囲まで、「0」が埋まり、それ以上は元の値となります。
その他の対策
Microsoft365のExcelにある「先頭のゼロを削除して数値に変換する」のオプション
先頭の「0」が消えてしまう問題について、Microsoft365のExcelでバージョン 2309 (ビルド 16827.20130)以降は次のとおり、Excelのオプション設定画面で「先頭のゼロを削除して数値に変換する」の無効設定ができるようになっています。
この設定を無効にすると、セル編集時に文字列から数値への自動変換は抑制できます。
参考: 最新チャネル リリースのリリース ノート - Office release notes | Microsoft Learn
データのインポート時や書式設定
データのインポート時に数値をテキストに変換する方法や、ユーザー定義の表示形式を使用して「数値のまま表示上0を含める」などの手順です。
以上、数値の先頭に0を追加して桁数を揃えた文字列に変換する関数でした。