今回はExcelで使用する。CHAR(キャラクター)関数・CODE(コード)関数の使い方をお伝えします。

CHAR関数は、突然ですが「9250」という数字を見て、何かを思いますでしょうか?思いも付きませんよね。
ただ、タイトルに「文字コード」という単語が含まれているんですね!
「9250」とはJISコード(文字コードの1種)でひらがな「あ」を表す数値なんです。
「9250」の数字を文字コードに変換してくれる関数になります。
CODE関数は、CHAR関数の反対で文字を文字コードに変換してくれる関数です。
パソコン上のデータは実は数字(コード)で管理されています。
私達が画面上で確認する際にはコードの「ルール」に従って、コードが色や文字などに変換されているんですね?
実際にどの文字がどのようなコードで管理されるのかと言うと「あ」はどんなコードになるのか?と言うと先程の「9250」なんですね!
Excelでは文字から文字コードに変換して、表示してくれる関数、CODE関数があるのでお伝えいたします。

CHAR関数

先程の解説の通り、CHAR関数は文字コードを読み取って「ひらがな」の「あ」を返してくれんですね!
文字コードとは、大雑把に言うと、「ひらがなやアルファベットの文字に割り振られた数値」のことなんです。
場合によっては文字とコードと呼ばれることもあるんです。
文字コードには沢山の種類があり、代表的なものを下記の表に表記しておきます。「〇〇コード」と呼ばれる一覧です。
少し目にした事もあって、わかる方もいると思いまます。

CHAR関数はそもそも、英語のCharacter(意味とか文字)の名前を取った関数です。
(characterには「人の性格やその人のキャラクター」という意味もあるんですね。こっちの意味合いの方が、私達日本人には馴染みがありますよね)
CHAR関数はExcelで「=CHAR (文字コード)」の形で使用して、文字コードを文字に変換してくれるんです。
対応の文字コードはASCIIコードとJISコードのみで、それ以外の文字コードでは機能しないので注意してくださいね。
文字コード以外では数値を指定した場合にはエラーが表示されてしまいすので注意が必要です。
書式は、=CHAR(文字列)になります。

例1:CHAR関数を使える状況を準備します。下記の表を作成してください。
「D2」にはCODE関数を使って文字コードを出しておきます。=CODE(B2) で出ます。

CODE関数の結果が出ますので、結果を使ってCHAR関数で文字列に戻るかを検証しましょう。

オートフルをして結果を確認します。文字列に戻っていますね!
しかし、特殊なコード?を除いて、一致していることが解りましたね。
特殊な物は先程の説明の様に「ASCIIコードとJISコードだけで、それ以外の文字コードでは機能しないので注意してくださいね。」
なので「?」が返ってしまいます。

例2:「文字列(対象)」に含まれる改行を削除したいケースもあると思います。
改行をセルの参照や文字入力で指定することはできないので、SUBSTITUTE関数はセルに入ったデータを一つにまとめてくれますので、
CHAR関数は改行も削除してくれる機能があり、関数を入れ子にすることで改行の削除を行うことができます。
CHAR 関数の引数で「10」を指定すると、改行を指定していることになる、という事になります。
セルのA2は改行が入っており、「あいうえお かきくけこ」は挿入されています。

参考までに、今の組み合わせを使って改行を削除した住所も入力しなおすことも出来ます。

CODE関数

CODE関数は先程も行ってみましたが、文字列の文字コードを返してくれます。

CODE関数では「文字から文字コードのASCIIコードまたはJISコードへの変換でしたよね。
これの逆の利用して変換する事も出来るわけです。、つまり「文字コード(ASCIIコードまたはJISコード)から文字に!」はCHAR関数で行うことが出来ましたね。

例1:高度ですが、名簿にインデックス(索引)を「アカサタナ」順につけてみたいと思いました。
よくよく考えてExcelの関数を使ってできないかを考えてアレコレと行ってみましたので一緒に行ってきてください。
何かの名簿のデータをお持ちでしたらそちらでも構いませんので!

別のシートに「アカサタナ」順のコード表を作成しましょう。

A・B列に行を追加し「索引」と「作業用」のタイトルを作ります。
フリガナの列で昇順に並べ替えておきます。

作業用の列にコードのシートの2列目を返す関数を考えるとVLOOKUP関数が思いつきます。
CODE関数を使って「D2」のカタカナのフリガナの1文字目をコードのシートから返してあげます。
「B2」に、=VLOOKUP(CODE(D2),コード!$A$2:$B$12,2,TRUE)の関数書式が入ります。
完全一致ではなくなるので近似一致のTRUEを返します。

次に行い作業は、索引を付けていきます。ア行に方には「ア」の索引、カ業の方には「カ」の索引といった感じになればOKです。
そこで考えるのはIF関数です。もし、索引に表示されているものが、その一つ上のセルと同じだった時は、空欄
そうじゃなければ、索引に表示されているものをそのまま表示と考えればIF関数で導き出せます。
索引が出来上がったらB列は非表示にしましょう!どうですか?索引が出来ました。「アカサタナ」を入力すればいいだけの話ですが(笑)

少し考えてみると関数も応用が出来、楽しかったと思います。どうでしたでしょうか?

CHAR関数・CODE関数のまとめになります。

CHAR(キャラクター)関数ですが、内部コードに対応する文字を返してくれるんです。
文字コードには、ASCIIとJISのコードだけ利用でき、それ以外の文字コードでは機能しないでしたよね!
必須になっているので、文字コードという形で直セル指定するか、セル参照で選択するかは状況に合わせて選択してください。
CHAR(10)セル内で改行で折り返す事も出来ました。
CODE関数CHAR関数の反対でしたね!文字列をコードに変換してくれます。
応用編の様にコードを算出して索引を付けるなんで考えれば楽しさも倍増かと思います。
そんなに使う関数ではないと思いますが、とっさの時に思い出せれば使い勝手は良いと思いますよ。

是非、利用してみて下さい。
これからもソフトキャンパスのブログ、Youtubeで色々な関数の使い方をご紹介しいて参ります。
是非参考にしてください!応援よろしくお願いいたします。