対象環境: Google スプレッドシート(2024年時点の最新版。Excelと同一構文で動作)
スプレッドシートで「①」や「✓」「→」などの特殊記号を使いたいとき、毎回コピペや記号入力で済ませていませんか。
実は、これらの文字はすべて「Unicodeコードポイント」という番号を持っています。スプレッドシートのUNICHAR関数を使えば、この番号を指定するだけで対応する文字を数式から自動表示できます。
この記事では、UNICHAR関数の構文と基本的な使い方から、囲み数字をROW関数で連番生成する実務テンプレート、CHAR関数との違い、絵文字や主要Unicode範囲の早見表、エラー対処法まで同僚に教える感覚でわかりやすく解説します。
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全範囲をカバーするので、ひらがな・カタカナ・漢字・絵文字まで扱えます。なお、Excel系のCODE関数はASCII範囲で文字から数値を返す関数で、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といったように、よく使う文字のコードポイントを把握しておくと作業効率が上がります。
主要なUnicode範囲の早見表
UNICHAR関数で表示できる文字は膨大ですが、「どのあたりに何があるか」を知っておくと検索が一気に楽になります。実務でよく登場する代表的なブロックをまとめました。
| 範囲(10進) | 主な文字 | 用途例 |
|---|---|---|
| 33〜126 | 半角英数字・基本記号 | ASCII文字(A-Z、0-9、!?@など) |
| 161〜255 | ラテン補助記号 | ¥(165)、©(169)、®(174)、±(177) |
| 8208〜8286 | 一般句読点 | …(8230)、※(8251)、‘ ’ “ ”(8216-8221) |
| 8592〜8703 | 矢印 | ←(8592)、→(8594)、↑(8593)、↓(8595) |
| 9312〜9331 | 丸囲み数字① | ①〜⑳(DingbatsのCircled Numbers) |
| 9472〜9599 | 罫線素片 | ─│┌┐└┘╋など、ASCIIアート的なリスト罫線 |
| 9728〜9983 | その他の記号 | ★(9733)、☆(9734)、♪(9834)、☀(9728) |
| 9984〜10175 | Dingbats | ✓(10003)、✗(10007)、✏(9999)、✿(10047) |
| 12288〜12351 | CJK記号と句読点 | 全角スペース(12288)、「」(12300-12301)、・(12539) |
| 12353〜12435 | ひらがな | あ(12354)、い(12356)、ん(12435) |
| 12449〜12538 | カタカナ | ア(12450)、イ(12452)、ン(12531) |
| 12880〜12927 | 囲み英数字 | ㉑(12881)以降、㊵(12918)まで(21以降の囲み数字) |
「囲み数字の連番は20まで」「全角スペースは12288」など、覚えておくと数式設計が一気にスムーズになります。範囲を覚えていれば、たとえば=UNICHAR(9311+ROW(A1))の「9311」がどこから来たかも納得できるはずです。
絵文字や特殊文字を表示する
Unicodeの基本多言語面を超えた絵文字(U+1F300〜U+1FAFF など)も、UNICHAR関数で表示できます。コードポイントを10進に直して指定するだけです。
=UNICHAR(127775) → 🌟(光る星)
=UNICHAR(128202) → 📊(棒グラフ)
=UNICHAR(128203) → 📋(クリップボード)
=UNICHAR(128221) → 📝(メモ)
=UNICHAR(128270) → 🔎(虫眼鏡)
=UNICHAR(128293) → 🔥(炎)
=UNICHAR(128512) → 😀(笑顔)
=UNICHAR(9989) → ✅(緑のチェック)
=UNICHAR(10060) → ❌(赤バツ)
=UNICHAR(11088) → ⭐(黄色い星)
たとえば営業ダッシュボードで「目標達成→✅/未達→❌」と表示したり、リスクスコアを🔥の数で表現したりすると、視認性が一気に上がります。ただし絵文字はフォントやOSによって見え方が変わる点、メール本文や旧バージョンの帳票では文字化けする恐れがある点には注意してください。社外配布する資料では、基本多言語面(U+0000〜U+FFFF)の記号で代替したほうが無難です。
文字を直接指定する方法
数値を直接書く以外に、別セルの数値を参照する形でも使えます。たとえば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以降を連番化する場合は数式を分岐させる必要があります。具体的には次のようにIF関数で切り替えると、㉑以降もスムーズに連番化できます。
=IF(ROW(A1)<=20, UNICHAR(9311+ROW(A1)), UNICHAR(12860+ROW(A1)))
A1〜A20までは①〜⑳、A21からは㉑㉒…と続きます。手順書テンプレートに組み込んでおくと、行を追加・削除しても番号がずれません。
同じ要領でアルファベットの連番も作れます。
=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関数と組み合わせて次のように書きます。
=IF(A1>=0.8, UNICHAR(10003), UNICHAR(10007))
また、CONCATENATE関数や&演算子と組み合わせると、装飾付きのテキストも作れます。
="【重要】"&UNICHAR(9733)&" "&A1&" "&UNICHAR(9733)
A1に「契約更新」と入っていれば、結果は「【重要】★ 契約更新 ★」になります。レポート見出しや通知文の装飾に役立ちます。
3段階評価のような表示にも応用できます。たとえばB列に評価点(1〜3)が入っているとき、次の数式で★の数を可変表示できます。
=REPT(UNICHAR(9733), B1) & REPT(UNICHAR(9734), 3-B1)
B1が「2」なら「★★☆」、3なら「★★★」と表示されます。REPT関数(文字を指定回数繰り返す関数)と組み合わせれば、見た目に直感的な評価レポートが数式だけで作れます。
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が無効な値でも、エラーが空欄で返るようになります。ユーザーがコードポイントを直接入力するような帳票では、IFERRORでラップしておくと見た目を崩さずに済みます。
サロゲートペア・範囲外コードへの注意
絵文字など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つの関数をセットで覚えておくと心強い味方になります。
よくある質問
Q. UNICHAR関数とCHAR関数の違いは何ですか?
CHAR関数はASCII/ANSI範囲(主に1〜255)の英数字・記号を扱います。一方、UNICHAR関数はUnicode全範囲(1〜1,114,111)に対応しており、ひらがな・カタカナ・漢字・絵文字・囲み数字など、より広い文字を扱えます。日本語や特殊記号を使う場合はUNICHARを選んでください。
Q. ①②③…と連番で入力するにはどうすればいいですか?
=UNICHAR(9311+ROW(A1)) をA1に入力して下方向にコピーすると、①〜⑳まで自動で連番が生成されます。9311が①(コード9312)の1つ前の番号で、ROWの行番号を足す仕組みです。
Q. UNICHAR関数でエラーが出ます
#VALUE! エラーは、引数が0以下・1,114,111超・文字列のときに発生します。=IFERROR(UNICHAR(A1), "") のようにIFERRORでラップすると、エラーを空欄で返せます。
Q. スプレッドシートのUNICHAR関数はExcelと同じですか?
はい、引数・動作ともにExcelのUNICHAR関数と同じです。コードポイントの範囲や挙動も同一ですので、ExcelとGoogleスプレッドシートを行き来する業務でも数式をそのまま移植できます。
Q. 絵文字(😀や📊など)はUNICHAR関数で表示できますか?
はい、U+1F300 以降の絵文字も10進コードポイントで指定すれば表示可能です。たとえば=UNICHAR(128202)で「📊」が表示できます。ただし、フォントやOSによって描画が異なる点と、Excel旧バージョンやメール文面では文字化けの可能性がある点に注意してください。社内資料や帳票では、基本多言語面(U+0000〜U+FFFF)の記号で代替するのが無難です。
Q. 16進のUnicodeコードポイントは指定できますか?
UNICHAR関数の引数は10進数のみ受け付けます。16進のコードポイント(例: U+2605)を扱う場合は、HEX2DEC 関数で10進数に変換してから渡してください。たとえば=UNICHAR(HEX2DEC("2605"))と書けば「★」が表示できます。Unicode公式表は16進表記なので、変換用の小さな表をシート内に作っておくと作業がスムーズです。
Q. ㉑以降の囲み数字を連番で生成するには?
囲み数字は⑳(コード9331)と㉑(コード12881)でブロックが分かれているため、IF関数で分岐させる必要があります。=IF(ROW(A1)<=20, UNICHAR(9311+ROW(A1)), UNICHAR(12860+ROW(A1)))をA1にコピーすれば、㉑㉒…まで連続した連番が作成できます。
まとめ
スプレッドシートのUNICHAR関数は、Unicodeコードポイントを文字に変換するシンプルかつ強力な関数です。最後にポイントを振り返っておきましょう。
- 構文は
=UNICHAR(数値)で、引数は1〜1,114,111の整数を指定 - 囲み数字は
=UNICHAR(9311+ROW(A1))で①〜⑳まで自動連番化できる - ㉑以降はIF関数で分岐させればシームレスに連番化できる
- チェックマーク・矢印・特殊記号もコードポイントから簡単表示できる
- 絵文字(📊✅⭐など)も10進コードで表示できるが、フォント環境に注意
- 主要Unicode範囲(矢印は8592〜、Dingbatsは9984〜など)を覚えると検索が楽
- CHAR関数はASCII範囲のみ、UNICHARはUnicode全範囲に対応
#VALUE!はIFERROR関数でラップして対処- UNICODE関数との逆変換ペアで使うと文字種判定や一覧表作成に便利
特にROW関数と組み合わせた囲み数字の連番生成は、リストや手順書を作るときに大幅な時短につながります。まずは本記事のコードポイント一覧表をブックマークしておき、必要なときにコピペして使ってみてください。慣れてくれば、IF関数やCONCATENATE関数との応用で、業務帳票の見せ方そのものを変えられるようになります。
