Excelで南アフリカID番号(13桁)を000000 0000 000形式で表示する方法

Excelに取り込んだ南アフリカID番号(13桁)を、先頭の0を保ったまま「000000 0000 000」のように読みやすく表示したい場面は意外と多いです。この記事では、データが文字列(テキスト)か数値かで最適な手段が変わる点を整理し、式・表示形式・正規表現の3ルートを具体例つきで解説します。

目次

Excelで「13桁IDを途中にスペースを入れて表示」するときの前提

南アフリカID番号は13桁で、視認性のために「6桁 + スペース + 4桁 + スペース + 3桁」(例:800101 5009 087)のように区切って表記したくなることがあります。Excelでは、ここでまずセルが「文字列(テキスト)」なのか「数値」なのかを確認するのが近道です。

セルの中身見た目の例先頭ゼロおすすめアプローチ理由
文字列(テキスト)000123456789012(13桁でも先頭0が残る)維持できる式で分割して結合表示形式(書式)が効かないため
数値1234567890123(先頭0が落ちることがある)落ちやすいユーザー定義の表示形式見た目だけを安全に整形できるため
数値だが、Excelが指数表記にする1.23457E+12落ちる表示形式 or TEXT関数桁が見えず、目視確認が難しいため

ポイントは次の2つです。

  • 「スペースを入れて見せたいだけ」なら、数値のまま表示形式で解決できることが多い
  • 先頭ゼロを絶対に失いたくない、あるいは文字列として管理したいなら、式(またはPower Query)で新しい文字列を作るのが確実

方法A:文字列でも確実に対応する(推奨) 式で分割して結合

この方法は、入力が文字列でも数値でも安定して「000000 0000 000」の形を作れます。先頭ゼロ維持を最優先する実務では、このルートが一番トラブルが少ないです。

基本形(LEFT / MID / RIGHT)

A1に13桁が入っているとして、別セル(例:B1)に次を入力します。

=LEFT(A1,6)&" "&MID(A1,7,4)&" "&RIGHT(A1,3)

関数の役割を整理すると理解が早いです。

関数意味このケース取り出す位置
LEFT左から指定文字数最初の6桁1〜6桁
MID途中から指定文字数次の4桁7〜10桁
RIGHT右から指定文字数最後の3桁11〜13桁

この式の良い点は、セルの見た目ではなく結果そのものが「スペース入りの文字列」になることです。Wordやメール、Webフォーム貼り付けなど、Excel外でも同じ見た目を保てます。

13桁以外のデータが混じっても崩れない式

運用上ありがちなのが、「空欄」「12桁/14桁」「途中に空白やハイフンが混入」などです。まずは13桁のときだけ整形する形にすると、事故が減ります。

=IF(LEN(A1)=13,LEFT(A1,6)&" "&MID(A1,7,4)&" "&RIGHT(A1,3),A1)

LENで桁数をチェックし、13桁以外はそのまま返します。これなら、未入力行や不正データを無理に加工しません。

スペースやハイフンを除去してから整形する(現場向け)

「すでに8001015009 087みたいに途中に空白が入っている」「800101-5009-087のようにハイフン区切りで渡された」など、入力が揺れる場合は、一度“数字だけ”に寄せてから整形すると強いです。

空白とハイフンを取り除いてから整形する例:

=IF(LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))=13,
LEFT(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""),6)&" "&
MID(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""),7,4)&" "&
RIGHT(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""),3),
A1)

同じ処理を何度も書くのが気になる場合、Microsoft 365の環境ならLETで読みやすくできます。

=LET(x,SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""),
IF(LEN(x)=13,LEFT(x,6)&" "&MID(x,7,4)&" "&RIGHT(x,3),A1))

結果を元の列に置き換える(値貼り付け)

「表示用の列を別に作るのではなく、元の列をスペース入りにしたい」という場合は、次の手順が安全です。

  1. 整形結果の列(例:B列)を最後までコピー
  2. 元の列(A列)を選択
  3. 右クリック → 「形式を選択して貼り付け」 → 「値」

これで、式ではなく結果の文字列として確定します。あとから別システムに渡すときも、意図した表記を保てます。

方法B:数値として入っている場合は「ユーザー定義の表示形式」で見た目だけ整える

データが数値として入っている(つまりExcelが「数」として扱っている)なら、中身は変えずに見た目だけ「000000 0000 000」にできます。ID番号を数値計算に使わない前提なら、表示形式で済ませるのは合理的です。

設定手順(セルの書式設定)

  1. 対象セル(または列)を選択
  2. 右クリック → 「セルの書式設定」
  3. 「表示形式」タブ → 「ユーザー定義」
  4. 種類に次を入力
000000" "0000" "000

この書式の意味は、「13桁になるまでゼロで埋めて、6桁目と10桁目の後ろにスペースを表示する」です。

表示形式が向いているケース・向かないケース

観点表示形式(ユーザー定義)式で文字列を作る
セルの中身数値のまま文字列になる
見た目整形される整形される
コピーして他アプリへ貼り付け環境により“見た目”か“中身”が貼られるスペース入りの文字列が貼られやすい
CSV出力基本は数値として出る(スペースが消えることがある)スペース入りで出しやすい
テキストとして入っているデータ効かない効く

「Excel内で見やすくしたい」なら表示形式が最短です。一方で、「貼り付け先でもスペース入りを維持したい」、「文字列で扱う必要がある」なら方法Aが安全です。

TEXT関数で“見た目を文字列として”取り出す(数値向け)

数値として入っているけれど、結果は文字列で欲しい場合はTEXT関数が便利です。

=TEXT(A1,"000000 0000 000")

この結果は文字列なので、他アプリへ渡すときの見た目が安定しやすくなります。表示形式と違って、セルの中身そのものがスペース入りになります。

方法C:REGEXREPLACEが使える環境なら正規表現で一発

Excelの一部環境(主にMicrosoft 365系)では、正規表現を扱える関数が利用できることがあります。利用できるなら、13桁を3グループに分けて差し込むのが最短です。

=REGEXREPLACE(A2,"(\d{6})(\d{4})(\d{3})","$1 $2 $3")

仕組みは単純で、\d{6}(6桁)、\d{4}(4桁)、\d{3}(3桁)を括弧でグループ化し、置換文字列で$1 $2 $3として並べ直しています。

正規表現を採用するときの注意点

  • 利用できる関数・範囲は環境差があるため、組織内で配布するファイルでは互換性確認が必要
  • 入力が「13桁の数字だけ」である前提が強いので、空白やハイフン混入があるなら事前に除去する設計が安心

空白とハイフンを取り除いてから正規表現をかけたい場合(利用できるなら)の例:

=REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(A2," ",""),"-",""),"(\d{6})(\d{4})(\d{3})","$1 $2 $3")

どれを使うべき?状況別のおすすめ早見表

やりたいことデータの状態おすすめ理由
とにかく確実にスペース入りで表示・出力したい文字列/数値どちらでも混在方法A(LEFT/MID/RIGHT)互換性が高く、結果が文字列として残る
Excel内の見た目だけ整えたい数値として入っている方法B(ユーザー定義の表示形式)元データを変えずに見た目だけ整形できる
一発で整形したい(短い式が好み)正規表現関数が使える環境方法C(REGEXREPLACE)式が短く、パターン変更にも強い
貼り付け・CSV・システム連携まで見た目を固定したいどの状態でも方法AまたはTEXT関数 + 値貼り付け最終成果物を“スペース入り文字列”に確定できる

よくあるトラブルと対処法

先頭の0が消えてしまう

南アフリカID番号は先頭が00などになり得るため、貼り付けやCSV取り込みで数値扱いされると先頭ゼロが消えます。

  • 入力前に列の表示形式を「文字列」にしてから貼り付ける
  • 取り込み時に「テキスト」として列データ型を指定する(Power Queryが有効)
  • すでに数値化してしまった場合は、表示形式で13桁にゼロ埋めするか、TEXT関数で復元する

「1.23457E+12」みたいな指数表記になって読めない

セル幅が狭い、または標準の表示のまま大きい数値を置くと、指数表記で見えることがあります。

  • セル幅を広げる
  • 表示形式をユーザー定義にする(000000" "0000" "000)
  • TEXT関数で文字列にして表示する

途中にスペースやハイフンが混ざって整形が崩れる

方法Aの応用で、SUBSTITUTEで不要文字を除去してから分割してください。特に現場データは「人が入力した表記ゆれ」が混ざるので、最初から耐性を持たせるのが安全です。

13桁ではないデータが混在している

整形してしまうと「間違ったIDがそれっぽく見えてしまう」リスクがあります。LENでチェックするか、別列でエラー検出を行うのがおすすめです。

チェック用(13桁以外を警告表示したい例):

=IF(LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))<>13,"桁数要確認","OK")

実務で役立つ:入力ミス検出と個人情報の扱い

条件付き書式で“怪しい行”を目立たせる

ID番号は個人情報なので、入力ミスがあると修正依頼が増え、二重管理も起きやすくなります。Excelの条件付き書式で、桁数が合わないものだけ色付けすると、確認が速くなります。

  1. 対象範囲を選択
  2. 「ホーム」→「条件付き書式」→「新しいルール」
  3. 「数式を使用して、書式設定するセルを決定」
  4. 次のような式を設定(A1を範囲先頭に合わせて調整)
=LEN(SUBSTITUTE(SUBSTITUTE($A1," ",""),"-",""))<>13

共有用シートでは一部マスキングして表示する

社内共有や外部提出用に、ID番号をそのまま出さない運用が必要なこともあります。スペース区切りの形を保ちつつ、一部を伏せるなら次のような式が使えます(元データは別列に保持するのが基本です)。

=LEFT(A1,6)&" "&"****"&" "&RIGHT(A1,3)

「どの桁を伏せるか」は運用ルールに合わせて調整してください。Excelはコピーされやすいので、表示だけでなくファイル権限・共有範囲・保存先も含めて扱いを設計するのが安全です。

大量データならPower Queryで一括整形が安定

数千〜数万行のIDを毎月取り込むような運用では、セル関数よりPower Queryのほうが再現性が高いことがあります。Power Queryなら「テキストとして取り込む」「不要文字を除去」「指定位置で区切る」を手順として固定でき、更新ボタンで同じ加工を繰り返せます。

考え方の流れはシンプルです。

  • 列のデータ型をテキストにする(先頭0対策)
  • 空白やハイフンを置換で削除する
  • 6桁・4桁・3桁で分割して結合する

Power Queryが苦手でも、最初に一度手順を作ってしまえば、次回以降は「更新」だけで同じ形に揃います。

どうしても同じ列で“実データを置換”したい場合(VBA例)

運用上「A列をスペース入り文字列に書き換える」ことが確定しており、毎回の作業をボタン化したい場合はVBAも選択肢になります。配布・セキュリティの都合でマクロが許可される環境向けです。

Sub FormatSouthAfricaID()
    Dim rng As Range, c As Range
    Set rng = Selection ' 事前に対象範囲を選択しておく

    For Each c In rng.Cells
        Dim s As String
        s = CStr(c.Value)

        ' 空白とハイフンを除去
        s = Replace(s, " ", "")
        s = Replace(s, "-", "")

        If Len(s) = 13 Then
            c.Value = Left(s, 6) & " " & Mid(s, 7, 4) & " " & Right(s, 3)
        End If
    Next c
End Sub

このマクロは13桁のものだけを整形し、それ以外は触りません。ID列に空欄や別コードが混ざる場合でも、被害を限定できます。

仕上げに確認したいチェックポイント

  • 13桁のままか(空白・ハイフンを除いた実桁数で確認)
  • 先頭ゼロが必要なデータで落ちていないか
  • Excel内で見やすいだけで良いのか、外部へ渡す表記も固定したいのか
  • 元データを残す必要があるか(監査・照合・再取り込みの都合)

「見た目だけ整える」なら表示形式、「貼り付け先でも同じ表記にしたい」なら式で文字列を作って値貼り付け、が判断の基本になります。南アフリカID番号のように先頭ゼロが意味を持つデータは、Excelが勝手に数値化してしまうところから問題が起きやすいので、最初に“文字列として扱うか”を決めておくと、後工程がとても楽になります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次