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

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

CHAR関数

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

CHAR関数はそもそも、英語の「Character(意味:文字)」に由来する関数です。
(「character」には「人の性格、キャラクター」という意味もあるんですね。こちらの意味の方が、日本人には馴染みがありますね)
CHAR関数はエクセルで「=CHAR (文字コード)」の形で使用し、文字コードを文字に変換してくれます。
対応している文字コードはASCIIコードとJISコードだけで、それ以外の文字コードでは機能しないので注意してくださいね。
文字コードではない数値を指定した場合には「#VALUE!」エラーが表示されてします。
書式は、=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で色々な関数の使い方をご紹介しいて参ります。
是非参考にしてください!応援よろしくお願いいたします。