全角・半角が混在したデータを一括で揃える方法|変換時の注意点も解説
顧客リストの電話番号が全角と半角で混ざっている。住所の番地が人によって違う。フォームから集めたデータを名寄せしようとしたら、同じ人が別人として扱われる——日本語データを扱うと必ず遭遇する問題です。この記事では、一括変換の手順と、変換してはいけないケースを整理します。
なぜ混在するのか
日本語入力では、同じ文字に全角と半角の2種類が存在します。
| 種類 | 例 |
|---|---|
| 英数字 | ABC123 と ABC123 |
| 記号 | -()@ と -()@ |
| カタカナ | カタカナ と カタカナ |
入力する人がIMEの状態を意識していなければ、当然混ざります。入力者の問題ではなく、日本語入力の構造上、混在は必ず起きると考えて、受け取る側で正規化するのが現実的です。
実務での方針
まず、どちらに揃えるかを決めます。一般的な基準は次のとおりです。
| データの種類 | 推奨 | 理由 |
|---|---|---|
| 電話番号・郵便番号 | 半角 | 数値として扱う、外部システム連携での標準 |
| 英数字(IDなど) | 半角 | システムが半角前提のことが多い |
| カタカナ(氏名フリガナ) | 全角 | 半角カナは文字化けやシステム非対応の原因になる |
| 住所 | 要検討(後述) | 一律変換は事故のもと |
「英数字は半角、カタカナは全角」が基本方針です。半角カナは、メール送信やレガシーシステムとの連携で文字化けの原因になるため、避けるのが無難です。
変換の手順
全角 ⇔ 半角 変換ツールでは、カタカナ・英数字・記号を個別に指定して変換できます。この「個別に指定できる」点が重要です。
たとえば次のような使い分けができます。
- 英数字だけ半角にして、カタカナは全角のまま残す
- カタカナだけ全角にして、英数字はそのまま
- 記号は変換対象から外す(後述の理由による)
一括で全部を変換すると、後述する事故が起きます。必要な種類だけを選んで変換してください。
変換前後で文字数が変わっていないかは、文字数カウントツールで確認できます。想定外の変化があれば、次に説明する濁点の問題を疑ってください。
落とし穴1:半角カナの濁点で文字数が変わる
最も注意が必要な点です。
半角カナの濁点・半濁点は、独立した1文字として扱われます。
ガ(全角) → 1文字
ガ(半角) → 2文字(カ + ゙)
つまり、ガギグゲゴ(全角5文字)を半角にすると ガギグゲゴ(半角10文字)になります。
これが問題になるのは次のようなケースです。
- 文字数制限のある項目(「フリガナは全角30文字まで」など)
- 固定長のデータ(バイト数で桁が決まっているシステム連携)
- 文字数でバリデーションしている入力フォーム
半角カナへの変換は、文字数が最大2倍になる可能性があると覚えておいてください。逆方向(半角カナ→全角カナ)では文字数が減ります。
落とし穴2:住所の一括変換は事故のもと
住所データは、単純に変換すると意味が変わることがあります。
東京都渋谷区神宮前1-2-3
東京都渋谷区神宮前1-2-3
どちらが正しいかは、連携先のシステムの仕様次第です。さらに厄介なのは、次のようなケースです。
渋谷区神宮前1丁目2番3号
渋谷区神宮前一丁目二番三号
漢数字と算用数字の混在は、全角半角変換では解決しません。住所の名寄せは、全角半角の統一だけでは完結しない問題だと理解しておく必要があります。
現実的な進め方は次のとおりです。
- まず英数字だけを半角に統一する
- ハイフン類(後述)を統一する
- 残りは目視または個別ルールで対応する
一発で完璧に揃えようとしないでください。 段階的に処理して、各段階で件数を確認するほうが、結果的に早く確実です。
落とし穴3:ハイフンに見える文字が複数ある
見た目がほぼ同じで、コード上は別物の文字が複数存在します。
| 文字 | 名称 |
|---|---|
- | 半角ハイフンマイナス |
- | 全角ハイフンマイナス |
ー | 長音符(カタカナの「ー」) |
‐ ‑ – — | 各種ダッシュ類 |
− | マイナス記号 |
電話番号の区切りに、長音符「ー」が使われているケースは実際によくあります。 見た目では判別できず、検索や突合で一致しません。
全角半角変換だけでは、これらは統一されません。ハイフン類の正規化は別途、置換で対応する必要があります。データを受け取ったら、まずハイフン類が何種類混ざっているかを確認してください。
落とし穴4:変換してはいけないデータ
次のものは、機械的に変換すると壊れます。
- パスワード — 大文字小文字と同様、全角半角も別の文字です
- APIキー・トークン — 1文字でも変われば無効になります
- 商品コード・型番 — 全角半角を区別している場合があります
- 本文中の日本語 — 文中の英数字を全角にすると読みにくくなることがあります
変換対象は「これを変換する」と決めた列だけに限定してください。 データ全体に一括適用するのは避けるべきです。
Excelでの対処
Excelの関数でも変換できます。
| 関数 | 動作 |
|---|---|
=ASC(A1) | 全角 → 半角 |
=JIS(A1) | 半角 → 全角 |
ただし、この2つは種類を選べません。 ASC は英数字もカタカナも記号もすべて半角にするため、カタカナまで半角カナになってしまいます。
「英数字だけ半角、カタカナは全角のまま」という実務でよくある要件は、Excelの標準関数だけでは実現できません。この場合は、該当の列をコピーして変換ツールで種類を指定して変換し、貼り戻すのが手軽です。
CSVとして扱う場合は、CSV ⇔ JSON 変換ツールと組み合わせると、列単位の処理がしやすくなります。
根本的な対策:入力時に正規化する
データを受け取った後で直すのは、常に後手です。可能であれば、入力フォームの時点で正規化してください。
- 電話番号・郵便番号の入力欄は、入力時点で半角数字のみを受け付ける
- フリガナ欄は、半角カナを自動的に全角に変換する
- 入力欄に
inputmodeを指定して、スマートフォンで適切なキーボードを出す
入力側で1回対処すれば、以後の全データがきれいになります。 既存データの整形は避けられませんが、同じ問題を繰り返さない仕組みを併せて用意してください。
まとめ
- 方針は「英数字は半角、カタカナは全角」が基本
- 半角カナの濁点は2文字。文字数が最大2倍になる
- 住所の一括変換は事故のもと。段階的に処理する
- ハイフンに見える文字は複数ある。別途置換が必要
- パスワード・APIキー・商品コードは変換対象から外す
- Excelの
ASC/JISは種類を選べない - 根本対策は入力時の正規化
変換自体は一瞬ですが、どの列にどの変換を適用するかの判断が本体です。ここを機械的に済ませると、後から気づけない形でデータが壊れます。