「このセルに入っている文字、見た目は同じなのに検索でヒットしない…」。
こんな経験、ありませんか?
実は、見た目が同じでも文字コードが違う文字は別物として扱われます。
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〜9 | 48〜57 | 数字 |
| A〜Z | 65〜90 | 大文字アルファベット |
| a〜z | 97〜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関数の使い方 |
| UNICHAR | Unicode番号→文字 | UNICHAR関数の使い方 |
| ASC | 全角を半角に変換 | ASC関数の使い方 |
| JIS | 半角を全角に変換 | JIS関数の使い方 |
| SUBSTITUTE | 指定文字を置換 | SUBSTITUTE関数の使い方 |
まとめ
CODE関数は =CODE(文字列) と書くだけで、文字の文字コード番号を調べられるシンプルな関数です。
- 引数は文字列の1つだけ(先頭の1文字が対象)
- データ分類や不可視文字の検出など、文字の種類を判定する場面で活躍
- 空文字を渡すと#VALUE!エラーになるのでIF関数でガードする
- CHAR関数は逆変換(番号→文字)のペア関数
- Unicode対応が必要ならUNICODE関数を使う
