shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】数値の先頭に0を追加して桁数を揃えた文字列に変換する関数

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関数がシンプルであり、書式の色々な応用も可能で最良です

TEXT関数、RIGHT関数、REPT関数で比較

「先頭に0を付けた4桁の文字列」に変換する関数例

それぞれの数式例は上図のとおりですが、以下です。

セルC4の数式例: =TEXT(B4,""0000"")

セルD4の数式例: =RIGHT(""000""&B4,4)

セルE4の数式例: =REPT(""0"",4-LEN(B4))&B4

参考: TEXT 関数 - Microsoft サポート

数値の先頭に「文字列と0」を追加して5桁の文字列に変換する関数例

TEXT関数は、数値に指定のフォーマットを適用した文字列を作成する関数です。

下図のC列のように、先頭に文字列「X」と4桁で0埋めした書式に変換することも可能です。郵便番号のデータであれば、”〒”を追加するなどの使い方が可能です。

なお、D列は、TEXT関数の桁数の指定と、元の桁数が異なる場合の動作確認用です。

桁数を指定した範囲まで、「0」が埋まり、それ以上は元の値となります。

数値「1」が「X0001」に変換されています

先頭に文字列「X」と4桁で0埋めした事例

その他の対策

Microsoft365のExcelにある「先頭のゼロを削除して数値に変換する」のオプション

先頭の「0」が消えてしまう問題について、Microsoft365のExcelでバージョン 2309 (ビルド 16827.20130)以降は次のとおり、Excelのオプション設定画面で「先頭のゼロを削除して数値に変換する」の無効設定ができるようになっています。

この設定を無効にすると、セル編集時に文字列から数値への自動変換は抑制できます。

「Excelのオプション」ー「データ」の自動データ変換で設定可能

「先頭のゼロを削除して数値に変換する」オプション

参考: 最新チャネル リリースのリリース ノート - Office release notes | Microsoft Learn

データのインポート時や書式設定

データのインポート時に数値をテキストに変換する方法や、ユーザー定義の表示形式を使用して「数値のまま表示上0を含める」などの手順です。

support.microsoft.com

以上、数値の先頭に0を追加して桁数を揃えた文字列に変換する関数でした。