ExcelのUNICODE関数の使い方|CODE関数との違いも解説

スポンサーリンク

「この文字のコード番号って何だろう?」と思ったことはありませんか?
データの分類や文字種の判定で、文字の正体を調べたい場面は意外と多いものです。

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関数の結果備考
A65英大文字の先頭
Z90英大文字の末尾
a97英小文字の先頭
z122英小文字の末尾
048数字の先頭
957数字の末尾
半角スペース32目に見えない文字
全角スペース12288紛らわしい空白
12354ひらがなの先頭付近
12450カタカナの先頭付近
28450CJK統合漢字
9312囲み文字

TIP

英大文字は65〜90、英小文字は97〜122、数字は48〜57と連番になっています。この規則性を使えば、文字種の判定に活用できます。

CODE関数との違いを比較表で理解する

CODE関数もUNICODE関数と同じく「文字→番号」の変換関数です。
ただし、対応する文字コードの範囲が大きく異なります。

比較項目UNICODE関数CODE関数
対応文字コードUnicode(全域)ANSI / Mac文字セット
返す値の範囲0〜1,114,1110〜255
英字「A」の結果6565
「あ」の結果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系UNICODEUNICHARUnicode全域
ANSI系CODECHAR0〜255

実務活用パターン

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関数でガードする

関連記事

タイトルとURLをコピーしました