スプレッドシートのCHAR関数の使い方|CHAR(10)でセル内改行も

スポンサーリンク

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関数は「数値→文字」と「文字→数値」の逆の関係にあります。セットで覚えておくと便利です。

比較表

項目CHARCODE
変換方向数値→文字文字→数値
読み方キャラクターコード
構文=CHAR(数値)=CODE(文字列)
引数Unicode値(数値)文字列(先頭1文字を変換)
戻り値テキスト数値

逆変換の確認

CHAR関数とCODE関数を連続で適用すると、元の値に戻ります。

=CODE(CHAR(65))
→ 65(元の数値に戻る)

=CHAR(CODE("A"))
→ 「A」(元の文字に戻る)

つまり CODE(CHAR(n)) = nCHAR(CODE(文字)) = 文字 が成り立ちます。

どちらを使うべきか

次の基準で選んでみてください。

  • 数式内で改行や特殊文字を挿入したい → CHAR関数
  • セルの文字が何の文字コードか調べたい → CODE関数
  • 文字コード表を作りたい → 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関数も活用してみてくださいね。

タイトルとURLをコピーしました