全角・半角変換の基礎知識——データクレンジングとフォーム入力の標準化
最終更新: 2026年3月29日 ・ 読了時間: 約5分
日本語データを扱うシステムで頻繁に発生する「全角・半角問題」。 検索してもヒットしない、CSVの列がずれる、帳票の数字が読みにくい—— これらの原因の多くは、全角と半角の混在にあります。 この記事では、全角・半角の基礎からデータクレンジングの実践手法まで解説します。
全角・半角とは — 文字幅とUnicodeの関係
「全角」「半角」は元々、等幅フォントにおける文字の表示幅を指す概念です。 漢字やひらがなは1文字分の幅(全角)を占め、ASCII文字はその半分の幅(半角)で表示されます。
Unicodeでは、同じ見た目の文字でも全角と半角に別のコードポイントが割り当てられています。 例えば、半角の「A」はU+0041、全角の「A」はU+FF21です。 コンピュータにとってこれらは完全に異なる文字であるため、 文字列比較や検索で不一致が起きます。
全角半角が混在する問題
| 問題 | 具体例 | 影響 |
|---|---|---|
| 検索漏れ | 「TEL」で検索しても「TEL」がヒットしない | 顧客データの検索精度低下 |
| マッチ不一致 | 「090」と「090」が一致しない | 重複チェックの失敗 |
| CSV崩れ | 全角カンマ「,」がCSV区切りとして認識されない | インポートエラー・列ずれ |
| 帳票不具合 | 全角数字「12,800円」が右寄せされない | 帳票レイアウトの崩れ |
業務での変換場面
全角・半角変換が必要になる代表的な業務シーンは以下の通りです。
- 顧客データクレンジング — CRMやデータベースに蓄積された顧客情報の 電話番号・住所・氏名カナの全角半角を統一し、検索精度と重複排除の精度を向上させます。
- CSVインポート前処理 — 外部から受け取ったCSVデータの数値列に 全角数字が混入していると、数値として認識されません。インポート前に半角に統一する処理が必要です。
- フォームバリデーション — ユーザーが入力した電話番号やメールアドレスに 全角文字が混入した場合、サーバー側で半角に正規化してからバリデーションすることで、 入力エラーを減らせます。
Unicode正規化(NFC/NFKC)との関係
Unicodeには4つの正規化形式(NFC・NFD・NFKC・NFKD)があります。 全角半角の変換に関連するのは、互換分解を含むNFKC(またはNFKD)です。
NFK正規化を適用すると、互換等価な文字が統一されます。 例えば、全角英数字「A」がASCIIの「A」に、半角カタカナ「カ」が全角カタカナ「カ」に変換されます。 ただし、「㈱」が「(株)」に展開されるなど、意図しない変換も含まれるため注意が必要です。
NFKC正規化の変換例
入力: "Hello World 123"
NFKC: "Hello World 123"
入力: "カタカナ"
NFKC: "カタカナ"
入力: "㈱サンプル"
NFKC: "(株)サンプル" ← 意図しない変換の可能性Excelでの全角半角変換方法
Excelには全角半角変換のための組み込み関数が用意されています。
| 関数 | 機能 | 使用例 |
|---|---|---|
| ASC関数 | 全角→半角に変換 | =ASC("123ABC") → "123ABC" |
| JIS関数 | 半角→全角に変換 | =JIS("123ABC") → "123ABC" |
大量のデータを一括変換する場合は、新しい列に関数を入力してからコピー&値貼り付けを行います。 ただし、Excel関数では「英数字は半角・カタカナは全角」のような細かい制御はできないため、 専用ツールの利用が効率的です。
プログラミングでの変換
JavaScript
// 全角英数字→半角に変換
function toHalfWidth(str) {
return str.replace(/[A-Za-z0-9]/g, (s) =>
String.fromCharCode(s.charCodeAt(0) - 0xFEE0)
);
}
// NFKC正規化(全角英数→半角、半角カナ→全角)
const normalized = text.normalize('NFKC');Python
import unicodedata
# NFKC正規化
text = "Hello 123 カタカナ"
normalized = unicodedata.normalize('NFKC', text)
# → "Hello 123 カタカナ"tools24.jpの全角・半角変換で一括処理
英数字・カタカナ・記号の全角半角を一括で変換したい場合は、tools24.jpの全角・半角変換ツールをご利用ください。「英数字は半角に、カタカナは全角に」といった細かい設定が可能で、 ブラウザ内で処理するためデータがサーバーに送信されることはありません。 コピー&ペーストで手軽に使えるため、Excelの関数より直感的に操作できます。