【エクセル関数】「文字」と「文字コード」を相互変換
この記事では「関数を用いて文字コードを扱う方法」について紹介します
- 文字 から 文字コード への変換方法
- 文字コード から 文字 への変換方法
- 文字列の各文字の文字コードを列挙する方法
- 文字コード対応表の紹介(抜粋)
エクセル関数では2種類の文字コードを扱うことができます。 ASCIIコード(アスキーコード)と Unicode(ユニコード)です。
文字コード:コンピュータが文字を認識して扱うために、文字や記号に割り当てられた一連の数字のことです。沢山の種類の文字コードが存在します。
ASCIIコード:英語の文字や数字、いくつかの記号など、基本的な文字をコンピューターが理解できるようにしたルールのことです。128種類の文字に対して、それぞれ特定の番号が割り当てられています。
Unicode:世界中のあらゆる文字や記号に対して、それぞれ固有の番号を割り当てるようにしたもっと大きなルールのことです。英語の文字だけでなく、日本語のひらがなや漢字、アラビア文字、絵文字など、数多くの文字に対応しています。
ASCIIコードは「英語の基本文字だけを扱う小さなルール」、Unicode は「世界中のたくさんの文字を扱える大きなルール」と考えることができます。
イメージ動画(音声はありません)
文字 ⇔ 文字コードの変換について、動画を見てイメージしてみてください
文字コード変換
文字コード対応表 紹介
サンプルダウンロード
動画で使用したエクセルファイルです
コード対応表は「シート保護」してあります
編集するときは「シート保護」を解除してください
文字コードから文字へ変換
ASCIIコード(アスキーコード)、Unicode(ユニコード)の2種類のコードから文字へ変換する方法を解説します
ASCIIコードから文字へ(CHAR関数)
ASCII文字コードから対応する文字を取得したいケースでは、CHAR関数 を使います
CHAR関数は、ASCIIコード(0~255)を受け取り、それに対応する文字を返す関数です
使用例:
=CHAR(65)
→ “A”=CHAR(97)
→ “a”
アルファベットや基本的な記号を扱う場合に便利です
文字コード対応表 へ
Unicodeから文字へ(UNICHAR関数)
外国語のアルファベット や 絵文字 などを扱いたいときには、UNICHAR関数を使います
UNICHAR関数はUnicodeを受け取り、それに対応する文字を返します
より多くの文字と特殊記号に対応しているので、国際的なデータベースを扱う際に役立ちます
使用例:
=UNICHAR(12354)
→ “あ”=UNICHAR(9731)
→ “☃”
グローバルなデータセットで作業する際、UNICHAR関数は不可欠なツールです
文字コード対応表 へ
文字から文字コードへ変換
文字から、ASCIIコード(アスキーコード)、Unicode(ユニコード)の2種類のコードへ変換する方法です
文字からASCIIコードへ(CODE関数)
文字からそのASCIIコードを知りたい場合はCODE関数が使用されます
これは単一の文字を引数として取り、そのASCIIコードを返します
この関数はASCII文字セットに限定されているので、標準英数字にのみ対応しています
使用例:
=CODE("A")
→ 65=CODE("a")
→ 97
データ内の特定の文字を検索する際など、文字のコードが必要な分析作業に役立ちます
文字コード対応表 へ
文字からUnicodeへ(UNICODE関数)
文字からUnicodeを取得したい場合は、UNICODE関数を使用します
CHAR関数と同様に、幅広い文字セットに対応しており、任意の文字についてそのUnicodeコードを返します
使用例:
=UNICODE("あ")
→ 12354=UNICODE("☃")
→ 9731
より広範囲の文字に対応する必要がある場合、UNICODE関数はデータ分析において強力なツールとなります
文字コード対応表 へ
全文字の文字コードを列挙
TEXTJOIN, CODE, MID, SEQUENCE, LEN関数を活用することで、文字列を細分化し、すべての文字コードを抽出できます
Excel 2021以降でれば、これらの関数を組み合わせて、以下のような複雑な操作が可能です。
- ある文字列の各文字をASCIIコードに変換
- 変換されたコードを特定の区切り文字で結合
例えば、セルB2に”Hello“と入力されていたとします
以下のようにと書くと、各文字のASCIIコードがカンマ区切りで出力されます
=TEXTJOIN(",",TRUE,CODE(MID(B2,SEQUENCE(LEN(B2)),1)))
この場合の出力結果は “72,101,108,108,111” です
“H” のコードが 72、”e” が 101、”l” が 108、”o” が 111 であり、この式は文字列内の各文字を個別のASCIIコードに変換してカンマ区切りで羅列しています
文字コード対応表 へ
文字コード対応表
CHAR/UNICHAR関数、CODE/UNICODE関数を使いこなすために一部をピックアップ
実務において使用される可能性が高い主要な文字とコードを抜粋しました
ASCIIコード対応表
ASCIIコード | 文字 | 説明 |
---|---|---|
10 | (改行) | 改行 |
32 | (空白) | スペース |
48 – 57 | 0 – 9 | 数字 |
65 – 90 | A – Z | 英大文字 |
97 – 122 | a – z | 英小文字 |
58 | : | コロン |
46 | . | ピリオド |
44 | , | カンマ |
47 | / | スラッシュ |
92 | \ | バックスラッシュ |
64 | @ | アットマーク |
(例)”A“を表現したい場合
=CHAR(65)
(例)改行 を表現したい場合
=CHAR(10)
(例)空白 を表現したい場合
=CHAR(32)
Unicode対応表
Unicode | 文字 | 説明 |
---|---|---|
48 – 57 | 0 – 9 | 数字 |
65 – 90 | A – Z | 英大文字 |
97 – 122 | a – z | 英小文字 |
12353 – 12435 | ぁ – ん | ひらがな |
12449 – 12534 | ァ – ヶ | カタカナ |
19968 – 40869 | 一 – 龍 | 漢字 |
65281 – 65374 | !- ~ | 全角記号 |
65296 – 65305 | 0- 9 | 全角数字 |
65313 – 65338 | A- Z | 全角英大文字 |
65345 – 65370 | a- z | 全角英小文字 |
(例)”!“を表現したい場合
=UNICHAR(65281)