年賀状の宛名を Word の差し込み印刷で作ろうとしたら、郵便番号の先頭の0が消えた、住所の数字だけ横に寝た、名前の位置が人によってずれる——そんな経験はないでしょうか。原因の多くは、Word ではなく元になる Excel の住所録にあります。
何年も書き足してきた住所録は、全角と半角が混ざっていたり、見えない空白が入っていたりします。この記事では、Excel の関数を使って、郵便番号の形・全角と半角・余分な空白をまとめてそろえる手順を説明します(2026年10月時点の Microsoft の公式ヘルプをもとにしています)。
結論:元のシートをコピーし、作業用の列で関数を使って直す

- 作業の前に、元のシートをコピーしておく。直すのは、となりに足した作業用の列で
- 余分な空白は =TRIM(SUBSTITUTE(A2,” ”,” “))。全角スペースを半角にしてから TRIM で消す
- 全角を半角にする ASC 関数は、カタカナまで半角カナにする。住所の列にそのまま使わない
- 郵便番号は、数値なら TEXT、ハイフンのない文字列なら REPLACE で「000-0000」の形にする
- 最後に数式の結果を「値」で貼り付け、重複の削除で同じ行を消す
住所録が乱れていると、差し込み印刷で何が起きるか
差し込み印刷は、Excel のセルの中身をそのまま Word のはがきに流し込みます。見た目では気づかない違いも、印刷するとはっきり出ます。よくあるのは次の3つです。
- 郵便番号の先頭の0が消える:「060-0001」が数値として入っていると「600001」のような6けたになる。Microsoft の公式ヘルプでも、郵便番号の列は「文字列」の書式にしないと先頭の0が消える、と案内されています(Word の差し込み印刷用に Excel のデータ ソースを準備する)
- 縦書きで数字が横に寝る:縦書きのはがきでは、半角の数字やハイフンが横向きのまま並ぶ。全角と半角が混ざっていると、行ごとに見た目がばらばらになる
- 空白で文字がずれる:氏名の前後や、姓と名の間に余分な空白があると、その分だけ字がずれる。全角スペースと半角スペースが混ざっていても幅が変わる
どれも Word 側で1件ずつ直すより、Excel の住所録を先にそろえるほうが確実で、来年以降もそのまま使えます。
例:こんな住所録を直していく
この記事では、次のような5行の住所録を例にします(氏名・住所はすべて架空のものです)。「直す前」の欄の[全角空白][半角空白]は、セルの中に入っている見えない空白を表しています。
| 行 | 直す前 | 直した後 | 直す点 |
|---|---|---|---|
| 2 | 山田 太郎/1000005(数値)/東京都千代田区丸の内1-1-1[全角空白]さくらビル3階 | 山田 太郎/100-0005/東京都千代田区丸の内1-1-1 さくらビル3階 | 郵便番号が数値、住所の数字が全角 |
| 3 | 佐藤[全角空白]花子[半角空白]/600001(数値)/北海道札幌市中央区北一条西2-3 | 佐藤 花子/060-0001/北海道札幌市中央区北一条西2-3 | 先頭の0が消えた、空白の種類と数 |
| 4 | 鈴木[半角空白][半角空白]一郎/530-0001/大阪府大阪市北区梅田3-1-1 ミドリハイツ101 | 鈴木 一郎/530-0001/大阪府大阪市北区梅田3-1-1 ミドリハイツ101 | 空白が2つ、建物名が半角カナ |
| 5 | 高橋 美咲/980-0021/宮城県仙台市青葉区中央1ー2ー3 | 高橋 美咲/980-0021/宮城県仙台市青葉区中央1-2-3 | 郵便番号が全角、ハイフンの代わりに長音「ー」 |
| 6 | 山田 太郎/1000005(数値)/東京都千代田区丸の内1-1-1 さくらビル3階 | (削除) | 2行目と同じ人の重複 |
ここでは「数字とハイフンは半角」「姓と名の間は半角スペース1つ」「郵便番号は 000-0000 の形」にそろえます。縦書きで数字をどう見せるかは、Word のはがき宛名面印刷ウィザードにある、数字を漢数字に変換する項目でも調整できます。
まず元のシートをコピーし、作業用の列を作る
関数で直す前に、シートを丸ごとコピーしておきます。シート見出しを右クリックして「移動またはコピー」で「コピーを作成する」にチェックを入れるか、ファイル自体を別名で保存しておけば、失敗してもやり直せます。
直すときは、元のセルを上書きせず、となりに空いた列(作業用の列)を足して、そこに数式を入れます。たとえば A 列が氏名なら、B 列を挿入して「氏名_整理」のような見出しを付け、B2 に数式を入れて下までコピーします。元の列と結果を見比べられるので、おかしな変換にすぐ気づけます。
数式の結果は、最後に「値」として貼り付けて確定させます(後半で説明します)。それまでは元の列を消さないでください。
余分な空白を消す:TRIM と SUBSTITUTE

TRIM(トリム)関数は、文字列の前後の空白を消し、単語と単語の間の空白を1つだけ残す関数です。ただし公式ヘルプでは、TRIM が対象にするのは半角スペース(文字コード 32 番)と説明されていて、全角スペースについての記述はありません(TRIM 関数)。
そこで、先に SUBSTITUTE(サブスティテュート)関数で全角スペースを半角スペースに置き換えてから、TRIM をかけます。SUBSTITUTE は「文字列の中の、ある文字を別の文字に置き換える」関数です。
=TRIM(SUBSTITUTE(A2," "," "))
- 内側の SUBSTITUTE が、A2 の中の全角スペース「 」を、すべて半角スペース「 」に置き換える
- 外側の TRIM が、前後の空白を消し、間に続いた空白を1つにまとめる
数式の中の1つ目の " " は全角スペース、2つ目の " " は半角スペースです。見た目では区別しにくいので、入力するときは日本語入力をオフにしてスペースを打つ、などで確かめてください。
この数式は、氏名だけでなく住所の列にも使えます。住所と建物名の間の空白も、半角スペース1つにそろいます。なお、名前の似た TRIMRANGE 関数は、範囲の端にある空白の行や列を外す関数で、文字の中のスペースは消しません。混同しないようにしてください。
全角と半角をそろえる:ASC と JIS の落とし穴
全角の英数字を半角にするには ASC(アスキー)関数、半角を全角にするには JIS(ジス)関数があります。=ASC(C2) のように、セルを1つ指定するだけで使えます。

ここに落とし穴があります。ASC は数字や英字だけでなく、カタカナも半角カナに変えてしまいます。公式ヘルプの例でも、全角の「エクセル」が半角カナになっています(ASC 関数)。住所の列にそのまま使うと、「ミドリハイツ」のような建物名が「ミドリハイツ」になります。逆に JIS は、半角カナを全角に戻せる代わりに、数字やハイフンまで全角にします。
「数字とハイフンだけを半角にして、カタカナは全角のまま」にする1つの関数はありません。次のように使い分けます。
- カタカナが入らない列(郵便番号・電話番号など):ASC をそのまま使ってよい
- 住所の列:SUBSTITUTE を重ねて、全角の「0」〜「9」と「-」を1文字ずつ半角に置き換える。
=SUBSTITUTE(SUBSTITUTE(C2,"1","1"),"2","2")のように入れ子にしていく - 数式が長くなるのが面倒なら:住所の列を選んで「検索と置換」の置換(Ctrl+H)を開き、「1」→「1」、「2」→「2」…と順に置き換える
- 半角カナ:件数が少なければ、手で打ち直すのがいちばん早い
もう1つ気をつけたいのが、ハイフンに似た文字です。全角のマイナス「-」、長音「ー」、ハイフン「‐」などは、見た目が似ていても別の文字です。例の5行目のように、番地の区切りに長音「ー」が使われていることがあります。ただし、長音は「センター」のようなカタカナにも使われるので、住所の列で「ー」を一括で置き換えると建物名まで壊れます。数字と数字の間にあるものだけを、見ながら直してください。
郵便番号をそろえる:数値か文字列かで数式を変える
郵便番号の列は、行によって中身の種類がばらばらになっていることがよくあります。数値として入っているもの、ハイフンなしの7けたの文字列、ハイフン付きのもの。どれなのかで、使う数式が変わります。

- 数値になっている(先頭の0が消えている):
=TEXT(B2,"000-0000")。TEXT 関数は数値を指定した形の文字列に変える関数で、足りないけたを0で埋めるので、600001 も「060-0001」になる(TEXT 関数) - ハイフンなしの7けたの文字列:
=REPLACE(B2,4,0,"-")。REPLACE 関数で、4文字目の位置に「-」を差し込む(0文字を置き換える=差し込む、という意味) - ハイフンを消したい:
=SUBSTITUTE(B2,"-","")。ハイフンなしでそろえたいときに使う - 全角で入っている:郵便番号の列にはカタカナがないので、先に
=ASC(B2)で半角にしてから、ハイフンの形を確かめる
数値か文字列かは、セルを選んで数式バーを見るとわかりやすいです。既定の配置のままなら、数値は右寄せ、文字列は左寄せで表示されます。
これから郵便番号を入力する列は、先にセルの書式を「文字列」にしておきます(セルを選んで右クリック →「セルの書式設定」→「表示形式」→「文字列」)。こうしておけば、入力した「060」の0は消えません。なお、「000-0000」のような表示形式を付けただけでは、見た目が変わってもセルの中身は数値のままです。差し込み印刷で思った形にならないことがあるので、TEXT 関数などで中身を文字列にしておくほうが安心です。
数式の結果を「値」にして確定する
作業用の列に入っているのは、まだ数式です。このままでは元の列を消すと結果も消えてしまうので、結果を値(ただの文字)として貼り付け直します。
- 作業用の列を選んでコピーする(Ctrl+C)
- 貼り付け先(元の列か、同じ作業用の列)を右クリックし、「貼り付けのオプション」の「値」を選ぶ
- Microsoft 365 の新しいバージョン(@IT によるとバージョン2308以降)なら、Ctrl+Shift+V でも値だけを貼り付けられる
- 結果を確かめてから、いらなくなった作業用の列や元の列を削除する
郵便番号の列に値で貼り付けるときは、貼り付け先の列の書式も「文字列」にしておくと、あとで編集したときに数値へ戻ってしまう心配が減ります。
なお、決まった形に直すだけなら、フラッシュフィル(Ctrl+E)も使えます。1行目に直した形を手で入力してから Ctrl+E を押すと、残りの行を同じ規則で埋めてくれる機能です。動かないときは「ファイル」→「オプション」→「詳細設定」で、フラッシュフィルを自動で行う設定がオンか確かめてください。ただ、規則の読み取りが思いどおりにならないこともあるので、結果は1行ずつ見直してください。
重複している行を探して消す
何年も書き足した住所録には、同じ人が2回入っていることがあります。そのまま差し込み印刷すると、同じ人に年賀状が2枚届いてしまいます。重複は、空白や全角半角をそろえたあとに探すのがコツです。空白が1つ違うだけでも、Excel は別の値として扱うからです。

- まず色を付けて確かめる:氏名の列を選び、「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「重複する値」。重なっている氏名に色が付く
- 色の付いた行を見比べて、本当に同じ人か確かめる。同姓同名の別の人ということもある
- シートをコピーしておく
- 住所録の表を選び、「データ」→「重複の削除」。重複を調べる列(氏名・郵便番号・住所など)にチェックを入れて OK を押す
「重複の削除」は、チェックを入れた列の値がすべて同じ行を消します。氏名だけにチェックを入れると、同姓同名の別の人まで消えてしまうので、住所の列も含めて選ぶのが安全です。公式ヘルプでは、重複の削除で消したデータは元に戻せないため、先に元のデータをコピーしておくよう案内されています(重複する値を検索して削除する)。
Microsoft 365 なら REGEXREPLACE 関数も使える
Microsoft 365 の Excel には、正規表現(文字のパターンを記号で表す書き方)で置き換えができる REGEXREPLACE 関数があります。書き方は次のとおりです。
=REGEXREPLACE(文字列, パターン, 置換後の文字, [何番目か], [大文字と小文字の区別])
たとえば =TRIM(REGEXREPLACE(A2,"[ ]+"," ")) のように書くと、「半角か全角のスペースが1つ以上続いた部分」を半角スペース1つに置き換える、という意味になります(角かっこの中に、半角スペースと全角スペースを並べています)。SUBSTITUTE を何重にも重ねるような置き換えを、1つの数式で書けるのが利点です。使い慣れないうちは、結果を元の列と見比べて確かめてください。
ただし、REGEXREPLACE が使えるのは Microsoft 365 だけで、Excel 2021 や Excel 2024 のような買い切り版にはありません(REGEXREPLACE 関数)。住所録を家族と共有していて、相手が買い切り版を使っている場合は、ここまでで紹介した TRIM や SUBSTITUTE で直し、値で貼り付けておくほうが確実です。
郵便番号から住所を入れたいとき
以前は、郵便番号から住所を入れたり、住所から郵便番号を入れたりできる「郵便番号変換ウィザード」というアドインがありました。しかしこれは Excel 2010 向けのもので、配布はすでに終わっています(@IT の記事による)。
今でも使えるのは、日本語入力(IME)の郵便番号辞書です。郵便番号を入力して変換すると、住所の候補が出ます。ただし、Microsoft のQ&Aの回答(2026年1月)では、辞書の最新は2019年版とされています。それより後に変わった郵便番号や住所は入っていないことがあるので、新しい住所は年賀状をくれた相手の表記を見て確かめてください。
整えた住所録で宛名を印刷する
住所録が整ったら、ファイルを保存して Word の差し込み印刷に進みます。はがきの宛名面を作る手順は「Word の差し込み印刷で年賀状の宛名を作る方法」で説明しています。
確かめた範囲について
この記事の関数と手順は、Microsoft の公式ヘルプ(TRIM・ASC・TEXT・REGEXREPLACE 関数、重複の削除、差し込み印刷のデータの準備)と、@IT・Microsoft Q&A の情報をもとにまとめたものです。当ブログでは、2026年10月時点の最新版の Excel でこの手順を操作して確かめてはいません。図の画面は説明のために描いたもので、実際のメニューやボタンの名前・並びは、バージョンによって違うことがあります。
まとめ
- 差し込み印刷のずれや0の消えは、Excel の住所録を先にそろえると防げる
- 作業の前にシートをコピーし、作業用の列で関数を使って直す
- 余分な空白は
=TRIM(SUBSTITUTE(A2," "," "))で、全角スペースを半角にしてから消す - ASC はカタカナまで半角カナにする。住所の数字やハイフンは SUBSTITUTE か「検索と置換」で直す
- 郵便番号は、数値なら TEXT、ハイフンなしの文字列なら REPLACE。入力する列は書式を「文字列」に
- 最後に「値」で貼り付けて確定し、重複は色で確かめてから「重複の削除」で消す
- Microsoft 365 なら REGEXREPLACE も使える。郵便番号変換ウィザードは配布終了、IME の郵便番号辞書は今も使える
コメント