Excelで大量のデータを扱っていると、「英数字の間にハイフン(-)を入れたい」というニーズが出てくることがあります。たとえば、商品コードや社員番号などで「AB12345」を「AB-12345」のように整形したいケースです。
こうした作業を手作業で行うのは非効率でミスの元。Excelの関数や置換機能を使えば、こうした英数字の分離・整形を簡単かつ一括で行うことが可能です。
この記事では、英字と数字の間にハイフンを入れる方法を複数紹介し、業務で即活用できるよう実例を交えて詳しく解説します。
目次
- ✅ 英字と数字の間にハイフンを入れるとは?
- ✅ 英字と数字の境目にハイフンを入れる基本方法
- ・使用関数例
- ✅ 英字と数字の長さが異なる場合は「文字コード判定」を活用
- ・関数例(配列関数使用・Excel 365推奨)
- ✅ 英字が固定・数字が可変の場合の簡単な式
- ✅ SUBSTITUTE関数やTEXT関数では対応できない理由
- ✅ Power Queryを使って自動変換する方法
- ✅ 数式の代わりに「検索と置換」+ワイルドカードで処理する裏技
- ・「AB12345」形式を「AB-12345」にしたい場合
- ■ トラブルシューティング:うまくハイフンが入らない場合
- ✅ 応用例:電話番号や郵便番号のハイフン整形
- ・郵便番号「1234567」→「123-4567」
- ・電話番号「09012345678」→「090-1234-5678」
- ■ まとめ:英数字の間にハイフンを入れてデータを整える
- ・おさらいポイント
✅ 英字と数字の間にハイフンを入れるとは?
英数字が連続して並ぶ文字列(例:「AB12345」)に対して、英字と数字の間に「-」を自動的に挿入することで、以下のような整形が行えます。
- Before:「AB12345」
- After:「AB-12345」
このような整形は、以下のようなケースでよく利用されます。
- 商品コードの読みやすさ向上
- 管理番号の形式統一
- 郵便番号・電話番号の形式変更
【Excel】日付と曜日だけを同一セルに入力する方法【関数・書式設定で見やすく整理】
✅ 英字と数字の境目にハイフンを入れる基本方法
最も基本的な方法は、「英字の部分」と「数字の部分」を分離して、それらを結合することです。
・使用関数例
=LEFT(A1,2) & "-" & MID(A1,3,LEN(A1))
解説:
LEFT(A1,2)
:先頭2文字(英字)を取り出すMID(A1,3,LEN(A1))
:3文字目以降(数字)を取り出す& "-" &
:ハイフンでつなぐ
※英字が2文字、数字が5桁など、文字数が一定である場合に有効です。
【Excel】TRIM関数とLEN関数の活用法とは?Excelで文字列処理をスマートにする便利テクニックを徹底解説
✅ 英字と数字の長さが異なる場合は「文字コード判定」を活用
英字の長さがバラバラな場合は、文字列の中から英字と数字を自動判別して分割する必要があります。
・関数例(配列関数使用・Excel 365推奨)
=LEFT(A1,MATCH(TRUE,ISNUMBER(MID(A1,ROW(INDIRECT("1"&LEN(A1))),1)*1),0)-1)&"-"&MID(A1,MATCH(TRUE,ISNUMBER(MID(A1,ROW(INDIRECT("1"&LEN(A1))),1)*1),0),LEN(A1))
この関数は、以下の処理を行っています:
- 数字が登場する最初の位置を特定
- その位置を基準に、英字と数字に分割
- 両者をハイフンで連結
結果例:
入力値 | 結果 |
---|---|
A12345 | A-12345 |
AB12345 | AB-12345 |
ABC123 | ABC-123 |
【Excel】重複の削除を“行単位”で行う方法|1行全体の重複チェックと削除手順を徹底解説
✅ 英字が固定・数字が可変の場合の簡単な式
英字が常に3文字で、数字が任意桁数の場合は以下の式でも可能です。
=LEFT(A1,3) & "-" & MID(A1,4,LEN(A1)-3)
こちらの方法は処理が軽く、条件が明確な場合におすすめです。
✅ SUBSTITUTE関数やTEXT関数では対応できない理由
SUBSTITUTE
関数は特定の文字列を置換する関数ですが、「英字と数字の境目」というルールには直接対応していません。
同様にTEXT
関数も数値の表示形式を調整するためのものであり、文字列の途中に動的にハイフンを入れる目的では不向きです。
そのため、文字列の構造を把握し、関数を組み合わせて使うのが最も確実な方法です。
【Excel】文字を置き換える関数まとめ|SUBSTITUTE・REPLACE・応用例と注意点
✅ Power Queryを使って自動変換する方法
Excelに標準搭載されている「Power Query」を使えば、より柔軟かつ大量データ向けに処理を自動化できます。
手順概要:
- データ範囲を選択し、「データ」タブ →「テーブルまたは範囲から」をクリック
- Power Queryエディターが開いたら、「列の追加」→「カスタム列」を選択
- 式に
Text.Insert([列名], 3, "-")
と記述(例:3文字目にハイフン挿入) - 変換結果を確認し、「閉じて読み込む」でExcelに戻す
この方法なら元データに影響を与えずにハイフン付きの形式を別列に出力でき、再利用性が高まります。
✅ 数式の代わりに「検索と置換」+ワイルドカードで処理する裏技
文字列の形式が一定でない場合は、VBAを使わずに置換機能+ワイルドカードを使って処理することも可能です。ただし、これは単純なパターンのときのみ有効です。
・「AB12345」形式を「AB-12345」にしたい場合
- 対象列を選択
- Ctrl + H(検索と置換)
- 「検索する文字列」→
([A-Z][A-Z])([0-9]*)
- 「置換後の文字列」→
\1-\2
- オプションで「正規表現を使う」をオン(※Excel標準では不可、Power Queryや他ツールが必要)
Excel標準の置換機能では正規表現が使えないため、上級者向けのテクニックとして紹介します。
【Excel】置換でワイルドカードを使いこなす方法|「*」「?」で柔軟な文字列操作を実現
■ トラブルシューティング:うまくハイフンが入らない場合
問題 | 原因 | 解決策 |
---|---|---|
関数がエラーになる | 数値と文字列が混在している | 入力セルを「文字列」形式に設定 |
数式が正しく機能しない | 英字・数字の長さが不定 | 文字判定関数を使う式に変更 |
オートフィルで反映されない | 隣接列が空白または途切れている | 必要な範囲を手動でコピー |
✅ 応用例:電話番号や郵便番号のハイフン整形
英数字の間ではなく、数字の間にハイフンを入れたい場合も同様に処理できます。
・郵便番号「1234567」→「123-4567」
=LEFT(A1,3) & "-" & RIGHT(A1,4)
・電話番号「09012345678」→「090-1234-5678」
=TEXT(A1,"000-0000-0000")
このように、パターンが明確な場合はTEXT
関数でも対応可能です。
■ まとめ:英数字の間にハイフンを入れてデータを整える
Excelで英字と数字の間にハイフンを自動で挿入するには、LEFT・MID・LENなどの関数を組み合わせる方法が最も確実です。
特にデータの桁数がバラバラな場合は、動的に境界を検出する式を使うことで、柔軟に対応できます。
・おさらいポイント
- 英字が固定なら
=LEFT() & "-" & MID()
で対応 - 英数字の境界が不定なら
MATCH
とISNUMBER
で判定 - Power Queryならノーコードで整形できて実務向き
- 数値間のハイフン整形は
TEXT()
関数が便利
大量データを扱う場合や、整形の自動化を求められる業務では、こうした整形スキルが非常に役立ちます。
Excelでの文字列整形をマスターして、業務のスピードと正確性をアップさせましょう。