こんにちは、SkillStack Lab運営者のスタックです。
Excelで顧客リストや商品データを整理していて、「1234567を123-4567にしたい」「09012345678へハイフンを入れたい」と困っていませんか。
結論から言うと、郵便番号や携帯電話番号のように区切る位置が決まっているデータなら、TEXT関数で簡単にハイフンを入れられます。
たとえば、A2に数字だけの7桁郵便番号が入っているなら、次の式です。
=IF(A2="","",TEXT(A2,"000-0000"))
一方、社員番号のような文字列へ特定位置でハイフンを追加するならREPLACE関数、複数セルをハイフンで結合するならTEXTJOIN関数が向いています。
注意したいのが固定電話です。日本の固定電話は市外局番の区切り位置が一律ではないため、単純に「3桁-3桁-4桁」へ変換すると誤った電話番号表記を作る可能性があります。
この記事では、郵便番号・携帯電話・社員番号・日付へのハイフン挿入から、固定電話の扱い、ハイフン削除、フラッシュフィル、Power Queryによる一括処理まで解説します。

郵便番号・電話番号・社員番号は「計算する数値」ではなく識別子として扱うことが重要です。
元システムから文字列として取得できる場合は、先頭の0を失わないよう、できるだけ文字列のまま管理してください。すでに数値として読み込まれ、先頭の0が落ちている場合は、桁数が確定しているデータに限ってTEXT関数で補完できます。
- 郵便番号:
=TEXT(A2,"000-0000") - 携帯・050:
=TEXT(A2,"000-0000-0000") - 社員番号:
=REPLACE(A2,4,0,"-") - 8桁日付を文字列化:
=TEXT(A2,"0000-00-00") - ハイフン削除:
=SUBSTITUTE(A2,"-","") - 複数セルを結合:
=TEXTJOIN("-",TRUE,A2:C2)
Excelでハイフンを入れる方法は2種類ある
最初に、「見た目だけ変えたいのか」「ハイフン付きの文字列そのものを作りたいのか」を決めましょう。
| 方法 | セルの中身 | 向いている用途 |
|---|---|---|
| ユーザー定義の表示形式 | 元の数値を保持 | Excel上で見やすく表示するだけ |
| TEXTなどの関数 | ハイフン付き文字列を作る | 別列を作り、他システム用データへ加工する |
たとえばA2に「1234567」という数値がある場合、ユーザー定義の表示形式へ次の書式を設定しても「123-4567」と表示できます。
000-0000
ただし、セル内部の値は「1234567」のままです。
一方、次のTEXT関数は「123-4567」という文字列を別セルへ返します。
=TEXT(A2,"000-0000")
Microsoftも、TEXT関数は数値へ表示形式を適用し、結果を文字列へ変換する関数として案内しています。
Excel内で見やすくしたいだけなら表示形式、外部システムへ渡すハイフン付きデータ列を作りたいなら関数と考えると選びやすくなります。
CSVへ渡すなら結果を値として確認する
CSVはExcelブックの表示形式や数式などをそのまま保持するファイル形式ではありません。
別システムへ「123-4567」という文字列を渡す必要があるなら、ハイフン付きの結果列を作り、必要に応じて値として確定したうえでCSVを確認しましょう。
- 元データの右側に関数列を作る
- ハイフンの位置と先頭0を確認する
- 必要なら関数列をコピーする
- 「値として貼り付け」で結果を固定する
- 別名でCSVへ保存する
- CSVを開き直し、取り込み前の値を確認する
元データを直接上書きせず、加工用の別列を作る方が、誤変換を見つけたときに戻しやすくなります。
郵便番号にハイフンを入れるTEXT関数
7桁の郵便番号は区切り位置が固定されているため、TEXT関数と相性のよいデータです。
A2に「1234567」が入っている場合は、次の数式を使用します。
=IF(A2="","",TEXT(A2,"000-0000"))
結果は「123-4567」です。
先頭の0が消えた郵便番号を補完する
たとえば本来「060-0001」だった郵便番号が、数値としてExcelへ読み込まれ「600001」になっている場合でも、元データが必ず7桁の郵便番号だと分かっていれば次の式で補完できます。
=TEXT(A2,"000-0000")
「0」の書式指定は必要な桁へ0を表示するため、「600001」は「060-0001」となります。
これは「元データが7桁の郵便番号である」と確定している場合の復元方法です。桁不足の原因がデータ欠損なのか、先頭0の消失なのか分からないデータへ機械的に0を追加しないでください。

携帯電話・050番号にハイフンを入れる
元データが「070・080・090から始まる携帯電話番号」または「050番号」であると分かっている場合は、3桁-4桁-4桁の形式へ整形できます。
A2へ数字だけの電話番号が入っている場合は、次の式です。
=IF(A2="","",TEXT(A2,"000-0000-0000"))
たとえば「9012345678」と数値として読み込まれ、先頭の0が落ちている場合でも、11桁の電話番号だと確定していれば「090-1234-5678」と表示できます。
「11桁だから携帯電話」とだけ判定しないでください。
日本には0800など別用途の電話番号もあります。電話番号が混在しているリストでは、桁数だけではなく番号種別を確認したうえで整形してください。
電話番号の種別は、総務省が公開している電気通信番号の指定状況でも確認できます。
すでにハイフンが混在している場合
「09012345678」と「090-1234-5678」が同じ列に混在している場合は、一度ハイフンを取り除いてから形式を統一できます。
=IF(A2="","",TEXT(VALUE(SUBSTITUTE(A2,"-","")),"000-0000-0000"))
この式は、半角ハイフンを削除して数値へ変換し、11桁の書式で再表示します。
携帯・050など3桁-4桁-4桁だと確定している列で使用してください。固定電話や0120・0800などが混在した列へ一括適用しないでください。
8桁の日付へハイフンを入れる方法
「20250101」のような8桁データを、他システムへ渡す文字列「2025-01-01」にしたい場合にもTEXT関数を利用できます。
=IF(A2="","",TEXT(A2,"0000-00-00"))
ただし、結果は日付ではなく「2025-01-01」という文字列です。
曜日計算、日数計算、ピボットテーブルなどでExcelの日付として使用したいなら、文字列へハイフンを付けるだけではなく、日付値へ変換します。
=IF(A2="","",DATE(LEFT(TEXT(A2,"00000000"),4),MID(TEXT(A2,"00000000"),5,2),RIGHT(TEXT(A2,"00000000"),2)))
この場合はセルの表示形式をyyyy-mm-ddにすれば、日付として計算できる状態を保ったまま「2025-01-01」と表示できます。
元データに存在しない月日や桁不足が混ざる可能性がある場合は、一括変換前に入力値を検証してください。日付として使う列は、単に見た目を整えるだけでなく元データの品質確認も重要です。
文字列の特定位置へREPLACE関数でハイフンを入れる
社員番号「EMP12345」を「EMP-12345」にするなど、文字を含むデータへハイフンを挿入したい場合はREPLACE関数が便利です。
基本形は次のとおりです。
=REPLACE(文字列,開始位置,0,"-")
第3引数を0にすると、元の文字を削除せず、その位置へ新しい文字を挿入できます。
A2に「EMP12345」があり、EMPの後ろへハイフンを入れるなら次の式です。
=IF(A2="","",REPLACE(A2,4,0,"-"))
結果は「EMP-12345」です。

固定電話へハイフンを入れるときは一律の関数を使わない
郵便番号や携帯電話と違い、固定電話は「すべて3桁-3桁-4桁」のような1種類の書式ではありません。
たとえば東京の03、大阪の06のような番号と、それ以外の地域では区切り位置が異なります。
そのため、混在する固定電話番号へ次のような一律の書式を指定するのは避けてください。
=TEXT(A2,"000-000-0000")
元の電話番号自体は変わらなくても、間違った位置へハイフンを入れた文字列を作ってしまいます。
03・06だけと分かっている場合の例
対象データが10桁の文字列として保存され、03または06だけを処理すると決めている場合なら、限定的な条件式を作れます。
=IF(A2="","",IF(OR(LEFT(A2,2)="03",LEFT(A2,2)="06"),LEFT(A2,2)&"-"&MID(A2,3,4)&"-"&RIGHT(A2,4),"要確認"))
03・06以外を勝手に3-3-4へ変換せず、「要確認」として残すのがポイントです。
全国の固定電話を正確に整形するなら、簡易IF式ではなく番号マスターとの照合を検討してください。
総務省が公開している固定電話番号の指定データなどを基準にし、Power Queryや検索用マスターで市外局番を判定する方が安全です。
スタック電話番号のようなマスターデータでは、「だいたい合う数式」より「判定できない番号を要確認として残す」方を私は選びます。誤った区切りを大量に作ると、あとで元データとの照合作業が増えるためです。
ハイフンを削除・統一するSUBSTITUTE関数
逆に、「090-1234-5678」からハイフンを削除したい場合はSUBSTITUTE関数を使います。
=IF(A2="","",SUBSTITUTE(A2,"-",""))
結果は「09012345678」です。
似た記号が混在している場合
手入力されたデータでは、半角ハイフン以外の似た記号が混在している場合があります。
たとえば、全角の「-」や長音の「ー」を半角ハイフンへ統一するなら、SUBSTITUTE関数を重ねられます。
=SUBSTITUTE(SUBSTITUTE(A2,"ー","-"),"-","-")
ただし、日本語の文章を含む列で「ー」を一律にハイフンへ置換すると、商品名などの長音記号まで変更してしまいます。
記号の一括置換は、電話番号・商品コードなど「その記号を置換してよい列」に限定してください。文章を含む列へ無条件で適用しないようにしましょう。
複数セルをTEXTJOIN関数でハイフン結合する
番号の各要素が別々のセルに入っているなら、あとからハイフンで結合できます。
たとえばA2・B2・C2の値を「-」で結ぶ場合は次の式です。
=TEXTJOIN("-",TRUE,A2:C2)
第2引数をTRUEにすると、空白セルを無視して結合できます。
従来の次の式でも結合できます。
=A2&"-"&B2&"-"&C2
ただし、途中に空白セルがある場合は「123–4567」のようにハイフンだけが残るため、欠損セルを無視したい場合はTEXTJOINが便利です。


大量データへハイフンを一括で入れる方法
数千件のデータでも、数式を1行ずつ入力する必要はありません。
処理が1回だけなのか、毎月繰り返すのかによって方法を選びましょう。
| 方法 | 向いているケース | 特徴 |
|---|---|---|
| 関数+オートフィル | 変換ルールを確認しながら処理したい | 数式が残るため原因を確認しやすい |
| フラッシュフィル | 1回限りの単純なパターン変換 | 結果が値として入る |
| Power Query | 毎月同じCSVを取り込んで整形する | 変換手順を保存して更新できる |
オートフィルで数式を一括コピーする
最も分かりやすいのは、B2へ数式を入れ、フィルハンドルをダブルクリックして下までコピーする方法です。
- A列へ元データを残す
- B2へ変換式を入力する
- 数件の結果を確認する
- 数式を最終行までコピーする
- 件数と先頭・中央・末尾のデータを確認する
- 必要ならB列を値として確定する
システム取り込み用データでは、元列を残したまま変換後列を作ると照合しやすくなります。
フラッシュフィルで関数なしに一括変換する
単純な規則なら、フラッシュフィルでもハイフンを一括挿入できます。
- A2に「09012345678」など元データを用意する
- B2へ「090-1234-5678」と理想形を手入力する
- B列の次のセルを選択する
Ctrl+Eでフラッシュフィルを実行する- 結果を数件確認する
フラッシュフィルは入力例からパターンを検出して、残りのデータを補完する機能です。
Microsoft公式「Excelでフラッシュフィルを使用する」
フラッシュフィルは数式のように元データの変更へ自動追従する仕組みではありません。また、パターンの異なる電話番号などが混在していると意図しない結果になることがあります。処理後の確認は必須です。
毎月のCSV整形ならPower Queryを使う
毎月システムからCSVをダウンロードし、同じ列へ毎回ハイフンを付けているなら、Power Queryを検討する価値があります。
Power Queryでは、外部データを取り込み、列の追加・削除、データ型の変更、文字列変換などの手順を保存できます。
翌月は新しいデータへ差し替えて更新すれば、同じ変換処理を再利用できます。
Microsoft公式「ExcelのPower Queryについて」
ただし、Power Queryだからデータ量に関係なく高速とは限りません。元データのサイズ、変換内容、保存先、使用しているパソコンなどによって処理時間は変わります。
毎月のデータ結合や整形まで自動化したい方は、Excel自動化の方法をVBA・Power Query・Pythonなどで比較した記事も参考にしてください。
システムへ取り込む前に確認する5つのポイント
大量データの変換では、数式そのものより「変換結果を検証する仕組み」の方が重要です。
- 変換前と変換後の行数が同じか
- 先頭の0が失われていないか
- 固定電話など例外データへ誤った書式を適用していないか
- 空白・エラー・重複データがないか
- 実際の取込仕様が「ハイフンあり」「なし」のどちらか
「見た目がきれいになった」だけで作業完了にしないでください。
特に顧客マスター、社員マスター、商品マスターなどは、1件の誤変換が別システムの検索・照合・連携エラーにつながる場合があります。



管理部門でデータを扱うときは、私は「元データを残す」「加工列を分ける」「処理前後の件数を確認する」の3つを基本にしています。数千件を一括変換するほど、元に戻せる設計が重要です。
ハイフンを入れる関数の使い分け
| やりたいこと | 第一候補 | ポイント |
|---|---|---|
| 郵便番号 | TEXT | 7桁固定なら処理しやすい |
| 携帯・050 | TEXT | 番号種別が確定している場合に使用 |
| 社員・商品コード | REPLACE | 指定位置へ文字を挿入 |
| 固定電話混在 | 番号マスターとの照合 | 単純な桁数判定を避ける |
| ハイフン削除 | SUBSTITUTE | 特定文字を削除・統一 |
| 複数セルの結合 | TEXTJOIN | 空白セルを無視できる |
| 1回だけ大量変換 | フラッシュフィル | パターンが単純な場合 |
| 毎月同じCSV整形 | Power Query | 変換手順を再利用できる |
関数をさらに体系的に覚えたい方は、Excel関数を暗記せず覚えるコツも参考にしてください。
関数だけでなくピボットテーブルやPower Queryまで動画で学びたい方は、UdemyのExcelおすすめ講座を目的別に比較した記事で、学びたい機能ごとの選び方を整理しています。
Excelでハイフンを入れる関数のよくある質問
まとめ|ハイフンはデータの種類から方法を選ぶ
Excelでハイフンを入れる代表的な方法をまとめると、次のようになります。
- 郵便番号はTEXT関数で
000-0000 - 携帯・050は番号種別を確認して
000-0000-0000 - 社員番号など文字列への挿入はREPLACE関数
- 固定電話の混在データは一律書式にしない
- ハイフン削除・統一はSUBSTITUTE関数
- 複数セルの結合はTEXTJOIN関数
- 1回限りの単純変換ならフラッシュフィル
- 毎月のCSV整形ならPower Queryも検討する
最も重要なのは、「ハイフンを入れられたか」ではなく、元の識別番号を壊さず正しい形式へ変換できたかを確認することです。
特に顧客リストや社員マスターなどを大量に処理する場合は、元列を残し、加工列を別に作ってから結果を照合しましょう。
Excel関数を毎回検索する状態から抜け出し、実務でよく使う関数の考え方を整理したい方は、次の記事も確認してください。
\ 関数を暗記せず使いこなす /
電話番号の指定状況やExcelの利用可能な機能は変更される可能性があります。電話番号マスターなど重要なデータを一括加工する場合は、最新の番号情報と自社システムの取込仕様を確認し、必ずコピーしたデータでテストしてください。








