概要
CODE関数は「文字列の先頭1文字の文字コード(数値)」を返します。どの文字が入っているかを“数値で判定”できるため、半角/全角の見分け、記号の違い(ハイフンと長音など)、改行やタブといった制御文字の検出に役立ちます。対になる関数はCHARで、取得したコードから文字へ戻せます。
基本の使い方
書式
=CODE(文字列)
- 先頭1文字のみが対象です。2文字目以降は評価されません。
例
=CODE("A") // 65
=CODE("a") // 97
=CODE(CHAR(10)) // 10(改行)
=CODE(CHAR(9)) // 9(タブ)
具体例
先頭がスペースかどうかを判定
=IF(CODE(A2)=32,"先頭は半角スペース","スペース以外")
半角スペースはコード32。先頭に空白が紛れているかを数値で確実に判断できます。
記号の種類を識別(ハイフン/全角長音)
=CODE(B2)
半角ハイプン「-」と全角長音「-」はコードが異なるため、取り込みデータの揺れを検出できます。
制御文字の検出(改行・タブ)
=IF(OR(CODE(C2)=10,CODE(C2)=9),"改行/タブあり","通常文字")
見えない改行やタブを先頭に含むデータを早期に見つけられます。
応用テンプレート
文字コードから文字へ戻す(CHARとの往復)
=CHAR(CODE(D2))
先頭文字を「コード→文字」に戻して確認できます。
半角スペースなら削除して整形
=IF(CODE(E2)=32,TRIM(E2),E2)
先頭が半角スペースならTRIMで整えて返します。
先頭が制御文字ならCLEANで除去
=IF(CODE(F2)<32,CLEAN(F2),F2)
コードが32未満(不可視の制御文字)の場合、CLEANで削除します。
先頭が数字か英字かを判定
=IF(AND(CODE(G2)>=48,CODE(G2)<=57),"数字",
IF(OR(AND(CODE(G2)>=65,CODE(G2)<=90),AND(CODE(G2)>=97,CODE(G2)<=122)),"英字","その他"))
先頭文字の種類で分岐処理が可能です。
よくあるつまずきと対策
先頭1文字しか見ない
CODEは常に“最初の1文字”です。文字列全体を検査したい場合はLEFTで1文字ずつ取り出して判定します。
半角/全角でコードが変わる
同じ見た目でも半角と全角は別コード。整形はSUBSTITUTEで統一したうえで扱うと安定します。
不可視文字の扱い
改行(10)やタブ(9)などは見えませんが、CODEで数値確認できます。除去はCLEANやSUBSTITUTEを使います。
Unicode文字
日本語などの多言語文字はUnicodeコードポイントが返ります。より詳細に扱う場合はUNICODE/UNICHAR(Microsoft 365以降)も併用を検討します。
例題
問題1: A2セルの先頭文字のコードをB2に表示してください。
解答例:
=CODE(A2)
問題2: C2セルの先頭が半角スペースなら「空白あり」、それ以外なら「OK」とD2に表示してください。
解答例:
=IF(CODE(C2)=32,"空白あり","OK")
問題3: E2セルの先頭が改行(CHAR(10))またはタブ(CHAR(9))なら「制御文字」をF2に表示し、それ以外は空欄にしてください。
解答例:
=IF(OR(CODE(E2)=10,CODE(E2)=9),"制御文字","")
問題4: G2セルの先頭が数字なら「数字」、英字なら「英字」、それ以外なら「その他」とH2に表示してください。
解答例:
=IF(AND(CODE(G2)>=48,CODE(G2)<=57),"数字",
IF(OR(AND(CODE(G2)>=65,CODE(G2)<=90),AND(CODE(G2)>=97,CODE(G2)<=122)),"英字","その他"))
問題5: I2セルの先頭が不可視文字(コード32未満)ならCLEANで除去し、結果をJ2に表示してください。
解答例:
=IF(CODE(I2)<32,CLEAN(I2),I2)
まとめ
CODEは“見えない違い”を数値で見抜く関数です。先頭文字の性質(半角/全角、記号種別、制御文字)をコードで判定し、TRIM・CLEAN・SUBSTITUTE・CHARと組み合わせれば、取り込みデータのゆれを安全に整えられます。講師としての要点は「CODEで検出、整形は他関数で仕上げる」。この流れを覚えると、文字列前処理が一気に安定します。
