「Excelのセルに改行を入れたいがAlt+Enterしか知らない」「A・B・C……とアルファベット連番をROWで自動生成できると聞いたが書き方がわからない」「データに目に見えない制御文字が混じっていてSUBSTITUTEで消せない」——そんな場面で活躍するのがCHAR関数とCODE関数です。
CHAR関数は文字コードを指定してその文字を返す関数、CODE関数は指定した文字の文字コードを返す関数です。単体では地味に見えますが、セル内改行・アルファベット連番生成・制御文字クレンジング・特殊記号の動的挿入といった実務の痒いところに手が届く場面で欠かせない存在です。本記事では2026年最新版として、構文の仕組みから業務別の活用パターン、MOS Excel 365試験との関係まで体系的に解説します。
「数式でセル内改行を自動化したい」「文字コードを使ったデータ整形を覚えたい」という方はぜひ最後までご覧ください。
CHAR関数の基本構文と仕組み
CHAR関数は、Windowsの文字コード体系(コードページ1252またはANSI)に基づいて、指定した数値に対応する文字を1文字返す関数です。Excelがインストールされているシステムのコードページに依存するため、日本語環境では主にShift-JISの拡張範囲とANSI基本範囲が対象になります。
構文:=CHAR(数値)
- 数値:1以上255以下の整数。使用するコードページに対応する文字コードを指定します。
数値が1未満または255を超えるとエラー(#VALUE!)になります。セル参照・数式の計算結果を引数に使うことができます。
よく使う文字コード早見表
| コード | 返る文字 | 主な用途 |
|---|---|---|
| 9 | 水平タブ(Tab) | テキスト結合時の区切り |
| 10 | ラインフィード(LF) | Excelセル内改行(最頻用) |
| 13 | キャリッジリターン(CR) | Windows改行(CRLFの構成要素) |
| 32 | 半角スペース | 文字列結合時のスペース挿入 |
| 65 | A(大文字アルファベット先頭) | 連番生成の基点 |
| 90 | Z(大文字アルファベット末尾) | 連番の終点確認 |
| 97 | a(小文字アルファベット先頭) | 小文字連番の基点 |
| 122 | z(小文字アルファベット末尾) | 小文字連番の終点確認 |
| 160 | ノーブレークスペース(NBSP) | 改行されない空白(コピー元データに混入しがち) |
このうち実務で圧倒的に使用頻度が高いのはコード10(ラインフィード)です。セル内で自動改行を数式で挿入したい場合のほぼすべてで登場します。
CODE関数の基本構文と仕組み
CODE関数はCHAR関数の逆引き版です。文字列の先頭1文字の文字コードを数値で返します。2文字以上を指定しても先頭の1文字のコードだけを返すため、複数文字の診断には工夫が必要です。
構文:=CODE(文字列)
- 文字列:コードを調べたい文字または文字列(先頭1文字のみ評価)。文字列が空のとき(””)は
#VALUE!を返します。
CODE関数の使い方サンプル
| 数式 | 結果 | 意味 |
|---|---|---|
| =CODE(“A”) | 65 | 大文字Aの文字コード |
| =CODE(“a”) | 97 | 小文字aの文字コード |
| =CODE(“abc”) | 97 | 先頭文字”a”のコードのみ返る |
| =CODE(“ ”) | 160 | ノーブレークスペースと判明する場合がある |
| =CODE(A1) | — | A1の先頭文字のコードを動的に取得 |
CODE関数の真価は「見た目は空白なのに削除できない文字の正体を突き止める」ときに発揮されます。コピーしてきたWebテキストに混じるノーブレークスペース(コード160)は半角スペース(コード32)と見た目が同じで、SUBSTITUTEで" "を置換しても消えません。CODE関数で診断してからCHAR(160)を引数に使えば確実に除去できます。
実務パターン1:CHAR(10)でセル内改行を数式で自動挿入する
手作業でAlt+Enterを押してセル内改行を入れている方は多いですが、数式を使えば条件に応じて改行を動的に制御できます。住所の結合・氏名+所属の表示・複数行ラベルの自動生成など、実務で幅広く活用できます。
CHAR(10)の基本的な使い方
CHAR(10)はラインフィード(LF)文字を返します。文字列結合演算子&またはCONCAT・TEXTJOINと組み合わせて使います。
- 2つの文字列を改行で結合する:
=A2&CHAR(10)&B2 - 郵便番号+都道府県+住所を改行区切りで結合する:
=A2&CHAR(10)&B2&CHAR(10)&C2
重要:CHAR(10)を使っても、対象セルの「折り返して全体を表示する」設定が有効でないと改行が表示されません。数式を入力した後、セルを選択してリボンの「ホーム」タブ→「折り返して全体を表示する」をオンにしてください。
条件付きで改行を挿入するパターン
B2セルが空のときは改行を省略し、値がある場合のみ改行を挟む例です。
=A2&IF(B2="","",CHAR(10)&B2)
この数式はA2の内容を基本として、B2が空欄なら何も追加せず、B2に値があれば改行してB2の内容を連結します。宛名ラベルや名簿で「部署名がある人はA2氏名の下に部署名を表示、ない人は省略」といった処理に役立ちます。
CHAR(10)を含む文字列を検索する
FIND関数やSUBSTITUTE関数と組み合わせることで、セル内改行の位置を調べたり、改行を別の区切り文字に置換したりできます。
| 目的 | 数式例 | 説明 |
|---|---|---|
| 改行の位置を取得 | =FIND(CHAR(10),A2) | 最初の改行が何文字目にあるか |
| 改行をスペースに置換 | =SUBSTITUTE(A2,CHAR(10),” “) | セル内改行を半角スペースに変換(1行に戻す) |
| 改行をカンマに置換 | =SUBSTITUTE(A2,CHAR(10),”,”) | CSV形式への変換などに利用 |
実務パターン2:アルファベット連番と記号を数式で自動生成する
文書の選択肢を「A・B・C…」とアルファベットで順番に振りたい場合、手入力は後から並べ替えるたびに修正が必要です。CHAR関数とROW関数を組み合わせれば、行を入れ替えても連番が自動更新されます。
大文字アルファベット連番の生成
大文字アルファベットのコードは65(A)から90(Z)までです。ROW関数を基点からの相対行番号に変換して加算します。
- 1行目にA、2行目にB……と生成する(1行目から開始):
=CHAR(64+ROW(A1)) - 3行目から開始してC・D・E……と生成する:
=CHAR(64+ROW(A1))を3行目に入力して下にコピー(ROW(A1)が相対参照で自動更新される)
ROW(A1)はA1のある行番号、つまり1を返します。数式を1行下にコピーするとROW(A2)になって2を返すため、CHAR(66)=Bが得られます。このパターンで連番を制御できます。
小文字アルファベット連番の生成
小文字aのコードは97です。同じ考え方で次のように書きます。
=CHAR(96+ROW(A1))
A~Zの一覧を一気に生成する(SEQUENCE連携)
Excel 365ではSEQUENCE関数を使うとさらにシンプルに書けます。
- A~Zの26文字を縦1列に生成:
=CHAR(SEQUENCE(26,1,65)) - A~Zを横1行に生成:
=CHAR(SEQUENCE(1,26,65))
SEQUENCE(26,1,65)は「26行×1列で65から始まる連番配列」を返し、それをCHARに渡すことで26文字のアルファベット配列がスピルします。スピル対応の動的配列関数として使え、A列に1つの数式を入力するだけでA2:A27に自動展開されます。
実務パターン3:CODE関数でデータをクレンジングする
外部システムやWebからコピーしたデータには、目に見えない制御文字や特殊空白が混入していることがあります。SUBSTITUTEで消そうとしても、引数に入力できる文字と実際の文字が一致していなければ削除できません。CODE関数で先に正体を突き止めるのがクレンジングの第一歩です。
手順1:CODEで先頭文字のコードを確認する
怪しい文字が含まれていそうなセルA2の先頭を診断する場合:
=CODE(A2)
結果が160ならノーブレークスペース、13なら古いMac形式のキャリッジリターン、10ならラインフィードです。Webスクレイピングや古いシステムからのエクスポートで頻出します。
手順2:CHARで置換対象文字を指定して削除する
コードが判明したら、SUBSTITUTEの第2引数にCHAR(コード)を使います。
| 対象文字 | コード | 削除の数式 |
|---|---|---|
| ノーブレークスペース | 160 | =SUBSTITUTE(A2,CHAR(160),””) |
| キャリッジリターン(CR) | 13 | =SUBSTITUTE(A2,CHAR(13),””) |
| ラインフィード(LF) | 10 | =SUBSTITUTE(A2,CHAR(10),””) |
| CR+LF(Windows改行) | 13+10 | =SUBSTITUTE(A2,CHAR(13)&CHAR(10),””) |
CLEAN関数との使い分け
Excel には制御文字(コード1~31)をまとめて削除するCLEAN関数があります。ただしCLEANはコード160のノーブレークスペースは削除しません。CLEANで消えない文字はCODE関数で正体を確認し、SUBSTITUTE(A2,CHAR(コード),””)で個別に対処するという組み合わせが実務では効果的です。
| 削除対象 | CLEAN | SUBSTITUTE+CHAR |
|---|---|---|
| コード1~31の制御文字全般 | ○(一括削除) | △(個別指定が必要) |
| コード160のノーブレークスペース | ×(削除不可) | ○(CHAR(160)で指定可) |
| 特定コードのみを選んで削除 | ×(全制御文字が対象) | ○(コードを指定できる) |
実務では=SUBSTITUTE(CLEAN(A2),CHAR(160),"")のようにCLEANとSUBSTITUTEを重ねるパターンが多用されます。一括処理で効率よくクレンジングできます。
実務パターン4:特殊記号・チェックマークを数式で挿入する
Wingdingsフォントを使うと、CHAR関数で記号を挿入できます。セルのフォントをWingdingsに設定した状態で特定のコードを使うと、チェックマーク(✔)や×印(✘)などの記号が表示されます。
| フォント | コード | 表示される記号 | 用途例 |
|---|---|---|---|
| Wingdings | 252 | ✔(チェックマーク) | タスク完了・合否表示 |
| Wingdings | 251 | ✓(軽めのチェック) | チェックリスト |
| Wingdings | 56 | ×(×印) | 不可・未完了の表示 |
| Wingdings 2 | 82 | ✔(別デザイン) | デザイン重視の帳票 |
フォントをWingdingsに変えたセルに=CHAR(252)と入力すると✔が表示されます。IF関数と組み合わせて=IF(B2="完了",CHAR(252),"")とすれば、B2が「完了」のときだけチェックマークを動的に表示するリストが作れます。ただし、フォントをWingdingsにしたセルのテキストは他のフォントでは別の文字として読まれるため、ファイルを共有する際はフォントが確実に引き継がれる環境かどうかを確認してください。
CHAR・CODE関数とMOS Excel 365試験の関係
MOS Excel 365(MO-210)の出題範囲はマイクロソフトが公開する公式PDFに定義されており、CHAR・CODE関数は「セルやセル範囲のデータの管理」の領域に関連します。具体的には「セルのデータの書式設定」や「データの入力と操作」のなかでデータを整形・変換する操作として知識が問われることがあります。
分野別の出題数・配点は公表されていません。試験の位置づけとして把握しておくべき事実は以下のとおりです。
| 項目 | 内容 |
|---|---|
| 試験時間 | 50分 |
| 採点 | 1000点満点 |
| 合格点 | 非公開(550点~850点が目安とされる) |
| 受験料 | 一般12,980円・学割9,680円(税込、2026年7月時点) |
| 出題形式 | マルチプロジェクト形式(5個~10個のプロジェクト、1プロジェクトに1~7個の小問) |
| 合格率 | 公表されていません |
試験で問われる可能性がある操作
- セル内改行を含む文字列を数式で結合する(CHAR(10)と&演算子の組み合わせ)
- 文字コードから対応する文字を表示する(CHAR関数の基本操作)
- データのクレンジングでSUBSTITUTEとCHARを組み合わせる
- CLEAN関数では消えない文字をCHAR関数で指定して削除する
学習時間の目安(ハウス統一基準)
MOS Excel 365 アソシエイト(MO-210)全体の学習時間の目安は、初学者で40~60時間、業務でExcelを使っている方で20~30時間です(公式には公表されていないため目安として示します)。1日1時間のペースなら初学者で約2か月、経験者で3~4週間が目安です。CHAR・CODE関数は関数分野のなかでは比較的短時間でマスターできる内容です。まず構文と代表的なコード(10・65・97・160)を覚え、実際に手を動かしてセル内改行とアルファベット連番の数式を作ってみることをおすすめします。
試験直前のチェックポイント
- CHAR関数の引数は数値1つだけ(文字列を渡すとエラー)
- CODE関数は先頭1文字のコードのみ返す(複数文字を渡しても先頭しか評価されない)
- CHAR(10)のセル内改行を表示するには「折り返して全体を表示する」が必要(書式設定の確認をセットで)
- CHAR(160)はCLEANで消えないためSUBSTITUTEと組み合わせる
- アルファベット連番は
=CHAR(64+ROW(A1))パターンをそのまま暗記しておく
CHAR・CODE関数のよくある疑問
Q:MacのExcelでCHAR(10)は使えますか?
使えます。MacのExcelもセル内改行はLF(コード10)を使います。ただしMacとWindowsでコードページが異なる文字(特にコード128~255の一部)は、プラットフォームをまたいでファイルを共有すると表示が変わることがあります。実務では127以下の基本ASCII範囲のコードを使う設計にすると安全です。
Q:CHAR関数で日本語文字(ひらがな・漢字)は出力できますか?
WindowsのANSIコードページ(Shift-JIS拡張)ではCHAR関数の引数は1~255の範囲に限られており、ひらがな・漢字のような2バイト文字の完全な出力はできません。全角カタカナはコード161~239の範囲に一部含まれますが、環境依存が強く実務的ではありません。Unicode文字を扱うにはUNICHAR関数(Excel 2013以降)を使うほうが適切です。
Q:CODEとUNICODE関数の違いは何ですか?
CODE関数はシステムのコードページに基づく文字コードを返しますが、UNICODE関数(Excel 2013以降)はUnicodeコードポイントを返します。日本語環境でひらがな「あ」のUnicodeコードポイントを調べたい場合は=UNICODE("あ")(結果:12354)を使います。一方で=CODE("あ")はShift-JISベースの値を返します。英数字・記号の範囲(ASCII)では両者の結果は一致します。
まとめ:CHAR・CODE関数を使いこなすポイント
CHAR関数は文字コードから文字を生成し、CODE関数は文字から文字コードを取得する逆引きの関係にある2つの関数です。単体では地味ですが、セル内改行の自動制御・アルファベット連番の動的生成・見えない制御文字の診断と除去という場面で、他の関数では置き換えにくい役割を果たします。
- CHAR(10)でセル内改行を数式で挿入し、「折り返して全体を表示する」と組み合わせて表示する
- CHAR(64+ROW(A1))でA~Zの連番を動的に生成できる
- CODE関数で先頭文字のコードを調べて、怪しい文字の正体を突き止める
- コード160のノーブレークスペースはCLEANで消えないため、SUBSTITUTE+CHAR(160)で対処する
- CLEAN+SUBSTITUTE+CHARの組み合わせがデータクレンジングの基本パターン
- MOS試験では「セルやセル範囲のデータの管理」の領域との関連を理解しておく
当サイトでは、Excel・Word・PowerPoint・AccessなどのOffice操作やMOS試験対策に関する情報を幅広く発信しています。ぜひ他の記事もご覧ください。
PR
CHAR・CODE関数を含むExcelの関数体系を図解中心で解説した定番書。Copilot連携の最新情報も収録しており、関数の引数と返り値のイメージをつかむのに最適な一冊です。
PR
実務で頻出の関数を「使える順」に厳選し、SUBSTITUTE・CLEAN・TEXTJOINとの組み合わせパターンまで網羅。データクレンジングの実務に直結する内容が多く、CHAR・CODEの活用シーンと合わせて読むと理解が深まります。
