CHAR関数の基本的な使い方(スプレッドシート)
「数式の中で改行を入れたいけど、やり方がわからない…」。スプレッドシートで複数の情報を1つのセルにまとめたいとき、こんな壁にぶつかったことはありませんか?
セル内で改行するにはキーボード操作だけでなく、数式でも改行を挿入する方法があります。そのカギとなるのがCHAR関数です。
CHAR関数は文字コード(数値)を対応する文字に変換する関数です。この記事ではCHAR関数の基本から、CHAR(10)を使ったセル内改行テクニック、CODE関数との逆関数関係まで解説しますよ。
読み方と語源
CHAR関数の読み方は「キャラクター」です。「Character(文字)」の略で、数値を文字に変換するという機能をそのまま表しています。
構文と引数の説明
CHAR関数の構文はこちらです。
=CHAR(数値)
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 文字に変換したいUnicode値(1〜1114111の整数) |
引数は1つだけなのでとてもシンプルです。数値を指定すると、対応する文字を返してくれます。
基本的な書き方の例
アルファベットの「A」はUnicode値が65です。CHAR関数で確認してみましょう。
=CHAR(65)
→ 「A」
数値65が大文字のAに変換されました。小文字のaは97です。
=CHAR(97)
→ 「a」
数字の「0」はUnicode値が48です。
=CHAR(48)
→ 「0」
この「0」は数値のゼロではなく、テキストとしての「0」が返ります。CHAR関数は常にテキストを返す点を覚えておいてくださいね。
よく使う文字コード一覧
CHAR関数で使う頻度の高い文字コードを一覧にまとめます。
| 文字コード | CHAR関数 | 返される文字 | 用途 |
|---|---|---|---|
| 9 | =CHAR(9) | タブ | タブ区切りデータの作成 |
| 10 | =CHAR(10) | 改行(LF) | セル内改行(最重要) |
| 13 | =CHAR(13) | 復帰(CR) | Windows系の改行コード |
| 32 | =CHAR(32) | スペース | 半角スペースの挿入 |
| 34 | =CHAR(34) | “ | 数式内でダブルクォーテーションを使いたいとき |
| 39 | =CHAR(39) | ‘ | シングルクォーテーションの挿入 |
| 48〜57 | =CHAR(48)〜CHAR(57) | 0〜9 | テキストとしての数字 |
| 65〜90 | =CHAR(65)〜CHAR(90) | A〜Z | 大文字アルファベット |
| 97〜122 | =CHAR(97)〜CHAR(122) | a〜z | 小文字アルファベット |
実務で圧倒的に使う頻度が高いのはCHAR(10)の改行です。次のセクションで詳しく解説しますね。
CHAR(10)でセル内改行するテクニック
CHAR関数の最も実用的な使い方は、CHAR(10)を使ったセル内改行です。数式の中で改行を挿入できるので、複数のセルの値を1つのセルに改行付きでまとめられます。
基本: 2つのセルを改行で結合する
A1に「東京都」、B1に「千代田区」が入っている場合です。
=A1&CHAR(10)&B1
→ 「東京都
千代田区」
&演算子でセルの値とCHAR(10)をつなげるだけです。とてもシンプルですよね。
「テキストを折り返す」を有効にする
CHAR(10)で改行を入れても、セルの書式設定で「テキストを折り返す」が無効だと1行で表示されます。メニューバーの「テキストを折り返す」ボタンをクリックして有効にしてください。
3つ以上のセルを改行で結合する
住所の都道府県・市区町村・番地を1セルにまとめる例です。
=A1&CHAR(10)&B1&CHAR(10)&C1
→ 「東京都
千代田区
丸の内1-1-1」
&CHAR(10)&を区切りとして挟んでいくだけです。ただし、結合するセルが多いと数式が長くなります。
TEXTJOIN + CHAR(10)で複数セルを一括結合
セルが多い場合はTEXTJOIN関数を使うとスッキリ書けます。
=TEXTJOIN(CHAR(10), TRUE, A1:A5)
この数式はA1からA5の値をCHAR(10)(改行)で区切って結合します。第2引数のTRUEは空のセルを無視する設定です。5個、10個と結合するセルが増えても数式が変わらないのが便利ですよ。
SUBSTITUTE + CHAR(10)で改行を除去する
逆にセル内の改行を取り除きたい場合はSUBSTITUTE関数を使います。
=SUBSTITUTE(A1, CHAR(10), "")
CHAR(10)を空文字に置き換えることで、すべての改行が除去されます。改行をスペースに置き換えたい場合はこちらです。
=SUBSTITUTE(A1, CHAR(10), " ")
Webからコピーしたデータに不要な改行が入っているときに重宝しますよ。制御文字をまとめて除去したい場合はCLEAN関数も検討してみてください。
CHAR関数の実務パターン集
数式内でダブルクォーテーションを使う
数式の中でダブルクォーテーション(”)を文字として使いたい場面があります。通常は""(2つ重ねる)で対応しますが、CHAR(34)を使う方法もあります。
=CHAR(34)&A1&CHAR(34)
→ 「"東京都"」
""""&A1&""""と書くよりも、CHAR(34)のほうが見やすいと感じる方も多いでしょう。
アルファベット列の番号を列名に変換する
CHAR関数を使えば、列番号からアルファベットの列名を取得できます。
=CHAR(64+1)
→ 「A」(1列目)
=CHAR(64+3)
→ 「C」(3列目)
=CHAR(64+26)
→ 「Z」(26列目)
Aの文字コードが65なので、64に列番号を足すとその列のアルファベットが得られます。26列目(Z列)までの変換に使えるテクニックですよ。
連続したアルファベットを生成する
A〜Zの26文字を連続で生成したい場合は、ROW関数と組み合わせます。
=CHAR(64+ROW(A1))
この数式をA1に入力して下方向にコピーすると、A、B、C…Zと連続で生成できます。選択肢のラベル付けやナンバリングに便利です。
CODE関数との違い・使い分け(逆関数関係)
CHAR関数とCODE関数は「数値→文字」と「文字→数値」の逆の関係にあります。セットで覚えておくと便利です。
比較表
| 項目 | CHAR | CODE |
|---|---|---|
| 変換方向 | 数値→文字 | 文字→数値 |
| 読み方 | キャラクター | コード |
| 構文 | =CHAR(数値) | =CODE(文字列) |
| 引数 | Unicode値(数値) | 文字列(先頭1文字を変換) |
| 戻り値 | テキスト | 数値 |
逆変換の確認
CHAR関数とCODE関数を連続で適用すると、元の値に戻ります。
=CODE(CHAR(65))
→ 65(元の数値に戻る)
=CHAR(CODE("A"))
→ 「A」(元の文字に戻る)
つまり CODE(CHAR(n)) = n と CHAR(CODE(文字)) = 文字 が成り立ちます。
どちらを使うべきか
次の基準で選んでみてください。
実務ではCHAR関数を使う場面のほうが圧倒的に多いです。特にCHAR(10)のセル内改行は覚えておいて損はありませんよ。
よくあるエラーと対処法
CHAR関数で発生しやすいトラブルをまとめます。
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数が数値でない、または範囲外 | 1〜1114111の整数を指定する |
| 改行が表示されない | 「テキストを折り返す」が無効 | セルの書式設定で折り返しを有効にする |
| 空白に見える文字が返る | 制御文字(CHAR(1)〜CHAR(31)など)を指定した | 制御文字は画面上見えない。意図した文字コードか確認する |
| 文字化けする | 対応するフォントがない文字コードを指定した | 一般的な文字コード(一覧表参照)を使う |
いちばん多いのが「CHAR(10)で改行したのに1行のまま表示される」ケースです。「テキストを折り返す」を有効にするのを忘れずに設定してくださいね。
まとめ
スプレッドシートのCHAR関数の使い方を振り返りましょう。
| 項目 | 内容 |
|---|---|
| 読み方 | キャラクター |
| 機能 | 文字コード(数値)を対応する文字に変換する |
| 構文 | =CHAR(数値) |
| 最重要テクニック | CHAR(10)でセル内改行 |
| 逆関数 | CODE(文字→数値) |
| 注意点 | 改行表示には「テキストを折り返す」が必要 |
CHAR関数の出番でいちばん多いのはCHAR(10)のセル内改行です。TEXTJOIN関数やCONCATENATE関数と組み合わせれば、複数のセルの値を改行付きで1セルにまとめられますよ。
改行を除去したいときはSUBSTITUTE関数でCHAR(10)を空文字に置き換えてください。制御文字をまとめて除去したい場合はCLEAN関数も活用してみてくださいね。
