「数式でセル内改行を入れたいのに、Enterキーを押すと確定されてしまう…」。
こんな経験、ありませんか?
ExcelのCHAR関数を使えば、数式の中で改行や特殊文字を自在に挿入できます。
この記事では、基本の使い方からCHAR(10)で改行を入れる実務テクニックまで紹介します。
CODE関数との違いや文字コード早見表もまとめたので、ぜひ参考にしてください。
CHAR関数とは?
CHAR(キャラクター)関数は、文字コードの番号から対応する文字を返す関数です。
名前は「Character(文字)」の略に由来します。
たとえば =CHAR(65) と入力すると「A」が返ります。
65はアルファベット大文字Aの文字コード番号です。
文字コードとは、コンピュータが文字を管理するために振った番号のことです。
CHAR関数はこの番号を指定して、対応する文字を取り出します。
NOTE
CHAR関数はExcel 2007以降すべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で利用可能です。
CHAR関数の書き方(構文と引数)
基本構文
=CHAR(数値)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 1〜255の範囲で文字コード番号を指定 |
引数はたったの1つです。
1〜255の整数を指定するか、セル参照で数値を渡します。
Windows版ExcelではANSI文字セット、Mac版ではMacintosh文字セットが使われます。
アルファベットや数字、基本的な記号は共通なので、通常の業務では違いを意識する必要はありません。
CHAR関数の基本的な使い方
文字コードからアルファベットを取得する
文字コード65〜90が大文字のA〜Zに対応しています。
実際に試してみましょう。
=CHAR(65)
結果は「A」です。
同じように =CHAR(66) なら「B」、=CHAR(90) なら「Z」が返ります。
小文字は97〜122の範囲です。
=CHAR(97)
結果は「a」です。
セル参照で文字コードを指定する
セルに入力した数値をそのまま引数に使うこともできます。
セルA1に「72」が入っている場合、次のように書きます。
=CHAR(A1)
結果は「H」です。
A列に文字コード番号を並べて、B列でCHAR関数を使えば一覧表が作れますよ。
CHAR関数の実務活用パターン
CHAR関数の出番が最も多いのは、セル内改行の挿入です。
CHAR(10)が改行コード(LF)を表すので、数式の中で改行を入れられます。
パターン1:文字列を改行付きで結合する
「姓」と「名」を1つのセルにまとめつつ、改行で区切りたい場合です。
セルA2に「山田」、B2に「太郎」が入っているとします。
=A2&CHAR(10)&B2
結果は次のようになります。
山田
太郎
&(アンパサンド)で文字列を結合し、間にCHAR(10)を挟んでいます。
WARNING
CHAR(10)で改行を入れても、セルの表示が1行のままになることがあります。対象セルを選んで「ホーム」タブの「折り返して全体を表示する」をオンにしてください。この設定がないと改行が見えません。
パターン2:住所を改行付きで1つのセルにまとめる
請求書や宛名ラベルで、住所を改行区切りで1セルにまとめるパターンです。
A2に「123-4567」、B2に「東京都」、C2に「千代田区1-1」が入っているとします。
="〒"&A2&CHAR(10)&B2&CHAR(10)&C2
結果はこうなります。
〒123-4567
東京都
千代田区1-1
複数のCHAR(10)を使えば、何行でも改行を挿入できます。
TIP
結合するセルが多い場合は、TEXTJOIN関数を使うとスッキリ書けます。
=TEXTJOIN(CHAR(10), TRUE, A2:C2)のように区切り文字にCHAR(10)を指定すれば、セル範囲をまとめて改行付きで結合できます。
パターン3:SUBSTITUTE関数と組み合わせて改行を削除する
CHAR関数で改行を「入れる」だけでなく、改行を「消す」パターンも覚えておくと便利です。
SUBSTITUTE関数と組み合わせます。
=SUBSTITUTE(A2, CHAR(10), "")
A2のセル内改行をすべて削除します。
改行は目に見えない文字なので、直接指定できません。
CHAR(10)で改行コードを指定するのがポイントです。
改行をスペースに置き換えたい場合は、次のように書きます。
=SUBSTITUTE(A2, CHAR(10), " ")
パターン4:タブ文字を挿入してテキスト出力を整形する
CHAR(9)はタブ文字を表します。
タブ区切りのテキストを数式で作りたい場合に使えます。
=A2&CHAR(9)&B2&CHAR(9)&C2
タブ区切りテキストはメモ帳やテキストエディタに貼り付けると列が揃います。
簡易的なTSV(タブ区切り値)データを作るときに便利です。
主要な文字コード早見表
よく使う文字コードをまとめました。
| 文字コード | CHAR関数の結果 | 用途・備考 |
|---|---|---|
| 9 | タブ文字 | 列の区切り(TSV形式) |
| 10 | 改行(LF) | セル内改行の挿入 |
| 13 | 復帰(CR) | Mac旧式の改行コード |
| 32 | 半角スペース | 空白文字 |
| 33〜47 | ! ” # $ % & ‘ ( ) * + , – . / | 記号 |
| 48〜57 | 0〜9 | 数字 |
| 65〜90 | A〜Z | 大文字アルファベット |
| 97〜122 | a〜z | 小文字アルファベット |
TIP
アルファベットの文字コードは連番になっています。
=CHAR(64+ROW(A1))を下にコピーすると、A〜Zの一覧を一瞬で作れます。ROW関数が1, 2, 3…と増えるので、65, 66, 67…に対応するA, B, C…が返る仕組みです。
よくあるエラーと対処法
CHAR関数は引数が1つだけのシンプルな関数ですが、いくつか注意点があります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数が1〜255の範囲外 | 数値が1〜255に収まっているか確認してください |
| #VALUE! | 引数に文字列を指定した | 数値を指定してください。セル参照の場合、参照先が数値か確認しましょう |
| 改行が表示されない | 「折り返し」設定がオフ | 「ホーム」→「折り返して全体を表示する」をオンにしてください |
| #NAME? | 関数名のスペルミス | 「CHAR」のスペルを確認してください |
NOTE
CHAR(10)で改行が表示されない問題は、関数のエラーではなくセルの書式設定が原因です。「折り返して全体を表示する」をオンにすれば表示されます。列幅も十分に確保してくださいね。
似た関数との違い・使い分け
CODE関数(逆変換)
CODE関数は、CHAR関数と逆の働きをします。
CHAR関数が「番号→文字」なら、CODE関数は「文字→番号」です。
| 関数 | 動作 | 使用例 | 結果 |
|---|---|---|---|
| CHAR | 番号→文字 | =CHAR(65) | A |
| CODE | 文字→番号 | =CODE(“A”) | 65 |
CHAR関数とCODE関数はセットで覚えておくと便利です。
たとえばCODE関数で文字の番号を調べ、CHAR関数で別の文字に変換する、といった使い方ができます。
UNICHAR関数(Unicode対応版)
UNICHAR関数は、CHAR関数のUnicode対応版です。
| 比較項目 | CHAR関数 | UNICHAR関数 |
|---|---|---|
| 対応範囲 | 1〜255(ANSI) | 1〜1,114,111(Unicode) |
| 日本語 | 非対応 | 対応 |
| 絵文字 | 非対応 | 対応 |
| 対応バージョン | Excel 2007以降 | Excel 2013以降 |
アルファベットや基本記号ならCHAR関数で十分です。
日本語の文字や絵文字を扱いたい場合は、UNICHAR関数を使いましょう。
文字変換関数の全体像
文字の変換に関する関数をまとめて整理しておきます。
| 関数 | 変換内容 | 記事リンク |
|---|---|---|
| CHAR | 文字コード番号→文字 | この記事 |
| CODE | 文字→文字コード番号 | CODE関数の使い方 |
| UNICHAR | Unicode番号→文字 | UNICHAR関数の使い方 |
| ASC | 全角を半角に変換 | ASC関数の使い方 |
| JIS | 半角を全角に変換 | JIS関数の使い方 |
| SUBSTITUTE | 指定文字を置換 | SUBSTITUTE関数の使い方 |
まとめ
CHAR関数は =CHAR(数値) と書くだけで、文字コード番号から文字を取得できるシンプルな関数です。
- 引数は数値の1つだけ(1〜255の範囲)
- CHAR(10)でセル内改行を挿入できるのが最大の活用ポイント
- 改行を表示するには「折り返して全体を表示する」の設定が必要
- CODE関数は逆変換(文字→番号)のペア関数
- Unicode対応が必要ならUNICHAR関数を使う
