対象環境: Google スプレッドシート(2024年時点の最新版。Excelと同一構文で動作)
スプレッドシートで「①」や「✓」「→」などの特殊記号を使いたいとき、毎回コピペや記号入力で済ませていませんか。
実は、これらの文字はすべて「Unicodeコードポイント」という番号を持っています。スプレッドシートのUNICHAR関数を使えば、この番号を指定するだけで対応する文字を数式から自動表示できます。
この記事では、UNICHAR関数の構文と基本的な使い方から、囲み数字をROW関数で連番生成する実務テンプレート、CHAR関数との違い、エラー対処法まで同僚に教える感覚でわかりやすく解説します。
UNICHAR関数とは
UNICHAR関数は、Unicodeコードポイント(数値)を指定すると、対応する文字を返すスプレッドシートの関数です。「ユニキャラクター」と読み、UNIcode CHARacterの略です。
たとえば=UNICHAR(65)と入力すると「A」が返り、=UNICHAR(9312)と入力すると「①」が返ります。記号や囲み数字を数式の中で動的に呼び出せるため、連番作成や条件付き表示に重宝します。
ExcelのUNICHAR関数と構文・仕様は同一で、UTF-8/UTF-16いずれの文字セットにも対応しています。コードポイントの全範囲(1〜1,114,111)を扱えるのが大きな特徴です。
UNICHAR関数の構文と引数
UNICHAR関数の構文は非常にシンプルで、引数は1つだけです。
=UNICHAR(数値)
| 引数 | 必須 | 説明 |
|---|---|---|
| 数値 | 必須 | 文字に変換したいUnicodeコードポイント(1〜1,114,111) |
引数には1〜1,114,111の整数を指定します。範囲外の数値や0を指定するとエラーになります。後述の「エラーと対処法」も合わせて確認してください。
CHAR関数・UNICODE関数との違い
UNICHAR関数とよく混同される関数に、CHAR関数とUNICODE関数(文字からUnicodeコードポイントを返す関数)があります。それぞれ役割が異なります。
| 関数 | 入力 | 出力 | 対応範囲 |
|---|---|---|---|
| UNICHAR | 数値(コードポイント) | 文字 | 1〜1,114,111(Unicode全範囲) |
| CHAR | 数値(文字コード) | 文字 | 主に1〜255(ASCII/ANSI) |
| UNICODE | 文字 | 数値(コードポイント) | Unicode全範囲 |
CHAR関数はASCII/ANSI範囲(主に1〜255)の英数字・記号を扱います。そのため日本語や絵文字、囲み数字のような特殊記号には対応できません。一方、UNICHAR関数はUnicode全範囲をカバーするので、ひらがな・カタカナ・漢字・絵文字まで扱えます。
UNICODE関数はUNICHAR関数の「逆変換ペア」です。UNICHAR(65)が「A」を返すのに対し、UNICODE("A")は「65」を返します。この2つを組み合わせると、文字コード一覧表の作成や文字種判定に役立ちます。
UNICHAR関数の基本的な使い方
ここからは、実際にスプレッドシートでUNICHAR関数を使う場面を具体的に見ていきましょう。セルに数式を入力するだけで動作します。
シンプルな変換例(A・円記号・矢印)
まずは基本となるコードポイントの変換例を確認します。以下の数式をセルに入力してみてください。
=UNICHAR(65) → A
=UNICHAR(90) → Z
=UNICHAR(165) → ¥(円記号)
=UNICHAR(8594) → →(右矢印)
=UNICHAR(9312) → ①(丸囲み数字1)
=UNICHAR(10003) → ✓(チェックマーク)
コードポイントさえわかれば、キーボードから直接入力しにくい記号も簡単に表示できます。コードポイントは「Unicode 一覧」で検索すれば該当する文字の番号をすぐ調べられます。
英字大文字は65〜90、英字小文字は97〜122です。ひらがな「あ」は12354、カタカナ「ア」は12450といったように、よく使う文字のコードポイントを把握しておくと作業効率が上がります。
文字を直接指定する方法
数値を直接書く以外に、別セルの数値を参照する形でも使えます。たとえばA1セルに「9312」と入力し、B1セルに以下を入力します。
=UNICHAR(A1)
すると、B1には「①」が表示されます。A1の値を9313に変えれば「②」、9314なら「③」と動的に変化します。
セル参照を使うと、コードポイント一覧表を作成して各番号に対応する文字を確認するといった用途にも応用できます。
実務で役立つ活用例
ここからは、実際の業務で「あると便利」な活用テンプレートを紹介します。コピペしてすぐ使えるよう、数式と早見表を用意しました。
囲み数字(①〜⑳)をROW関数で連番生成する
リストや手順書で「①②③…」と連番を振りたいとき、ROW関数と組み合わせると便利です。ROW関数は引数に指定したセルの行番号を返す関数で、A1なら1、A2なら2を返します。
=UNICHAR(9311+ROW(A1))
この数式をA1セルに入力して下方向にコピーすると、自動的に「①②③…⑳」と連番が生成されます。9311に行番号1を足すと9312(①のコード)になる仕組みです。
| 数式 | 結果 |
|---|---|
| =UNICHAR(9311+ROW(A1)) | ① |
| =UNICHAR(9311+ROW(A2)) | ② |
| =UNICHAR(9311+ROW(A3)) | ③ |
| =UNICHAR(9311+ROW(A20)) | ⑳ |
注意点として、囲み数字は⑳(コード9331)までが連続しています。㉑以降はUnicodeブロックが変わります。㉑はコード12881から始まるため、21以降を連番化する場合は数式を分岐させる必要があります。
同じ要領でアルファベットの連番も作れます。
=UNICHAR(64+ROW(A1)) → A, B, C, ...
=UNICHAR(96+ROW(A1)) → a, b, c, ...
チェックマーク・矢印・特殊記号のコードポイント一覧
実務でよく使う特殊記号のコードポイントをまとめました。セルに=UNICHAR(コード)の形で入力するだけで表示できます。
| 文字 | コード | 用途 |
|---|---|---|
| ✓ | 10003 | チェックマーク(完了表示) |
| ✗ | 10007 | バツ印(NG表示) |
| ★ | 9733 | 黒星(重要マーク) |
| ☆ | 9734 | 白星(評価表示) |
| → | 8594 | 右矢印(フロー図) |
| ← | 8592 | 左矢印 |
| ↑ | 8593 | 上矢印 |
| ↓ | 8595 | 下矢印 |
| ※ | 8251 | 注釈マーク |
| ¥ | 165 | 円記号 |
| © | 169 | 著作権マーク |
| ® | 174 | 登録商標マーク |
これらをIF関数と組み合わせれば、ステータス管理表で「完了→✓」「未完了→空欄」のような自動表示も実現できます。
IF関数・CONCATENATE関数と組み合わせる
UNICHAR関数は他の関数と組み合わせることで真価を発揮します。代表的な組み合わせを見ていきましょう。
たとえば、A列に進捗率(%)が入っていて、80%以上なら✓、未満ならバツを表示したい場合は次のように書きます。
=IF(A1>=0.8, UNICHAR(10003), UNICHAR(10007))
また、CONCATENATE関数や&演算子と組み合わせると、装飾付きのテキストも作れます。
="【重要】"&UNICHAR(9733)&" "&A1&" "&UNICHAR(9733)
A1に「契約更新」と入っていれば、結果は「【重要】★ 契約更新 ★」になります。レポート見出しや通知文の装飾に役立ちます。
UNICHAR関数のエラーと対処法
UNICHAR関数を使っていると、ときどきエラーが返ることがあります。原因と対処法を押さえておきましょう。
#VALUE!が出る原因と解決策
#VALUE!エラーは、引数が有効範囲外の場合に発生します。具体的な原因は次のとおりです。
- 引数が0:UNICHAR関数は1以上の整数を要求するため、0はエラー
- 引数が負数:マイナスの値は無効
- 引数が1,114,111超:Unicodeコードポイントの最大値を超えると無効
- 引数が文字列:数値以外を指定するとエラー
=UNICHAR(0) → #VALUE!
=UNICHAR(-1) → #VALUE!
=UNICHAR(1114112) → #VALUE!
=UNICHAR("abc") → #VALUE!
IFERROR関数で囲むと、エラーを安全に処理できます。
=IFERROR(UNICHAR(A1), "")
これでA1が無効な値でも、エラーが空欄で返るようになります。
サロゲートペア・範囲外コードへの注意
絵文字などU+10000以上の補助文字(サロゲートペアと呼ばれる領域)は、内部的に2つのコードで表現されます。サロゲート領域(D800〜DFFF)の単独コードを指定すると#N/Aエラーが返ります。
また、絵文字は環境やフォントによって表示が異なる場合があります。スプレッドシートでは動作することもありますが、安定して使いたい場合は基本多言語面(U+0000〜U+FFFF)の範囲内で運用するのが無難です。
業務利用では、囲み数字・矢印・チェックマーク・記号類などU+FFFF以下のコードポイントに絞って使えば、ほぼトラブルなく運用できます。
UNICODE関数との逆変換ペアで使う
UNICHAR関数とUNICODE関数は「逆変換ペア」として組み合わせると、使い方の幅が一気に広がります。UNICHARが「数値→文字」、UNICODEが「文字→数値」を担当します。
=UNICHAR(65) → A
=UNICODE("A") → 65
=UNICHAR(UNICODE("①")) → ①(往復変換)
実務では、文字種判定(英数字か日本語か)に活用できます。A1に文字が入っているとき、次のように書けばコードポイントから判別できます。
=IF(UNICODE(A1)<128, "ASCII", "Unicode拡張")
また、コードポイント一覧表を作成して、UNICHARで文字を表示しUNICODEで番号を再取得すると、双方向の変換チェックも簡単に行えます。データクレンジングや文字化け調査など文字コードに関する業務では、この2つの関数をセットで覚えておくと心強い味方になります。
まとめ
スプレッドシートのUNICHAR関数は、Unicodeコードポイントを文字に変換するシンプルかつ強力な関数です。最後にポイントを振り返っておきましょう。
- 構文は
=UNICHAR(数値)で、引数は1〜1,114,111の整数を指定 - 囲み数字は
=UNICHAR(9311+ROW(A1))で①〜⑳まで自動連番化できる - チェックマーク・矢印・特殊記号もコードポイントから簡単表示できる
- CHAR関数はASCII範囲のみ、UNICHARはUnicode全範囲に対応
#VALUE!はIFERROR関数でラップして対処- UNICODE関数との逆変換ペアで使うと文字種判定や一覧表作成に便利
特にROW関数と組み合わせた囲み数字の連番生成は、リストや手順書を作るときに大幅な時短につながります。まずは本記事のコードポイント一覧表をブックマークしておき、必要なときにコピペして使ってみてください。慣れてくれば、IF関数やCONCATENATE関数との応用で、業務帳票の見せ方そのものを変えられるようになります。
