ExcelのCODE関数の使い方|文字を文字コード番号に変換する方法

スポンサーリンク

「このセルに入っている文字、見た目は同じなのに検索でヒットしない…」。
こんな経験、ありませんか?

実は、見た目が同じでも文字コードが違う文字は別物として扱われます。
ExcelのCODE関数を使えば、文字の正体を文字コード番号で確認できます。
この記事では、基本の使い方からデータ検証の実務テクニックまで紹介します。
CHAR関数との違いもまとめたので、ぜひ参考にしてください。

CODE関数とは?

CODE(コード)関数は、文字列の先頭1文字に対応する文字コード番号を返す関数です。

たとえば =CODE("A") と入力すると「65」が返ります。
65はアルファベット大文字Aの文字コード番号です。

CHAR関数が「番号→文字」の変換なら、CODE関数は「文字→番号」の逆変換にあたります。
ペアで覚えておくと便利ですよ。

NOTE

CODE関数はExcel 2007以降すべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で利用可能です。

CODE関数の書き方(構文と引数)

基本構文

=CODE(文字列)

引数の説明

引数必須/省略可説明
文字列必須文字コード番号を調べたい文字列を指定

引数はたったの1つです。
文字列を直接入力するか、セル参照で指定します。

文字列が2文字以上の場合は、先頭の1文字だけが対象になります。
たとえば =CODE("ABC") は先頭の「A」の番号「65」を返します。

Windows版ExcelではANSI文字セット、Mac版ではMacintosh文字セットが使われます。
アルファベットや数字、基本的な記号は共通なので、通常の業務では違いを意識する必要はありません。

CODE関数の基本的な使い方

文字列を直接指定して番号を調べる

アルファベットの文字コード番号を調べてみましょう。

=CODE("A")

結果は「65」です。

同じように =CODE("B") なら「66」、=CODE("Z") なら「90」が返ります。
小文字は97から始まります。

=CODE("a")

結果は「97」です。
大文字と小文字では文字コード番号が異なる点がポイントです。

セル参照で文字列を指定する

セルに入力した文字をそのまま引数に使うこともできます。
セルA1に「Hello」が入っている場合、次のように書きます。

=CODE(A1)

結果は「72」です。
先頭の「H」の文字コード番号が返ります。

A列にいろいろな文字を入力して、B列でCODE関数を使えば文字コード一覧表が作れますよ。

主要な文字コード早見表

よく使う文字と文字コード番号をまとめました。
CODE関数の結果と照らし合わせて確認するときに便利です。

文字CODE関数の結果用途・備考
タブ文字9列の区切り(TSV形式)
改行(LF)10セル内改行
半角スペース32空白文字
! ” # $ % & ‘ ( ) * + , – . /33〜47記号
0〜948〜57数字
A〜Z65〜90大文字アルファベット
a〜z97〜122小文字アルファベット

TIP

アルファベットの大文字は65〜90、小文字は97〜122で、差は常に32です。=CODE("a")-CODE("A") は「32」になります。この規則性を利用すると、大文字・小文字の判定にも使えます。

CODE関数の実務活用パターン

CODE関数は文字の種類を判別するのに便利です。
文字コード番号のルールを使って、データの分類や検証を自動化できます。

パターン1:先頭文字がアルファベットか数字かを判定する

商品コードや顧客IDの先頭文字によってデータを分類するパターンです。
A2にデータが入っているとします。

=IF(AND(CODE(A2)>=65, CODE(A2)<=90), "英字", IF(AND(CODE(A2)>=48, CODE(A2)<=57), "数字", "その他"))

先頭がA〜Zなら「英字」、0〜9なら「数字」、それ以外は「その他」と表示します。
大文字小文字の両方をチェックしたい場合は、条件を追加してください。

=IF(OR(AND(CODE(A2)>=65, CODE(A2)<=90), AND(CODE(A2)>=97, CODE(A2)<=122)), "英字", IF(AND(CODE(A2)>=48, CODE(A2)<=57), "数字", "その他"))

パターン2:大文字と小文字を判定する

アルファベットが大文字か小文字かをCODE関数で判別するパターンです。
EXACT関数でも判定できますが、CODE関数なら番号で判定するので仕組みがわかりやすいです。

=IF(AND(CODE(A2)>=65, CODE(A2)<=90), "大文字", IF(AND(CODE(A2)>=97, CODE(A2)<=122), "小文字", "英字以外"))

A2の先頭がA〜Z(65〜90)なら「大文字」、a〜z(97〜122)なら「小文字」と返します。

TIP

大文字・小文字の変換にはUPPER関数LOWER関数が便利です。CODE関数はあくまで「判定」に使い、「変換」は専用の関数に任せるのがおすすめです。

パターン3:見えない文字(不可視文字)を検出する

見た目では判別できない文字をCODE関数で見つけるパターンです。
VLOOKUP関数やCOUNTIF関数で一致しないとき、原因の特定に役立ちます。

=CODE(A2)

結果が「32」なら半角スペース、「160」ならノーブレークスペース(NBSP)です。
見た目は同じ空白でも、文字コードが違えばExcelは別の文字として扱います。

ノーブレークスペースが原因でデータが一致しない場合は、SUBSTITUTE関数で置換しましょう。

=SUBSTITUTE(A2, CHAR(160), " ")

CHAR関数のCHAR(160)でノーブレークスペースを指定し、半角スペースに置き換えています。

パターン4:CHAR関数と組み合わせてアルファベット連番を作る

CODE関数で取得した番号に1を足してCHAR関数で文字に戻すと、次のアルファベットが得られます。
A2に「A」が入っているとします。

=CHAR(CODE(A2)+1)

結果は「B」です。
CODE関数で「A」の番号65を取得し、1を足した66をCHAR関数で文字に戻しています。

この仕組みを使えば、列のアルファベット連番を自動生成できます。

よくあるエラーと対処法

CODE関数は引数が1つだけのシンプルな関数ですが、いくつか注意点があります。

症状原因対処法
#VALUE!引数が空文字(””)空文字にはコード番号がないためエラーになります。IF関数で空判定を追加してください
#VALUE!参照セルが空(未入力)上と同じ。=IF(A2="", "", CODE(A2)) で空セルを回避できます
#NAME?関数名のスペルミス「CODE」のスペルを確認してください
想定外の数値全角文字やUnicode文字CODE関数はANSI文字セット(1〜255)が対象です。日本語の文字コードを調べたい場合はUNICODE関数を使いましょう

NOTE

CODE関数に空文字を渡すと#VALUE!エラーになります。一覧表でCODE関数を使うときは =IF(A2="", "", CODE(A2)) のようにIF関数を組み合わせるのがおすすめです。

似た関数との違い・使い分け

CHAR関数(逆変換)

CHAR関数は、CODE関数と逆の働きをします。
CODE関数が「文字→番号」なら、CHAR関数は「番号→文字」です。

関数動作使用例結果
CODE文字→番号=CODE(“A”)65
CHAR番号→文字=CHAR(65)A

CODE関数とCHAR関数はセットで覚えておくと便利です。
たとえばCODE関数で文字の番号を調べ、計算した番号をCHAR関数で別の文字に変換する、といった使い方ができます。

UNICODE関数(Unicode対応版)

UNICODE関数は、CODE関数のUnicode対応版です。

比較項目CODE関数UNICODE関数
対応範囲1〜255(ANSI)1〜1,114,111(Unicode)
日本語文字セット依存対応
絵文字非対応対応
対応バージョンExcel 2007以降Excel 2013以降

アルファベットや基本記号の番号を調べるならCODE関数で十分です。
日本語の文字コードを調べたい場合は、UNICODE関数を使いましょう。

文字変換関数の全体像

文字の変換に関する関数をまとめて整理しておきます。

関数変換内容記事リンク
CODE文字→文字コード番号この記事
CHAR文字コード番号→文字CHAR関数の使い方
UNICHARUnicode番号→文字UNICHAR関数の使い方
ASC全角を半角に変換ASC関数の使い方
JIS半角を全角に変換JIS関数の使い方
SUBSTITUTE指定文字を置換SUBSTITUTE関数の使い方

まとめ

CODE関数は =CODE(文字列) と書くだけで、文字の文字コード番号を調べられるシンプルな関数です。

  • 引数は文字列の1つだけ(先頭の1文字が対象)
  • データ分類や不可視文字の検出など、文字の種類を判定する場面で活躍
  • 空文字を渡すと#VALUE!エラーになるのでIF関数でガードする
  • CHAR関数は逆変換(番号→文字)のペア関数
  • Unicode対応が必要ならUNICODE関数を使う

関連記事

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