ASC・JIS・PHONETIC関数|全角半角変換とフリガナ
ASC関数は全角文字を半角に、JIS関数は半角文字を全角に変換する関数です。PHONETIC関数はセルに入力されたフリガナ情報を取得します。顧客データや住所データの全角半角統一、名簿へのフリガナ自動付与など、日本語データの管理に欠かせない3つの関数を解説します。
各関数の基本構文
ASC関数(全角→半角)
=ASC(文字列)
全角の英字、数字、カタカナ、記号を半角に変換します。
JIS関数(半角→全角)
=JIS(文字列)
半角の英字、数字、カタカナ、記号を全角に変換します。
PHONETIC関数(フリガナ取得)
=PHONETIC(参照)
セルに格納されているフリガナ情報を取得します。
引数の説明
| 関数 | 引数 | 説明 | 必須/任意 |
|---|---|---|---|
| ASC | 文字列 | 半角に変換する文字列やセル参照 | 必須 |
| JIS | 文字列 | 全角に変換する文字列やセル参照 | 必須 |
| PHONETIC | 参照 | フリガナを取得するセル参照 | 必須 |
ASC関数・JIS関数の変換対象
ASC関数が変換する文字と変換しない文字を確認します。
| 文字の種類 | 変換前 | 変換後 | 変換される |
|---|---|---|---|
| 全角英字 | ABCD | ABCD | はい |
| 全角数字 | 1234 | 1234 | はい |
| 全角カタカナ | アイウエオ | アイウエオ | はい |
| 全角記号 | @#$ | @#$ | はい |
| ひらがな | あいうえお | あいうえお | いいえ |
| 漢字 | 東京都 | 東京都 | いいえ |
| 半角文字 | ABC123 | ABC123 | 変換不要 |
濁音・半濁音の変換
全角の濁音・半濁音は、半角にすると2文字に分かれます。
| 変換前 | 変換後 | 文字数の変化 |
|---|---|---|
| ガ | ガ | 1文字→2文字 |
| パ | パ | 1文字→2文字 |
| ギ | ギ | 1文字→2文字 |
このため、ASC関数で変換すると文字数が増えることがあります。LEN関数やLENB関数でのチェック時に注意が必要です。
JIS関数の変換対象
JIS関数はASC関数の逆の変換を行います。
| 文字の種類 | 変換前 | 変換後 | 変換される |
|---|---|---|---|
| 半角英字 | ABCD | ABCD | はい |
| 半角数字 | 1234 | 1234 | はい |
| 半角カタカナ | アイウエオ | アイウエオ | はい |
| 半角記号 | @#$ | @#$ | はい |
| ひらがな | あいうえお | あいうえお | 変換不要 |
| 漢字 | 東京都 | 東京都 | 変換不要 |
半角の濁音(ガ)は全角の1文字(ガ)にまとまります。
実践例1:顧客データの全角半角統一
電話番号の半角統一
顧客データベースで電話番号の全角半角が混在している場合に統一します。
| A列(入力データ) | B列(半角統一) | |
|---|---|---|
| 2 | 03−1234−5678 | 03-1234-5678 |
| 3 | 090-1234-5678 | 090-1234-5678 |
| 4 | 090−9876−5432 | 090-9876-5432 |
=ASC(A2)
郵便番号の半角統一
=ASC(A2)
「150−0001」は「150-0001」に変換されます。既に半角の場合はそのまま返されるため、一括で適用しても問題ありません。
メールアドレスの半角統一
メールアドレスが全角で入力されている場合にASC関数で修正します。
| A列(入力データ) | B列(修正後) | |
|---|---|---|
| 2 | tanaka@example.com | [email protected] |
| 3 | [email protected] | [email protected] |
=ASC(A2)
LOWER関数と組み合わせれば、小文字への統一も同時に行えます。
=LOWER(ASC(A2))
実践例2:カタカナの全角統一
フリガナの全角カタカナ統一
名簿データでフリガナが半角カタカナと全角カタカナで混在している場合にJIS関数で統一します。
| A列(フリガナ) | B列(全角統一) | |
|---|---|---|
| 2 | タナカ タロウ | タナカ タロウ |
| 3 | スズキ ハナコ | スズキ ハナコ |
| 4 | サトウ ジロウ | サトウ ジロウ |
=JIS(A2)
住所データの全角カタカナ統一
住所に含まれる半角カタカナを全角に統一します。ただし、数字や英字は半角のままにしたい場合は、JIS関数だけでは対応できません。
数字と英字は半角、カタカナは全角にしたい場合は、JIS関数で全角に変換した後にSUBSTITUTE関数で数字と英字を半角に戻す方法が考えられますが、処理が複雑になります。実用的には以下の手順が効率的です。
- まずJIS関数で全体を全角に変換する
- 次にASC関数を適用する列を数字・英字の部分に限定する
あるいは、VBAやPower Queryで処理する方法もあります。
実践例3:ASC関数とJIS関数を部分的に適用
英数字のみ半角にする
文字列全体ではなく、英数字の部分だけを半角に変換したい場合があります。ASC関数は文字列全体に適用されるため、カタカナも半角になってしまいます。
対処法として、SUBSTITUTE関数で全角カタカナを一時的に保護する方法があります。ただし、文字数が多い場合は数式が非常に長くなります。
現実的な方法として、以下のような段階的な処理をおすすめします。
| 手順 | 処理内容 | 数式 |
|---|---|---|
| 1 | 全体を半角に変換 | =ASC(A2) |
| 2 | 半角カタカナを全角に戻す | =JIS(結果) を条件付きで適用 |
ただしこの方法では英数字も全角に戻ってしまうため、単純な関数の組み合わせでは実現が困難です。このような処理が必要な場合は、VBAでの処理を検討してください。
数字のみ半角にするシンプルな方法
数字が0から9の10種類に限られることを利用して、SUBSTITUTE関数で個別に変換する方法です。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"0","0"),"1","1"),"2","2"),"3","3"),"4","4"),"5","5"),"6","6"),"7","7"),"8","8"),"9","9")
数式は長くなりますが、確実に数字のみを半角に変換できます。
実践例4:PHONETIC関数でフリガナを取得
氏名のフリガナを自動取得
Excelでセルに日本語を入力すると、入力時の読みがフリガナ情報として保存されます。PHONETIC関数でこのフリガナを取得できます。
| A列(氏名) | B列(フリガナ) | |
|---|---|---|
| 2 | 田中太郎 | タナカタロウ |
| 3 | 鈴木花子 | スズキハナコ |
| 4 | 佐藤次郎 | サトウジロウ |
=PHONETIC(A2)
PHONETIC関数の注意点
PHONETIC関数にはいくつかの制限があります。
| 注意点 | 説明 |
|---|---|
| 入力時の読みに依存 | Excelで直接入力したときの読み情報を取得する |
| コピー貼り付けデータ | 他のソースからコピーしたデータにはフリガナ情報がないことがある |
| CSVインポート | CSVから取り込んだデータにはフリガナ情報がない |
| 手動編集が必要な場合 | 読みが正しくない場合は手動でフリガナを編集する |
フリガナ情報がない場合の動作
フリガナ情報がないセルに対してPHONETIC関数を使うと、セルの値がそのまま返されます。つまり、漢字がそのまま表示されます。
=IF(A2=PHONETIC(A2), "フリガナなし", PHONETIC(A2))
この数式で、フリガナ情報が存在するかどうかを判定できます。元の値とPHONETIC関数の結果が同じであれば、フリガナ情報がないと判断できます。
フリガナをひらがなで取得
PHONETIC関数はデフォルトでカタカナのフリガナを返しますが、セルのフリガナ設定を「ひらがな」に変更すると、ひらがなで返すようになります。
設定変更の手順は以下の通りです。
- フリガナを取得したいセルを選択する
- 「ホーム」タブの「フリガナの表示/非表示」の横にある矢印をクリックする
- 「フリガナの設定」を選択する
- 「種類」で「ひらがな」を選択する
実践例5:データ入力の品質管理
全角半角の混在チェック
LEN関数とLENB関数を使って、データに全角半角の混在がないかチェックします。
=IF(LEN(ASC(A2))=LEN(A2), "半角統一済み", "全角文字を含む")
ASC関数で半角に変換した結果とLEN関数の文字数が一致すれば、元のデータは既に半角に統一されています。
一括クレンジングの数式
電話番号や郵便番号など、半角に統一すべきデータに対する一括クレンジング数式です。
=TRIM(ASC(CLEAN(A2)))
ASC関数で半角変換し、CLEAN関数で制御文字を除去し、TRIM関数でスペースを整理します。
カナ氏名の全角統一チェック
フリガナが全角カタカナに統一されているかを確認します。
=IF(A2=JIS(A2), "全角統一済み", "半角文字を含む")
複数関数の組み合わせパターン
住所データの一括整理
住所データの全角半角を整理する際の組み合わせパターンです。
| 目的 | 数式 |
|---|---|
| 全体を半角に変換 | =ASC(A2) |
| 全体を全角に変換 | =JIS(A2) |
| 半角変換+スペース整理 | =TRIM(ASC(A2)) |
| 全角変換+スペース整理 | =TRIM(JIS(A2)) |
| 半角変換+制御文字除去+スペース整理 | =TRIM(ASC(CLEAN(A2))) |
名簿データの総合整理
名簿データを一括で整理する際は、複数の関数を組み合わせます。
電話番号列の整理(半角統一+スペース除去)は次の通りです。
=SUBSTITUTE(TRIM(ASC(A2)), " ", "")
フリガナ列の整理(全角統一+スペース整理)は次の通りです。
=TRIM(JIS(B2))
メールアドレス列の整理(半角統一+小文字統一+スペース除去)は次の通りです。
=TRIM(LOWER(ASC(C2)))
Google スプレッドシートでの互換性
ASC関数とJIS関数はGoogle スプレッドシートでは使用できません。Google スプレッドシートで全角半角変換を行うには、Google Apps Scriptを使用する必要があります。PHONETIC関数もGoogle スプレッドシートではサポートされていません。これらの関数はExcel固有の機能です。
まとめ
ASC関数、JIS関数、PHONETIC関数は、日本語データの管理に特化した関数です。
- ASC関数は全角を半角に変換する(電話番号、郵便番号、メールアドレスの統一に有効)
- JIS関数は半角を全角に変換する(フリガナのカタカナ統一に有効)
- PHONETIC関数はセルのフリガナ情報を取得する(名簿管理に便利)
- 全角の濁音・半濁音は半角変換時に2文字になるため文字数が変わることがある
- TRIM関数やCLEAN関数と組み合わせることで効率的なデータクレンジングが可能
- これらの関数はGoogle スプレッドシートでは使用できないため注意が必要
データの全角半角統一は、検索や集計の精度に直結します。インポートしたデータは早い段階で統一処理を行うことをおすすめします。