ADVERTISEMENT

【Googleスプレッドシート】CHAR関数とCODE関数で文字とコードを相互変換!特殊文字の扱い

【Googleスプレッドシート】CHAR関数とCODE関数で文字とコードを相互変換!特殊文字の扱い
🛡️ 超解決

Googleスプレッドシートで特殊文字を入力したいけれど、記号が見つからず困った経験はありませんか。また、セル内の文字がどの文字コードなのか調べたいときもあるでしょう。CHAR関数とCODE関数を使えば、文字とコード番号を相互変換でき、特殊文字や制御文字を自在に扱えるようになります。本記事では、この2つの関数の使い方と実践的な応用例を詳しく解説します。

【要点】CHAR関数とCODE関数で文字コード変換をマスターする

  • =CHAR(数値): 指定した数値に対応するUnicode文字を返します。特殊文字や記号の入力に便利です。
  • =CODE(文字列): 文字列の先頭文字のUnicodeコードポイントを返します。文字のコード番号を調べられます。
  • 実用例: 改行の挿入(CHAR(10))、全角半角変換の補助、文字種判別に応用できます。

ADVERTISEMENT

CHAR関数とCODE関数の概要とできること

CHAR関数とCODE関数は、文字と数値(Unicodeコードポイント)を相互変換するための関数です。Unicodeは世界中の文字に一意の番号を割り当てた国際規格で、GoogleスプレッドシートもこのUnicodeを内部で利用しています。

CHAR関数は、1から始まる数値を受け取り、対応する文字を出力します。例えば、=CHAR(65)は「A」、=CHAR(9733)は「★」を返します。一方、CODE関数は、文字列の最初の文字のコード番号を返します。=CODE(“A”)は65、=CODE(“★”)は9733です。これらは対になっており、相互に変換できる関係です。

これらの関数は、キーボードにない特殊文字や制御文字を入力したいとき、あるいは文字の種類を判定したいときに役立ちます。例えば、改行文字(CHAR(10))をセル内で使えば、セル内改行を実現できます。また、データの前処理で全角文字か半角文字かを区別するのにも応用できます。

CHAR関数とCODE関数の基本的な使い方

CHAR関数の構文と基本例

CHAR関数の構文は「=CHAR(数値)」です。数値は1~1114111(Unicodeの最大値)の整数を指定できます。よく使うコード番号とその文字を以下に示します。

  1. アルファベット大文字のA~Zを入力する場合
    =CHAR(65)で「A」、=CHAR(66)で「B」、…=CHAR(90)で「Z」が表示されます。これらの数値を覚えておくと、連続した文字を生成するときに便利です。
  2. 改行文字(CHAR(10))を挿入する場合
    =CHAR(10)は改行を表します。この関数を他の文字列と結合すると、セル内で改行を挟んだテキストを作成できます。例えば、=A1&CHAR(10)&B1とすれば、A1の内容の後に改行を挟んでB1の内容が表示されます。
  3. 特殊記号(矢印や絵文字)を表示する場合
    例えば、右矢印「→」はCHAR(8594)、星「★」はCHAR(9733)です。絵文字の場合、Unicodeコードポイントが大きいため、正しく表示されない場合もありますが、CHAR関数で多くの記号を呼び出せます。

CODE関数の構文と基本例

CODE関数の構文は「=CODE(文字列)」です。文字列は1文字以上のテキストを指定します。複数文字の場合は最初の文字のコードのみ返されます。空白文字や改行も正しくコード番号を取得できます。

  1. 特定の文字のコード番号を調べる場合
    =CODE(“あ”)と入力すると、ひらがな「あ」のUnicodeコードポイント「12354」が返ります。同様に、=CODE(“1”)は49(半角数字1)、=CODE(“1”)は65297(全角数字1)です。
  2. セル内の最初の文字を判定する場合
    例えば、A1セルに「Apple」と入力されているとき、=CODE(A1)は65(Aのコード)を返します。これを使って、文字列の先頭が大文字か小文字かを判別できます。
  3. 空白や改行のコードを確認する場合
    半角スペースは32、全角スペースは12288、改行(CHAR(10))は10です。データのクリーニングで不要な空白を検出するときに役立ちます。

実践的な応用例

セル内の文字列に改行を挿入する

セル内で複数行のテキストを扱いたい場合、CHAR(10)を結合演算子「&」でつなぐことで改行を挿入できます。ただし、セルの表示設定で「折り返して表示」を有効にする必要があります。手順は以下の通りです。

  1. 改行を挿入する数式を作成する
    =A1&CHAR(10)&B1のように、改行したい位置にCHAR(10)を挟みます。複数の改行が必要ならCHAR(10)を繰り返し使います。
  2. セルの書式設定で折り返しを有効にする
    該当セルを選択し、メニュー「表示形式」→「テキストの折り返し」→「折り返す」を選択します。これで改行が正しく表示されます。
  3. 応用:住所の整形
    例えば、A1に「東京都新宿区」、B1に「西新宿1-1-1」とある場合、=A1&CHAR(10)&B1とすると、セル内に「東京都新宿区\n西新宿1-1-1」のように表示されます。

全角文字と半角文字の判別

全角文字と半角文字ではコード番号の範囲が異なります。半角英数字は32~126、全角英数字は65281~65376付近です。CODE関数を使って文字の種類を判定する例を紹介します。

  1. 全角文字かどうかを調べる数式
    =IF(AND(CODE(A1)>=65281, CODE(A1)<=65376), "全角", "半角またはその他")とします。ただし、ひらがなや漢字は別の範囲になるので注意してください。
  2. ひらがな・カタカナの範囲
    ひらがなは12353~12438、カタカナは12449~12538です。同様にIF文で判定できます。
  3. データの整合性チェック
    例えば、氏名フィールドに全角カタカナが正しく入力されているか、先頭文字のコードを調べることで簡易チェックができます。

連続した文字列を自動生成する

CHAR関数とCOLUMN関数やROW関数を組み合わせると、シート上に連続した文字を並べられます。例えば、横方向にAからZまでを自動入力するには、=CHAR(COLUMN()+64)と入力し、右方向にコピーします。COLUMN()は列番号(A列=1)を返すので、COLUMN()+64で65から始まり、CHARでA,B,…となります。

  1. アルファベットの連続入力
    A1セルに=CHAR(COLUMN()+64)と入力し、A1セルを右にドラッグしてコピーすると、A、B、Cと表示されます。
  2. 数字の連続入力
    =COLUMN()とすれば、1,2,3…と数字が得られます。CHARは数字の文字列を返したいときにも使えます(例:=CHAR(COLUMN()+48)で0,1,2…)。
  3. 応用:見出し行の自動生成
    列数が変わる表で、見出しを自動的にA,B,C…と振りたい場合に便利です。

ADVERTISEMENT

CHAR関数とCODE関数使用時の注意点

CHAR関数で表示できない文字がある

CHAR関数はUnicodeの範囲内であれば基本的にどのコードでも文字を返しますが、フォントやOSがその文字をサポートしていない場合は豆腐(□)や空白として表示されます。特に絵文字や古い記号は注意が必要です。例えば、CHAR(128512)は笑顔の絵文字ですが、環境によって表示されないことがあります。その場合は、別の文字コードを試すか、絵文字入力用の機能を使うことをおすすめします。

CODE関数は先頭文字しか評価しない

CODE関数は引数に複数文字の文字列を指定しても、最初の1文字のコードしか返しません。例えば、=CODE(“ABC”)は65(Aのコード)を返します。文字列全体のコードを調べたい場合は、MID関数やLEFT関数で1文字ずつ分解しながらCODEを適用する必要があります。また、空白文字(CHAR(32))や改行(CHAR(10))も正しくコードを返すので、不要な空白の検出に役立ちます。

Unicodeのバージョンによる差異

Unicodeは定期的に更新され、新しい文字が追加されます。Googleスプレッドシートは最新のUnicodeに対応していますが、古いバージョンで作成されたファイルを読み込むと一部の文字が正しく表示されない可能性があります。その場合は、CODE関数でコードを確認し、必要に応じて別の文字に置き換えるとよいでしょう。

CHAR関数とCODE関数の比較表

項目 CHAR関数 CODE関数
役割 数値から文字を生成 文字からコードを取得
引数 数値(1~1114111) 文字列(先頭1文字を評価)
戻り値 対応するUnicode文字 Unicodeコードポイント(数値)
主な用途 特殊文字の入力、改行挿入 文字種判別、データクリーニング
逆関数の関係 =CHAR(CODE(文字)) で元の文字に戻る =CODE(CHAR(数値)) で元の数値に戻る

まとめ

CHAR関数とCODE関数を使えば、スプレッドシート上で文字とコード番号を相互変換できます。この記事では、基本の使い方から改行挿入や全角半角判別などの応用例、注意点までを解説しました。CHAR(10)によるセル内改行や、CODE関数を使ったデータのクレンジングは、実務で頻繁に役立つテクニックです。次に、IF関数やLEN関数と組み合わせて、より高度な文字列処理に挑戦してみてください。特殊文字の扱いに困ったときは、まずCHAR関数とCODE関数を思い出しましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。