※本記事にはPRを含む場合があります。

こんにちは。『脱会社員』脱サラを応援し続けるブログ、運営者の『なかびー』です。

顧客リストや発送先の一覧を整理していると、郵便番号を「123-4567」のようにそろえたくなることがあります。ところが、列を見てみると、7桁の数値、先頭に0がある文字列、すでにハイフンが付いた値、空欄、桁数が足りない値が混ざっていることもあります。

見た目をそろえる方法だけなら、ユーザー定義の表示形式を使えます。一方、別のソフトに渡すためにハイフンを含む文字列が必要なら、表示形式だけでは目的を満たせない場合があります。入力元が不明な短い値は、見た目を7桁に整えられても、正しい郵便番号に戻せたとは限りません。

この記事では、架空の5行を最後まで追いかけます。元の列を残し、各行の状態を確認してから、表示を変える行・文字列を作る行・そのままにする行・確認待ちの行を分ける手順です。入力例は説明用であり、実在する住所と番号の対応を示すものではありません。Excelの版や設定、CSVの受け取り先によって実際の動作は異なるため、最終的には少数のコピーで試して確認してください。

なお、本記事の表示形式・数式・CSVの取り込みと再取り込みについて、記事作成時にExcelの実機での動作確認はしていません。例に示す結果は公式資料と式の意味に基づく想定です。利用する環境で試し、保存後と受け取り後の値も確認してください。

目次
  1. まず5行の元値と確認状態を分ける
  2. 数値の見た目だけをハイフン付きにする
  3. TEXT関数で別列にハイフン付き文字列を作る
  4. 7文字の文字列と、すでにハイフンがある行を分ける
  5. CSVを受け取るときは先頭0と元ファイルを守る
  6. 出力先で値を照合し、未処理の行を引き継ぐ

まず5行の元値と確認状態を分ける

数値・文字列・記号あり・空欄・要確認のカード

元の列を残して作業用のコピーを作る

作業の最初に、元のファイルをそのまま残し、別名で作業用のコピーを作ります。郵便番号列を直接書き換えると、変換後の値を見ても「元は数値だったのか」「もともとハイフンがあったのか」が分からなくなるからです。顧客情報を含む場合は、コピーの保存場所や共有先も普段の管理ルールに合わせましょう。

例では、A列が受け取った元の列です。B列を状態、C列を変換結果、D列を確認メモとして使います。列名は使いやすいもので構いませんが、元値と結果を同じ列に重ねないことが大切です。行番号がずれると照合できないため、並べ替えやフィルターを使うときは、対象列だけでなく行全体を扱います。

表は横にスクロールできます。番号は説明用の架空例です。

行 元の状態 事前確認 今回の扱い
A2 数値 1234567 元資料で数字7桁と確認済み 見た目の変更と文字列化を別々に試す
A3 文字列 0123456 先頭0を含む半角数字7文字と確認済み 文字列を3文字と4文字に分けてつなぐ
A4 文字列 123-4567 すでにハイフンを含む 元の値を保持し、受け取り先の条件を確認
A5 本当に空のセル 未入力であることを確認 加工せず未処理とする
A6 文字列 123456 6文字で、出所と正しい桁が不明 要確認として保留する

「元資料で確認済み」という条件は例の中で置いた前提です。実際の作業では、注文時の入力内容や提供元のファイルなど、確認できる資料に置き換えてください。資料がなければ、確認済みという欄を埋めずに保留します。

作業の境界を決める

発送先が複数のファイルに分かれている場合は、今回の対象をファイル名とシート名、対象列で先に区切ります。集めた表を一つにまとめる前に、各ファイルの元列と状態を確認すれば、どの入力元に問い合わせるべき行かを追いやすくなります。同じ人や会社の行が複数あっても、名前だけで同一の宛先と決めず、利用できる範囲の識別情報を照合してください。

同僚と分担するときは、同じファイルを別々に直して上書きしないよう、担当する範囲と編集する版を決めます。照会中のA6をある担当者が独自に補い、別の担当者が保留したまま渡すと、どちらが正しい最新状態か分かりません。変更が確定するまでは「照会待ち」を共有し、確認できた内容と反映した版を記録します。

状態欄は「処理済み」だけにしない

状態欄を一つ用意し、例えば「確認済み数値」「確認済み7文字」「記号あり保持」「未入力」「桁不足・照会待ち」と分けます。これらはExcelの標準の判定名ではなく、この作業で使うためのラベルです。誰が見ても同じ扱いにできるよう、ラベルの意味と、それぞれの次の操作を表の上や別シートに控えておきます。

「記号あり保持」の行は、受け取った値を変えないという意味であり、住所との対応まで確認済みという意味ではありません。「確認済み7文字」も、元資料の同じ行と文字数を照合できたという範囲に限ります。確認していないことを広く保証する名前を付けると、次の担当者が誤解しやすくなります。

作業を途中で引き継ぐときは、対象ファイル名、確認に使った資料、状態欄の意味、未処理の行をまとめます。個人情報を含む実ファイルのコピーを連絡文へ貼り付ける必要はありません。組織で定めた安全な共有方法を使い、担当者が対象の版を迷わず開けるようにします。

画面の見た目だけで型を決めない

セルに見える「123-4567」が、ハイフン付きの文字列なのか、数値に表示形式を設定した結果なのかは、見た目だけでは区別できません。表示位置が左寄せか右寄せかも、手動の配置設定で変えられるため、単独では確実な判定になりません。

セルを選んで数式バーの内容や表示形式を見て、必要なら作業用の別セルで =ISNUMBER(A2) や =ISTEXT(A2) の結果も参考にします。数式の結果が空文字列になっているセルと、本当に空のセルは同じではありません。A5を例にするときは、表示が空いているというだけでなく、セルそのものが空かどうかを確認する前提です。

表示形式と元の値の関係は、Excelの表示形式で正負・ゼロ・空欄を見分ける記事でも扱っています。今回の表では、さらに郵便番号としての桁、ハイフン、受け取り先に渡す値を分けて考えます。

数字が短い行は「修正済み」にしない

A6の 123456 を表示形式で7桁に見せると、先頭に0が付いて見えることがあります。しかし、最初から「0123456」だったのか、途中の数字が抜けたのか、別の情報を入力したのかは、そのセルだけでは分かりません。見た目が7桁になったことと、元の情報を復元できたことは別です。

確認メモには「6文字・提供元照会待ち」など、分かっている事実と次の行動を書きます。提供元に尋ねる場合も、必要な情報だけを安全な方法で確認してください。7桁なら必ず実在する、住所と対応する、といった判定もこの式ではできません。

数値の見た目だけをハイフン付きにする

数値の元の値とハイフン付きの表示を比べる

A2に表示形式を設定する

A2が数値 1234567 で、元資料でも7桁を確認できているとします。Excel内での見た目だけを 123-4567 にしたい場合は、作業用コピーのA2を選び、セルの書式設定からユーザー定義の種類に 000-0000 を指定します。画面名や操作はExcelのバージョンによって異なることがあります。

この例で期待するのは、セルの表示が 123-4567 になり、数式バーなどで確認する元の値は数値 1234567 のままであることです。ハイフン付きの文字列をセルに入力し直したわけではありません。確認メモには「表示形式を変更、値は数値のまま」と書いておきます。

操作を戻したいときは、コピーで作業していることを確かめたうえで、直前の変更を元に戻すか、別の表示形式に戻します。表示形式を戻す操作と、セルの値を削除する操作は違います。複数の行に適用する前に、まず一行で表示と値を確認しましょう。

同じ形式を列全体にかける前に止まる

A3のような文字列やA4のハイフン付き文字列に数値用の表示形式を設定しても、期待した変換が行われるとは限りません。A5の空欄やA6の確認待ちも含め、形式だけでデータの意味や正しさを判断することはできません。

したがって「列を選んで全部に書式をかければ完了」とせず、確認済みの数値だけを選ぶか、状態欄で対象を絞ります。並べ替えた表で別の顧客の行を選んでいないかも確認します。選択範囲を広げる前に、変換対象、未処理対象、件数を控えておくと後から照合しやすくなります。

見た目の変更が適する場面と限界

例えば、自分がExcelの画面で一覧を読むだけなら、数値を保持しつつ見た目に区切りを加える方法が役立つことがあります。一方、後で別のシステムに値を渡す場合、受け取り先が表示形式まで理解するとは限りません。コピー、CSV出力、インポートの経路によって扱いも変わるので、その場で画面が正しく見えることだけでは引き渡しの完了としません。

どの形式で渡す必要があるのか、先に受け取り先の仕様を確認します。「ハイフンありの文字列」「数字7文字」「数値」などの違いは見た目だけでは分かりません。仕様が不明な場合は、実データを大量に送る前に、架空の少数例で動作を確認します。

一行で試すときに比べる場所

試験用のA2を選択し、設定前にセルの表示と数式バーの値を控えます。続いて 000-0000 を指定し、設定後に同じ二つを確認します。表示が変化しても数式バーの数値が変わっていなければ、この例では「表示形式の変更」と整理できます。必要なら書式設定画面を開き直し、対象セルに指定した形式が付いているかも確認します。

次に別の空セルへ =A2 と入力し、そのセルの表示形式も確認します。参照先の画面表示は参照先自身の書式にも左右されるため、A2とまったく同じ見た目になることを確認条件にしないでください。元値と表示形式を別々に見れば、隣のセルや別の表で見た目が違う場合にも原因を切り分けられます。

試行の後、A2に意図しない文字列を上書きしてしまった場合は、作業用コピーであることを確認し、残した原本と照合します。画面で見えるハイフンだけを削除して数値に戻せると決めつけず、どの操作で何を変更したのかを確かめてからやり直します。元の内容が分からなくなった行は確認待ちに戻します。

TEXT関数で別列にハイフン付き文字列を作る

数値から別列へハイフン付き文字列を作る

A2を元にC列へ出力する

A2の数値から、ハイフンを含む文字列を別列に作る例です。C2に次の式を入力します。

=TEXT(A2,"000-0000")

A2が例どおりの数値 1234567 なら、期待する結果は文字列の 123-4567 です。A2には元の数値を残し、C2には数式による結果を置きます。MicrosoftのTEXT関数の説明でも、書式を適用して数値を文字列に変えることと、元値を別に保持する考え方が示されています。

数式中の引用符や区切り記号は、使用するExcelの設定によって確認が必要です。式をコピーしたときは、全角の引用符や不要な空白が混ざっていないかも見ます。期待する表示が出たらそれだけで終わらず、元のA2、C2の式、結果の型をそれぞれ確かめます。

表示形式の結果とTEXTの結果を区別する

前章の表示形式では、A2の見た目が 123-4567 になっても、元値は数値 1234567 のままです。この章のC2では、式の結果として 123-4567 という文字列を作ります。画面上は似て見えても、後から参照する値の性質は異なります。

この違いを確認するため、B2には「元値は数値・確認済み」、D2には「C2はTEXT結果・受け取り先未確認」といったメモを残せます。郵便番号を計算に使うものとして扱う必要があるという意味ではなく、値が変わっていないのか、文字列を新たに作ったのかを明らかにするためです。

TEXTの結果をコピーして値として貼り付ける操作は、数式ではなく、その時点の結果を別の場所に置く操作です。元のA2を変更した後も貼り付け先が自動で更新されると考えないようにします。貼り付け先と元列を取り違えないよう、まずは作業用の別列で試してください。

確認できていない値に無条件で式を広げない

TEXTは、入力が正しい郵便番号かどうかを判定する式ではありません。短い数値に書式を与えれば先頭に0が表示されることがありますが、その0が元の正しい桁かどうかまでは分かりません。A6はそもそも出所不明の文字列なので、この例では式を入れず保留します。

空欄に式を入れたときの表示や計算結果も、式の内容と環境を確かめずに「空欄のまま」と決めつけないことが大切です。A5を空欄のままにするという今回の扱いは、A5を変換対象に含めない運用で実現します。空欄用の条件を含む別の式を設計する場合も、本当に空のセルと空文字列を区別して試してください。

変換列を扱うときの順序

変換列に式を入れる前に、A2の元値と確認状態を残します。次にC2だけに式を入れ、出力を確認し、D2に確認結果を記録します。その後、必要であれば式結果を別の出力用の場所へ値として貼り付けます。いきなりA列へ貼り付けると、参照元と結果の区別が失われるため、この例では行いません。

式を下方向へコピーすると参照先の行番号が変わります。コピー自体は便利ですが、A3からA6はA2と条件が違うので、同じ式を一括で適用する対象にはしません。別の表で数値だけが連続している場合でも、範囲の先頭と末尾、途中の空欄や確認待ちが含まれていないことを確かめます。

出力用に値を貼り付けた後は、式のあるC列と貼り付け先を並べ、対象行と結果を見比べます。貼り付け先で先頭0やハイフンがどう扱われたかを確認し、違いがあれば出力用のコピー側で原因を調べます。式を含む作業表と、相手に渡すためのファイルは役割が異なるため、双方の版を明確にします。

他の数式で元の数値が必要になる場合は、文字列へ変換したC2ではなく、保持したA2を参照するかどうかを、その計算の目的に合わせて決めます。数値と文字列が見た目に似ていても、後続の検索や結合で同じように扱われるとは限りません。値の型が必要な場面では、利用先の条件を明文化してから選びます。

7文字の文字列と、すでにハイフンがある行を分ける

先頭ゼロのある文字列と空欄・要確認の行

先頭0を含むA3を3文字と4文字に分ける

A3には、先頭0を含む文字列 0123456 があり、半角数字7文字であることを元資料と照合できたとします。C3には次の式を入れます。

=LEFT(A3,3)&"-"&RIGHT(A3,4)

LEFTは左端から指定数の文字を取り、RIGHTは右端から指定数の文字を取ります。両者の間にハイフンを置いてつなげると、この例では 012-3456 という文字列を期待します。関数の説明はMicrosoftの文字列を関数で分割する案内とRIGHT関数で確認できます。

先頭0が数値への変換ですでに失われている場合、この式だけで正しい元値を復元することはできません。A3は「0を含む7文字が残っている」と確認できた場合の例です。原本に残っていれば原本を確認し、残っていなければ提供元への確認が必要です。

A4には変換式を重ねず、元の記号を確認する

A4の 123-4567 はすでにハイフン付きの文字列です。今回の目的が同じ表記を保持することなら、まず元値を残し、受け取り先の指定と照らし合わせます。ハイフンの位置、前後の空白、全角と半角など、必要な条件がある場合はその条件も確認します。

なお、A4にLEFTとRIGHTの式をかけても、この特定の8文字なら先頭3文字と末尾4文字が元の見た目と一致する場合があります。見た目が同じだからといって、その式が既存のハイフンやデータの正しさを検証したことにはなりません。今回の例ではA4を「保持」として扱い、検証は別に行います。

A5とA6を変換対象から外して記録する

A5は本当に空のセルなので、変換結果は作らず「未入力」とします。住所録に空欄がある理由が未回収なのか、入力不要なのかは、この表だけでは分かりません。必要性を担当者に確認し、空欄を勝手にゼロやダミーの番号へ置き換えないようにします。

A6は 123456 という6文字で、正しい7文字が分かっていない行です。「文字数が短い」ことを記録するのと、「先頭の0が消えた」と断定するのは違います。元ファイル、入力時の記録、提供元への確認を経ても不明なら、未処理のまま渡すか、受け取り側と扱いを決めます。

このように5行のうち変換できるのは、条件を確認できたA2とA3です。A4は保持、A5とA6は未処理です。表全体を同じ式で埋めるよりも、例外行がどこに残ったかを次の担当者に伝えやすくなります。

文字数を調べても住所の正しさは分からない

必要に応じて作業用セルに =LEN(A3) を置くと、Excelが数える文字数を確認できます。例のA3が想定どおりなら7、A4はハイフンを含めて8になる見込みです。ただし、文字数だけでは数字だけで構成されているか、正しい住所の番号か、見えにくい空白が含まれていないかをすべて判定できません。

例えば空白一文字が混じった7文字と、半角数字7文字は同じ長さでも中身が違います。不要に見える空白を機械的に消す前に、元の値を保持して、入力元と操作の意図を確認します。全角数字や他の記号が含まれる場合は、今回のA3の条件から外して保留し、受け取り先の仕様に合わせた別の処理を検討します。

数式の結果がエラーになる行も、この5行とは別の例外として扱います。エラーを空欄に置き換えると未入力と区別できなくなるため、元のセル、式、エラーが出た行、確認した作業を残します。行を隠したりフィルターで除いたりするときは、表示されていない未処理行が残っていることを引き継ぎます。

一つの式で「正しい郵便番号」と判断しようとすると、桁や記号と、住所への対応確認が混ざります。ここでは操作対象を選ぶための確認と、住所の確認を分けて記録します。確認できる情報が増えたら、その行の状態と次に許可する操作を更新してください。

CSVを受け取るときは先頭0と元ファイルを守る

先頭ゼロを含む原本と取り込み後の文字を比べる

開く前に元ファイルと取り込み方法を確認する

CSVなどからExcelにデータを取り込むとき、自動的な型判定によって、先頭の0が失われたり、想定と異なる型として解釈されたりする場合があります。Microsoftも先頭のゼロを保持する方法を案内しています。取り込み画面、設定項目、既定の動作はExcelの版や環境によって違うため、使っている環境で確認してください。

元のCSVは編集せずに残し、作業用の取り込みでは郵便番号列を文字列として扱える方法を確認します。ファイルをダブルクリックして開いた結果だけを元データだと考えると、取り込み時に失われた0に気付けないことがあります。最初に少数の架空データで、先頭0のある行がどう表示され、どう保存されるかを試します。

「セルを後から文字列表示に変更する」ことと、「元ファイルにあった文字を先頭0ごと読み込む」ことは同じではありません。すでに失われた桁が何だったかは、表示形式の変更だけでは分かりません。正しい元情報が別に残っている場合に、その情報と照らして作業し直します。

取り込み後は行番号と内容を対応させる

データを取り込んだら、A2からA6に相当する元の行と作業用の行を対応させます。顧客名などを不必要に別の場所へ複製せず、普段許可されている識別方法で、並べ替え前後の対応を確かめてください。データを扱う人数が複数なら、確認した列と未確認の列を明示します。

先頭0のある例、すでに記号がある例、空欄、短い例をそれぞれ見ます。問題がない行だけを目で追うと、変換されなかった行を見逃すことがあります。受け取り側が必要とする件数と、元の行数、処理済み、保持、未処理の内訳が一致するかを確認するのも有効です。ただし、行数が一致しても一行ごとの対応や値の正しさが保証されるわけではありません。

元ファイルにも情報がなければ保留を引き継ぐ

元ファイルを確認してもA6の正しい値が分からないときは、元の6文字、確認した資料、照会の結果をメモして保留します。保留を目立たなくするために空欄へ消したり、推測した0を加えたりすると、後で元に戻せません。受け渡しの期限が迫っている場合も、未確認の件数と影響を相手に伝え、受け取り側の扱いを決めます。

再取得したファイルに正しい7文字が記載されていたとしても、別の顧客の行を参照していないか、同じ対象かを確認してから作業します。この作業はハイフンを挿入する式とは別の、元データの確認です。式が成功したことを根拠に、提供元への照会を省略しないようにしましょう。

取り込みの前後で見る小さな検証例

架空の5行を含むテストファイルを別に用意したとします。取り込み前にテキストとしての元データを確認できるなら、A3相当の行に 0123456 があるかを記録します。取り込み後は、作業シートのA3相当の値に先頭0が残っているかを確認します。画面に0が見える場合でも、表示形式による見た目なのか文字列そのものに含まれているのかを区別します。

次にA4相当のハイフンがそのまま残るか、A5相当の空欄がどのように読み込まれたかを見ます。空欄が空文字列になるか本当に空のセルになるかなどは、取り込み方法やファイルの内容に依存するため、この手順の想定結果をすべての環境に当てはめないでください。違った結果になった場合は、その方法で実際に何が起きたかを記録します。

A6相当の短い文字列も、取り込み時に勝手に補われていないかを確認します。入力時にすでに短かったのか、取り込み後に変わったのかが分かれば、確認先を絞れます。原本自体が6文字なら、Excel側の加工だけで正しい7文字を確定できないことも併せて引き継ぎます。

この検証は、架空例を使って選んだ操作の影響を確かめるためのものです。本番のファイルには、引用符、改行、余分な列、別の表記など、例にない条件があり得ます。試験が通った後も、本番の処理範囲と例外行は別に点検してください。

出力先で値を照合し、未処理の行を引き継ぐ

出力した書類と受け取った書類を比べる

最終列に何を入れるかを先に決める

受け取り先が求めるものが「ハイフンを含む文字列」なら、A2についてはC2のTEXT結果が候補です。A3についてはC3のLEFTとRIGHTをつないだ結果が候補になります。A4は元の文字列を保持する候補です。ただし、実際に使えるかは受け取り先の仕様と少数テストで確認してください。

受け取り先が数字だけの7文字を求める場合は、ハイフンを作ること自体が不要かもしれません。A4から記号を取り除く必要があるかどうかも仕様次第です。仕様が不明なら、この記事の例だけで勝手に変換方法を決めないでください。

最終列を作る前に、行を識別できる情報、元値、状態、出力候補、確認結果の対応を保ちます。A5とA6は出力候補を未処理と明示し、他の行と同じ「完了」印を付けません。担当者が後で修正する場合は、何を確認してどの値へ変えたかも追えるようにします。

保存後と受け取り後は別々に確認する

Excel上のセルで 123-4567 と見えたこと、ファイルへ保存したこと、そのファイルを相手が受け取って期待する値として扱えたことは、別々の確認です。特にCSVは、書き出し方法や再取り込み側の設定によって結果が変わり得ます。文字コード、区切り、先頭0、ハイフン、空欄の取り扱いは、利用するソフトごとに確認します。

本番のデータで初めて試すのではなく、架空の5行を使った小さなファイルで、出力と受け取りを試すと原因を切り分けやすくなります。元データを更新した場合は、古い出力ファイルと新しい出力ファイルを取り違えないよう、作業日時や版を管理します。確認結果には使用した環境と方法も添えると、別の環境で再現できない場合に役立ちます。

相手から戻された場合の切り分け

受け取り先でエラーになったときは、まずどの行が、どの条件で受け付けられなかったかを確認します。すべての値を別の形式へ一括変換する前に、受け取り先がハイフンを許可しているか、7文字を求めているか、空欄を認めるかを見直します。エラー文だけでは元の郵便番号が正しいかどうかを判断できないこともあります。

例えばA2の画面表示はハイフン付きでも、受け渡したデータが受け取り先の期待する文字列だったとは限りません。一方、A3の変換結果は文字列の候補でも、相手がハイフンなしを要求していれば形式が一致しません。どちらも「Excelに見えているから正しい」とまとめず、出力ファイルでの値と相手側の入力条件を別々に調べます。

修正する場合は、元の作業表を保ったうえで、出力用ファイルを新しい版として作ります。変更した対象、理由、未処理のA5とA6の扱いを再確認し、相手側でも新しい版を使っていることを確かめます。以前のエラーが消えたことと、すべての住所への配達が可能であることは別なので、確認できた範囲だけを完了として記録します。

完了前の確認表

最後に、次の項目を一つずつ確認します。

  1. 元のファイルと元列を保持し、作業したコピーを区別できる。
  2. 数値、文字列、すでにハイフンがある値、本当の空欄、確認待ちを分けた。
  3. A2の表示形式では元値が数値のままで、TEXTの結果は別の文字列であると確認した。
  4. A3は先頭0を含む7文字を元資料で確認してから、3文字と4文字をつないだ。
  5. A4は保持し、A5は未入力、A6は正しい元値の確認待ちとして残した。
  6. 出力先の指定を確認し、少数例で保存後と受け取り後の値を照合した。
  7. 未処理が残る場合は対象行と理由、確認先、次の対応を引き継いだ。

どれか一つでも不明なら、その行の状態を「要確認」のままにして構いません。大切なのは、見た目を一度にそろえることより、元データと出力の関係を失わずに、確認できていない部分を次の作業につなぐことです。

最後までお読みいただき、ありがとうございました。