「この文字のコード番号って何だろう?」と思ったことはありませんか?
データの分類や文字種の判定で、文字の正体を調べたい場面は意外と多いものです。
ExcelのUNICODE関数を使えば、文字のコードポイントを一発で取得できます。
この記事では、基本の使い方から実務での活用パターンまで紹介します。
CODE関数との違いや、UNICHAR関数との逆変換ペアもまとめました。
UNICODE関数とは?
UNICODE関数は、文字列の先頭1文字に対応するUnicodeコードポイントを返す関数です。
たとえば =UNICODE("A") と入力すると「65」が返ります。
日本語の「あ」なら「12354」です。
アルファベットから漢字、記号まで、あらゆる文字の番号を調べられます。
NOTE
UNICODE関数はExcel 2013以降で使えます。Excel 2016・2019・2021・Microsoft 365にも対応しています。
UNICODE関数の読み方
読み方は「ユニコード関数」です。
Unicodeとは
Unicode(ユニコード)は、世界中の文字に一意の番号を割り当てる国際標準規格です。
この番号のことを「コードポイント」と呼びます。
たとえば「A」にはU+0041(10進数で65)が割り当てられています。
日本語の「あ」はU+3042(10進数で12354)です。
英語・日本語・中国語・絵文字まで、すべての文字に固有の番号があります。
従来の文字コード(ANSIやShift_JIS)は環境によって番号が変わる問題がありました。
Unicodeならどの環境でも同じ番号なので、安心して使えます。
UNICODE関数の使い方(構文・引数)
基本構文
=UNICODE(文字列)
引数の指定方法
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 文字列 | 必須 | コードポイントを調べたい文字列を指定 |
引数はたったの1つです。
文字列を直接入力するか、セル参照で指定します。
文字列が2文字以上の場合は、先頭の1文字だけが対象になります。
たとえば =UNICODE("Excel") は先頭の「E」の番号「69」を返します。
セル参照で使う場合は次のように書きます。
=UNICODE(A1)
A1に「あいうえお」が入っていれば、先頭の「あ」の番号「12354」が返ります。
代表的な文字とコードポイント一覧
| 文字 | UNICODE関数の結果 | 備考 |
|---|---|---|
| A | 65 | 英大文字の先頭 |
| Z | 90 | 英大文字の末尾 |
| a | 97 | 英小文字の先頭 |
| z | 122 | 英小文字の末尾 |
| 0 | 48 | 数字の先頭 |
| 9 | 57 | 数字の末尾 |
| 半角スペース | 32 | 目に見えない文字 |
| 全角スペース | 12288 | 紛らわしい空白 |
| あ | 12354 | ひらがなの先頭付近 |
| ア | 12450 | カタカナの先頭付近 |
| 漢 | 28450 | CJK統合漢字 |
| ① | 9312 | 囲み文字 |
TIP
英大文字は65〜90、英小文字は97〜122、数字は48〜57と連番になっています。この規則性を使えば、文字種の判定に活用できます。
CODE関数との違いを比較表で理解する
CODE関数もUNICODE関数と同じく「文字→番号」の変換関数です。
ただし、対応する文字コードの範囲が大きく異なります。
| 比較項目 | UNICODE関数 | CODE関数 |
|---|---|---|
| 対応文字コード | Unicode(全域) | ANSI / Mac文字セット |
| 返す値の範囲 | 0〜1,114,111 | 0〜255 |
| 英字「A」の結果 | 65 | 65 |
| 「あ」の結果 | 12354(固定) | 環境依存 |
| 環境依存 | なし | あり(Windows / Mac) |
| 対応バージョン | Excel 2013〜 | Excel 2007〜 |
ポイント: アルファベットや数字の範囲では、両方とも同じ値を返します。
たとえば「A」はどちらも65です。
違いが出るのは日本語などのマルチバイト文字です。
UNICODE関数なら「あ」は必ず12354を返します。
CODE関数はOSやロケールの設定によって値が変わるため、注意が必要です。
日本語を扱う業務では、UNICODE関数を使うのがおすすめです。
UNICHAR関数との逆変換ペア
UNICHAR関数は、UNICODE関数と逆の働きをします。
UNICODE関数が「文字→番号」なら、UNICHAR関数は「番号→文字」です。
=UNICODE("A") → 65
=UNICHAR(65) → "A"
=UNICODE("あ") → 12354
=UNICHAR(12354) → "あ"
セットで覚えておくと便利ですよ。
番号を調べてから別の文字に変換する、といった使い方ができます。
| 関数 | 変換方向 | 使用例 | 結果 |
|---|---|---|---|
| UNICODE | 文字→番号 | =UNICODE(“A”) | 65 |
| UNICHAR | 番号→文字 | =UNICHAR(65) | A |
同じように、CODE関数とCHAR関数もペアの関係です。
4つの関数をまとめると次のようになります。
実務活用パターン
UNICODE関数は文字の種類を判別するのに便利です。
コードポイントの規則性を使って、データの検証を自動化できます。
文字種判定(英字・ひらがな・カタカナの識別)
先頭文字がどの文字種かを判定するパターンです。
英大文字かどうかの判定:
=IF(AND(UNICODE(A2)>=65, UNICODE(A2)<=90), "英大文字", "その他")
コードポイント65〜90の範囲なら英大文字です。
ひらがな・カタカナの判定も応用できます。
ひらがなは12353〜12435、カタカナは12449〜12534の範囲です。
=IF(AND(UNICODE(A2)>=12353, UNICODE(A2)<=12435), "ひらがな",
IF(AND(UNICODE(A2)>=12449, UNICODE(A2)<=12534), "カタカナ", "その他"))
ちょっと長く見えますが、やっていることはシンプルです。
コードポイントが特定の範囲に入るかどうかをチェックしているだけです。
全角スペース・特殊文字の検出
データの先頭に全角スペースが紛れ込んでいないかチェックするパターンです。
見た目では全角・半角の区別がつきにくいので、番号で確認するのが確実です。
=IF(UNICODE(LEFT(A2,1))=12288, "全角スペースあり", "OK")
LEFT関数(文字列の左端から指定した文字数を取り出す関数)で先頭1文字を取り出し、UNICODE関数で番号を調べています。
12288なら全角スペース、32なら半角スペースです。
全角スペースを半角に置換したい場合は、SUBSTITUTE関数を組み合わせます。
=SUBSTITUTE(A2, UNICHAR(12288), " ")
UNICHAR関数で全角スペースを指定し、半角スペースに置き換えています。
不要な制御文字を除去したい場合は、CLEAN関数も合わせて使うと効果的です。
よくあるエラーと対処法
UNICODE関数は引数が1つだけのシンプルな関数です。
ただし、いくつか注意点があります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数が空文字(””) | 空文字にはコードポイントがないためエラーになります。IF関数で空判定を追加してください |
| #VALUE! | 参照セルが空(未入力) | =IF(A2="", "", UNICODE(A2)) で空セルを回避できます |
| #VALUE! | 無効なサロゲートペア | 一部の絵文字や特殊文字で発生します。IFERROR関数でエラーを回避するか、該当文字の使用を避けてください |
| #NAME? | 関数名のスペルミス | 「UNICODE」のスペルを確認してください |
| #NAME? | Excel 2010以前を使用 | UNICODE関数はExcel 2013以降で利用可能です |
空セルが含まれるデータでまとめて使う場合は、IF関数で空判定を入れておくのがおすすめです。
=IF(A2="", "", UNICODE(A2))
まとめ
UNICODE関数は =UNICODE(文字列) と書くだけで、文字のコードポイントを調べられる関数です。
- 引数は文字列の1つだけ(先頭の1文字が対象)
- 文字種判定や全角スペース検出など、文字の正体を調べる場面で活躍
- CODE関数と違い、日本語でも環境に依存しない固定値を返す
- UNICHAR関数と逆変換のペアで使うと便利
- 空文字を渡すと#VALUE!エラーになるのでIF関数でガードする
