<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CHAR関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/char%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 04 Aug 2026 11:35:31 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>CHAR関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのUNICHAR関数の使い方｜Unicodeコードから文字に変換</title>
		<link>https://mashukabu.com/spreadsheet-unichar-function/</link>
					<comments>https://mashukabu.com/spreadsheet-unichar-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 14:10:45 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CHAR関数]]></category>
		<category><![CDATA[UNICHAR関数]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[事務効率化]]></category>
		<category><![CDATA[囲み数字]]></category>
		<category><![CDATA[特殊文字]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6057</guid>

					<description><![CDATA[スプレッドシートのUNICHAR関数の使い方を解説。Unicodeコードポイントから文字に変換する構文・引数・基本例に加え、囲み数字をROW関数で連番生成する実務テンプレートや、CHAR関数・UNICODE関数との違い、絵文字や主要Unicode範囲の早見表もわかりやすく説明します。]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対象環境</strong>: Google スプレッドシート（2024年時点の最新版。Excelと同一構文で動作）</p></blockquote>



<p class="wp-block-paragraph">スプレッドシートで「①」や「✓」「→」などの特殊記号を使いたいとき、毎回コピペや記号入力で済ませていませんか。</p>



<p class="wp-block-paragraph">実は、これらの文字はすべて「Unicodeコードポイント」という番号を持っています。スプレッドシートのUNICHAR関数を使えば、この番号を指定するだけで対応する文字を数式から自動表示できます。</p>



<p class="wp-block-paragraph">この記事では、UNICHAR関数の構文と基本的な使い方から、囲み数字を<a href="https://mashukabu.com/spreadsheet-row-function/">ROW関数</a>で連番生成する実務テンプレート、<a href="https://mashukabu.com/spreadsheet-char-function/">CHAR関数</a>との違い、絵文字や主要Unicode範囲の早見表、エラー対処法まで同僚に教える感覚でわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">UNICHAR関数とは</a><ol><li><a href="#toc2" tabindex="0">UNICHAR関数の構文と引数</a></li><li><a href="#toc3" tabindex="0">CHAR関数・UNICODE関数との違い</a></li></ol></li><li><a href="#toc4" tabindex="0">UNICHAR関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">シンプルな変換例（A・円記号・矢印）</a></li><li><a href="#toc6" tabindex="0">主要なUnicode範囲の早見表</a></li><li><a href="#toc7" tabindex="0">絵文字や特殊文字を表示する</a></li><li><a href="#toc8" tabindex="0">文字を直接指定する方法</a></li></ol></li><li><a href="#toc9" tabindex="0">実務で役立つ活用例</a><ol><li><a href="#toc10" tabindex="0">囲み数字（①〜⑳）をROW関数で連番生成する</a></li><li><a href="#toc11" tabindex="0">チェックマーク・矢印・特殊記号のコードポイント一覧</a></li><li><a href="#toc12" tabindex="0">IF関数・CONCATENATE関数と組み合わせる</a></li></ol></li><li><a href="#toc13" tabindex="0">UNICHAR関数のエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">#VALUE!が出る原因と解決策</a></li><li><a href="#toc15" tabindex="0">サロゲートペア・範囲外コードへの注意</a></li></ol></li><li><a href="#toc16" tabindex="0">UNICODE関数との逆変換ペアで使う</a></li><li><a href="#toc17" tabindex="0">よくある質問</a><ol><li><a href="#toc18" tabindex="0">Q. UNICHAR関数とCHAR関数の違いは何ですか？</a></li><li><a href="#toc19" tabindex="0">Q. ①②③…と連番で入力するにはどうすればいいですか？</a></li><li><a href="#toc20" tabindex="0">Q. UNICHAR関数でエラーが出ます</a></li><li><a href="#toc21" tabindex="0">Q. スプレッドシートのUNICHAR関数はExcelと同じですか？</a></li><li><a href="#toc22" tabindex="0">Q. 絵文字（😀や📊など）はUNICHAR関数で表示できますか？</a></li><li><a href="#toc23" tabindex="0">Q. 16進のUnicodeコードポイントは指定できますか？</a></li><li><a href="#toc24" tabindex="0">Q. ㉑以降の囲み数字を連番で生成するには？</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">UNICHAR関数とは</span></h2>



<p class="wp-block-paragraph">UNICHAR関数は、Unicodeコードポイント（数値）を指定すると、対応する文字を返すスプレッドシートの関数です。「ユニキャラクター」と読み、<code>UNI</code>code <code>CHAR</code>acterの略です。</p>



<p class="wp-block-paragraph">たとえば<code>=UNICHAR(65)</code>と入力すると「A」が返り、<code>=UNICHAR(9312)</code>と入力すると「①」が返ります。記号や囲み数字を数式の中で動的に呼び出せるため、連番作成や条件付き表示に重宝します。</p>



<p class="wp-block-paragraph">ExcelのUNICHAR関数と構文・仕様は同一で、UTF-8/UTF-16いずれの文字セットにも対応しています。コードポイントの全範囲（1〜1,114,111）を扱えるのが大きな特徴です。</p>



<h3 class="wp-block-heading"><span id="toc2">UNICHAR関数の構文と引数</span></h3>



<p class="wp-block-paragraph">UNICHAR関数の構文は非常にシンプルで、引数は1つだけです。</p>



<pre class="wp-block-code"><code>=UNICHAR(数値)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>数値</td><td>必須</td><td>文字に変換したいUnicodeコードポイント（1〜1,114,111）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数には1〜1,114,111の整数を指定します。範囲外の数値や0を指定するとエラーになります。後述の「エラーと対処法」も合わせて確認してください。</p>



<h3 class="wp-block-heading"><span id="toc3">CHAR関数・UNICODE関数との違い</span></h3>



<p class="wp-block-paragraph">UNICHAR関数とよく混同される関数に、<a href="https://mashukabu.com/spreadsheet-char-function/">CHAR関数</a>と<a href="https://mashukabu.com/spreadsheet-unicode-function/">UNICODE関数</a>（文字からUnicodeコードポイントを返す関数）があります。それぞれ役割が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>入力</th><th>出力</th><th>対応範囲</th></tr></thead><tbody><tr><td>UNICHAR</td><td>数値（コードポイント）</td><td>文字</td><td>1〜1,114,111（Unicode全範囲）</td></tr><tr><td>CHAR</td><td>数値（文字コード）</td><td>文字</td><td>主に1〜255（ASCII/ANSI）</td></tr><tr><td>UNICODE</td><td>文字</td><td>数値（コードポイント）</td><td>Unicode全範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">CHAR関数はASCII/ANSI範囲（主に1〜255）の英数字・記号を扱います。そのため日本語や絵文字、囲み数字のような特殊記号には対応できません。一方、UNICHAR関数はUnicode全範囲をカバーするので、ひらがな・カタカナ・漢字・絵文字まで扱えます。なお、Excel系の<a href="https://mashukabu.com/spreadsheet-code-function/">CODE関数</a>はASCII範囲で文字から数値を返す関数で、UNICODE関数とよく比較されます。文字コードまわりの関数群はセットで覚えておくと使い分けが楽になります。</p>



<p class="wp-block-paragraph">UNICODE関数はUNICHAR関数の「逆変換ペア」です。<code>UNICHAR(65)</code>が「A」を返すのに対し、<code>UNICODE("A")</code>は「65」を返します。この2つを組み合わせると、文字コード一覧表の作成や文字種判定に役立ちます。</p>



<h2 class="wp-block-heading"><span id="toc4">UNICHAR関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">ここからは、実際にスプレッドシートでUNICHAR関数を使う場面を具体的に見ていきましょう。セルに数式を入力するだけで動作します。</p>



<h3 class="wp-block-heading"><span id="toc5">シンプルな変換例（A・円記号・矢印）</span></h3>



<p class="wp-block-paragraph">まずは基本となるコードポイントの変換例を確認します。以下の数式をセルに入力してみてください。</p>



<pre class="wp-block-code"><code>=UNICHAR(65)    → A
=UNICHAR(90)    → Z
=UNICHAR(165)   → ¥（円記号）
=UNICHAR(8594)  → →（右矢印）
=UNICHAR(9312)  → ①（丸囲み数字1）
=UNICHAR(10003) → ✓（チェックマーク）</code></pre>



<p class="wp-block-paragraph">コードポイントさえわかれば、キーボードから直接入力しにくい記号も簡単に表示できます。コードポイントは「Unicode 一覧」で検索すれば該当する文字の番号をすぐ調べられます。</p>



<p class="wp-block-paragraph">英字大文字は65〜90、英字小文字は97〜122です。ひらがな「あ」は12354、カタカナ「ア」は12450といったように、よく使う文字のコードポイントを把握しておくと作業効率が上がります。</p>



<h3 class="wp-block-heading"><span id="toc6">主要なUnicode範囲の早見表</span></h3>



<p class="wp-block-paragraph">UNICHAR関数で表示できる文字は膨大ですが、「どのあたりに何があるか」を知っておくと検索が一気に楽になります。実務でよく登場する代表的なブロックをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>範囲（10進）</th><th>主な文字</th><th>用途例</th></tr></thead><tbody><tr><td>33〜126</td><td>半角英数字・基本記号</td><td>ASCII文字（A-Z、0-9、!?@など）</td></tr><tr><td>161〜255</td><td>ラテン補助記号</td><td>¥（165）、©（169）、®（174）、±（177）</td></tr><tr><td>8208〜8286</td><td>一般句読点</td><td>…（8230）、※（8251）、‘ ’ “ ”（8216-8221）</td></tr><tr><td>8592〜8703</td><td>矢印</td><td>←（8592）、→（8594）、↑（8593）、↓（8595）</td></tr><tr><td>9312〜9331</td><td>丸囲み数字①</td><td>①〜⑳（DingbatsのCircled Numbers）</td></tr><tr><td>9472〜9599</td><td>罫線素片</td><td>─│┌┐└┘╋など、ASCIIアート的なリスト罫線</td></tr><tr><td>9728〜9983</td><td>その他の記号</td><td>★（9733）、☆（9734）、♪（9834）、☀（9728）</td></tr><tr><td>9984〜10175</td><td>Dingbats</td><td>✓（10003）、✗（10007）、✏（9999）、✿（10047）</td></tr><tr><td>12288〜12351</td><td>CJK記号と句読点</td><td>全角スペース（12288）、「」（12300-12301）、・（12539）</td></tr><tr><td>12353〜12435</td><td>ひらがな</td><td>あ（12354）、い（12356）、ん（12435）</td></tr><tr><td>12449〜12538</td><td>カタカナ</td><td>ア（12450）、イ（12452）、ン（12531）</td></tr><tr><td>12880〜12927</td><td>囲み英数字</td><td>㉑（12881）以降、㊵（12918）まで（21以降の囲み数字）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「囲み数字の連番は20まで」「全角スペースは12288」など、覚えておくと数式設計が一気にスムーズになります。範囲を覚えていれば、たとえば<code>=UNICHAR(9311+ROW(A1))</code>の「9311」がどこから来たかも納得できるはずです。</p>



<h3 class="wp-block-heading"><span id="toc7">絵文字や特殊文字を表示する</span></h3>



<p class="wp-block-paragraph">Unicodeの基本多言語面を超えた絵文字（U+1F300〜U+1FAFF など）も、UNICHAR関数で表示できます。コードポイントを10進に直して指定するだけです。</p>



<pre class="wp-block-code"><code>=UNICHAR(127775)  → 🌟（光る星）
=UNICHAR(128202)  → 📊（棒グラフ）
=UNICHAR(128203)  → 📋（クリップボード）
=UNICHAR(128221)  → 📝（メモ）
=UNICHAR(128270)  → 🔎（虫眼鏡）
=UNICHAR(128293)  → 🔥（炎）
=UNICHAR(128512)  → 😀（笑顔）
=UNICHAR(9989)    → ✅（緑のチェック）
=UNICHAR(10060)   → ❌（赤バツ）
=UNICHAR(11088)   → ⭐（黄色い星）</code></pre>



<p class="wp-block-paragraph">たとえば営業ダッシュボードで「目標達成→✅／未達→❌」と表示したり、リスクスコアを🔥の数で表現したりすると、視認性が一気に上がります。ただし絵文字はフォントやOSによって見え方が変わる点、メール本文や旧バージョンの帳票では文字化けする恐れがある点には注意してください。社外配布する資料では、基本多言語面（U+0000〜U+FFFF）の記号で代替したほうが無難です。</p>



<h3 class="wp-block-heading"><span id="toc8">文字を直接指定する方法</span></h3>



<p class="wp-block-paragraph">数値を直接書く以外に、別セルの数値を参照する形でも使えます。たとえばA1セルに「9312」と入力し、B1セルに以下を入力します。</p>



<pre class="wp-block-code"><code>=UNICHAR(A1)</code></pre>



<p class="wp-block-paragraph">すると、B1には「①」が表示されます。A1の値を9313に変えれば「②」、9314なら「③」と動的に変化します。</p>



<p class="wp-block-paragraph">セル参照を使うと、コードポイント一覧表を作成して各番号に対応する文字を確認するといった用途にも応用できます。</p>



<h2 class="wp-block-heading"><span id="toc9">実務で役立つ活用例</span></h2>



<p class="wp-block-paragraph">ここからは、実際の業務で「あると便利」な活用テンプレートを紹介します。コピペしてすぐ使えるよう、数式と早見表を用意しました。</p>



<h3 class="wp-block-heading"><span id="toc10">囲み数字（①〜⑳）をROW関数で連番生成する</span></h3>



<p class="wp-block-paragraph">リストや手順書で「①②③…」と連番を振りたいとき、<a href="https://mashukabu.com/spreadsheet-row-function/">ROW関数</a>と組み合わせると便利です。ROW関数は引数に指定したセルの行番号を返す関数で、A1なら1、A2なら2を返します。</p>



<pre class="wp-block-code"><code>=UNICHAR(9311+ROW(A1))</code></pre>



<p class="wp-block-paragraph">この数式をA1セルに入力して下方向にコピーすると、自動的に「①②③…⑳」と連番が生成されます。9311に行番号1を足すと9312（①のコード）になる仕組みです。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>=UNICHAR(9311+ROW(A1))</td><td>①</td></tr><tr><td>=UNICHAR(9311+ROW(A2))</td><td>②</td></tr><tr><td>=UNICHAR(9311+ROW(A3))</td><td>③</td></tr><tr><td>=UNICHAR(9311+ROW(A20))</td><td>⑳</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">注意点として、囲み数字は⑳（コード9331）までが連続しています。㉑以降はUnicodeブロックが変わります。㉑はコード12881から始まるため、21以降を連番化する場合は数式を分岐させる必要があります。具体的には次のように<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>で切り替えると、㉑以降もスムーズに連番化できます。</p>



<pre class="wp-block-code"><code>=IF(ROW(A1)&lt;=20, UNICHAR(9311+ROW(A1)), UNICHAR(12860+ROW(A1)))</code></pre>



<p class="wp-block-paragraph">A1〜A20までは①〜⑳、A21からは㉑㉒…と続きます。手順書テンプレートに組み込んでおくと、行を追加・削除しても番号がずれません。</p>



<p class="wp-block-paragraph">同じ要領でアルファベットの連番も作れます。</p>



<pre class="wp-block-code"><code>=UNICHAR(64+ROW(A1))    → A, B, C, ...
=UNICHAR(96+ROW(A1))    → a, b, c, ...</code></pre>



<h3 class="wp-block-heading"><span id="toc11">チェックマーク・矢印・特殊記号のコードポイント一覧</span></h3>



<p class="wp-block-paragraph">実務でよく使う特殊記号のコードポイントをまとめました。セルに<code>=UNICHAR(コード)</code>の形で入力するだけで表示できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>コード</th><th>用途</th></tr></thead><tbody><tr><td>✓</td><td>10003</td><td>チェックマーク（完了表示）</td></tr><tr><td>✗</td><td>10007</td><td>バツ印（NG表示）</td></tr><tr><td>★</td><td>9733</td><td>黒星（重要マーク）</td></tr><tr><td>☆</td><td>9734</td><td>白星（評価表示）</td></tr><tr><td>→</td><td>8594</td><td>右矢印（フロー図）</td></tr><tr><td>←</td><td>8592</td><td>左矢印</td></tr><tr><td>↑</td><td>8593</td><td>上矢印</td></tr><tr><td>↓</td><td>8595</td><td>下矢印</td></tr><tr><td>※</td><td>8251</td><td>注釈マーク</td></tr><tr><td>¥</td><td>165</td><td>円記号</td></tr><tr><td>©</td><td>169</td><td>著作権マーク</td></tr><tr><td>®</td><td>174</td><td>登録商標マーク</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">これらをIF関数と組み合わせれば、ステータス管理表で「完了→✓」「未完了→空欄」のような自動表示も実現できます。</p>



<h3 class="wp-block-heading"><span id="toc12">IF関数・CONCATENATE関数と組み合わせる</span></h3>



<p class="wp-block-paragraph">UNICHAR関数は他の関数と組み合わせることで真価を発揮します。代表的な組み合わせを見ていきましょう。</p>



<p class="wp-block-paragraph">たとえば、A列に進捗率（%）が入っていて、80%以上なら✓、未満ならバツを表示したい場合は<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせて次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;=0.8, UNICHAR(10003), UNICHAR(10007))</code></pre>



<p class="wp-block-paragraph">また、<a href="https://mashukabu.com/spreadsheet-concatenate-function/">CONCATENATE関数</a>や<code>&</code>演算子と組み合わせると、装飾付きのテキストも作れます。</p>



<pre class="wp-block-code"><code>=&quot;【重要】&quot;&amp;UNICHAR(9733)&amp;&quot; &quot;&amp;A1&amp;&quot; &quot;&amp;UNICHAR(9733)</code></pre>



<p class="wp-block-paragraph">A1に「契約更新」と入っていれば、結果は「【重要】★ 契約更新 ★」になります。レポート見出しや通知文の装飾に役立ちます。</p>



<p class="wp-block-paragraph">3段階評価のような表示にも応用できます。たとえばB列に評価点（1〜3）が入っているとき、次の数式で★の数を可変表示できます。</p>



<pre class="wp-block-code"><code>=REPT(UNICHAR(9733), B1) &amp; REPT(UNICHAR(9734), 3-B1)</code></pre>



<p class="wp-block-paragraph">B1が「2」なら「★★☆」、3なら「★★★」と表示されます。REPT関数（文字を指定回数繰り返す関数）と組み合わせれば、見た目に直感的な評価レポートが数式だけで作れます。</p>



<h2 class="wp-block-heading"><span id="toc13">UNICHAR関数のエラーと対処法</span></h2>



<p class="wp-block-paragraph">UNICHAR関数を使っていると、ときどきエラーが返ることがあります。原因と対処法を押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc14">#VALUE!が出る原因と解決策</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code>エラーは、引数が有効範囲外の場合に発生します。具体的な原因は次のとおりです。</p>



<ul class="wp-block-list"><li>引数が0：UNICHAR関数は1以上の整数を要求するため、0はエラー</li><li>引数が負数：マイナスの値は無効</li><li>引数が1,114,111超：Unicodeコードポイントの最大値を超えると無効</li><li>引数が文字列：数値以外を指定するとエラー</li></ul>



<pre class="wp-block-code"><code>=UNICHAR(0)         → #VALUE!
=UNICHAR(-1)        → #VALUE!
=UNICHAR(1114112)   → #VALUE!
=UNICHAR(&quot;abc&quot;)     → #VALUE!</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>で囲むと、エラーを安全に処理できます。</p>



<pre class="wp-block-code"><code>=IFERROR(UNICHAR(A1), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">これでA1が無効な値でも、エラーが空欄で返るようになります。ユーザーがコードポイントを直接入力するような帳票では、IFERRORでラップしておくと見た目を崩さずに済みます。</p>



<h3 class="wp-block-heading"><span id="toc15">サロゲートペア・範囲外コードへの注意</span></h3>



<p class="wp-block-paragraph">絵文字などU+10000以上の補助文字（サロゲートペアと呼ばれる領域）は、内部的に2つのコードで表現されます。サロゲート領域（D800〜DFFF）の単独コードを指定すると<code>#N/A</code>エラーが返ります。</p>



<p class="wp-block-paragraph">また、絵文字は環境やフォントによって表示が異なる場合があります。スプレッドシートでは動作することもありますが、安定して使いたい場合は基本多言語面（U+0000〜U+FFFF）の範囲内で運用するのが無難です。</p>



<p class="wp-block-paragraph">業務利用では、囲み数字・矢印・チェックマーク・記号類などU+FFFF以下のコードポイントに絞って使えば、ほぼトラブルなく運用できます。</p>



<h2 class="wp-block-heading"><span id="toc16">UNICODE関数との逆変換ペアで使う</span></h2>



<p class="wp-block-paragraph">UNICHAR関数と<a href="https://mashukabu.com/spreadsheet-unicode-function/">UNICODE関数</a>は「逆変換ペア」として組み合わせると、使い方の幅が一気に広がります。UNICHARが「数値→文字」、UNICODEが「文字→数値」を担当します。</p>



<pre class="wp-block-code"><code>=UNICHAR(65)             → A
=UNICODE(&quot;A&quot;)            → 65
=UNICHAR(UNICODE(&quot;①&quot;))  → ①（往復変換）</code></pre>



<p class="wp-block-paragraph">実務では、文字種判定（英数字か日本語か）に活用できます。A1に文字が入っているとき、次のように書けばコードポイントから判別できます。</p>



<pre class="wp-block-code"><code>=IF(UNICODE(A1)&lt;128, &quot;ASCII&quot;, &quot;Unicode拡張&quot;)</code></pre>



<p class="wp-block-paragraph">また、コードポイント一覧表を作成して、UNICHARで文字を表示しUNICODEで番号を再取得すると、双方向の変換チェックも簡単に行えます。データクレンジングや文字化け調査など文字コードに関する業務では、この2つの関数をセットで覚えておくと心強い味方になります。</p>



<h2 class="wp-block-heading"><span id="toc17">よくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc18">Q. UNICHAR関数とCHAR関数の違いは何ですか？</span></h3>



<p class="wp-block-paragraph">CHAR関数はASCII/ANSI範囲（主に1〜255）の英数字・記号を扱います。一方、UNICHAR関数はUnicode全範囲（1〜1,114,111）に対応しており、ひらがな・カタカナ・漢字・絵文字・囲み数字など、より広い文字を扱えます。日本語や特殊記号を使う場合はUNICHARを選んでください。</p>



<h3 class="wp-block-heading"><span id="toc19">Q. ①②③…と連番で入力するにはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph"><code>=UNICHAR(9311+ROW(A1))</code> をA1に入力して下方向にコピーすると、①〜⑳まで自動で連番が生成されます。9311が①（コード9312）の1つ前の番号で、ROWの行番号を足す仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc20">Q. UNICHAR関数でエラーが出ます</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> エラーは、引数が0以下・1,114,111超・文字列のときに発生します。<code>=IFERROR(UNICHAR(A1), "")</code> のようにIFERRORでラップすると、エラーを空欄で返せます。</p>



<h3 class="wp-block-heading"><span id="toc21">Q. スプレッドシートのUNICHAR関数はExcelと同じですか？</span></h3>



<p class="wp-block-paragraph">はい、引数・動作ともにExcelのUNICHAR関数と同じです。コードポイントの範囲や挙動も同一ですので、ExcelとGoogleスプレッドシートを行き来する業務でも数式をそのまま移植できます。</p>



<h3 class="wp-block-heading"><span id="toc22">Q. 絵文字（😀や📊など）はUNICHAR関数で表示できますか？</span></h3>



<p class="wp-block-paragraph">はい、U+1F300 以降の絵文字も10進コードポイントで指定すれば表示可能です。たとえば<code>=UNICHAR(128202)</code>で「📊」が表示できます。ただし、フォントやOSによって描画が異なる点と、Excel旧バージョンやメール文面では文字化けの可能性がある点に注意してください。社内資料や帳票では、基本多言語面（U+0000〜U+FFFF）の記号で代替するのが無難です。</p>



<h3 class="wp-block-heading"><span id="toc23">Q. 16進のUnicodeコードポイントは指定できますか？</span></h3>



<p class="wp-block-paragraph">UNICHAR関数の引数は10進数のみ受け付けます。16進のコードポイント（例: U+2605）を扱う場合は、<code>HEX2DEC</code> 関数で10進数に変換してから渡してください。たとえば<code>=UNICHAR(HEX2DEC("2605"))</code>と書けば「★」が表示できます。Unicode公式表は16進表記なので、変換用の小さな表をシート内に作っておくと作業がスムーズです。</p>



<h3 class="wp-block-heading"><span id="toc24">Q. ㉑以降の囲み数字を連番で生成するには？</span></h3>



<p class="wp-block-paragraph">囲み数字は⑳（コード9331）と㉑（コード12881）でブロックが分かれているため、IF関数で分岐させる必要があります。<code>=IF(ROW(A1)<=20, UNICHAR(9311+ROW(A1)), UNICHAR(12860+ROW(A1)))</code>をA1にコピーすれば、㉑㉒…まで連続した連番が作成できます。</p>



<h2 class="wp-block-heading"><span id="toc25">まとめ</span></h2>



<p class="wp-block-paragraph">スプレッドシートのUNICHAR関数は、Unicodeコードポイントを文字に変換するシンプルかつ強力な関数です。最後にポイントを振り返っておきましょう。</p>



<ul class="wp-block-list"><li>構文は<code>=UNICHAR(数値)</code>で、引数は1〜1,114,111の整数を指定</li><li>囲み数字は<code>=UNICHAR(9311+ROW(A1))</code>で①〜⑳まで自動連番化できる</li><li>㉑以降はIF関数で分岐させればシームレスに連番化できる</li><li>チェックマーク・矢印・特殊記号もコードポイントから簡単表示できる</li><li>絵文字（📊✅⭐など）も10進コードで表示できるが、フォント環境に注意</li><li>主要Unicode範囲（矢印は8592〜、Dingbatsは9984〜など）を覚えると検索が楽</li><li>CHAR関数はASCII範囲のみ、UNICHARはUnicode全範囲に対応</li><li><code>#VALUE!</code>はIFERROR関数でラップして対処</li><li>UNICODE関数との逆変換ペアで使うと文字種判定や一覧表作成に便利</li></ul>



<p class="wp-block-paragraph">特にROW関数と組み合わせた囲み数字の連番生成は、リストや手順書を作るときに大幅な時短につながります。まずは本記事のコードポイント一覧表をブックマークしておき、必要なときにコピペして使ってみてください。慣れてくれば、IF関数やCONCATENATE関数との応用で、業務帳票の見せ方そのものを変えられるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-unichar-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのUNICHAR関数の使い方｜チェックマーク・丸数字・矢印を数式で挿入する</title>
		<link>https://mashukabu.com/excel-function-howto-use-unichar/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-unichar/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 30 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHAR関数]]></category>
		<category><![CDATA[UNICHAR関数]]></category>
		<category><![CDATA[UNICODE関数]]></category>
		<category><![CDATA[チェックマーク]]></category>
		<category><![CDATA[丸数字]]></category>
		<category><![CDATA[特殊文字]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2366</guid>

					<description><![CDATA[ExcelのUNICHAR関数でチェックマーク・丸数字・矢印など4種の記号を数式から挿入する方法を解説。CHAR関数との違いやIF関数との実践例もわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelでチェックマークや丸数字を数式で入れたい」と思ったことはありませんか？<br>記号をコピペで貼り付ける方法もありますが、条件に応じて自動表示できたら便利ですよね。</p>



<p class="wp-block-paragraph">ExcelのUNICHAR関数を使えば、数値を指定するだけで好きな記号や文字を表示できます。<br>この記事では、UNICHAR関数の使い方を基本の書き方から実務で役立つ応用パターンまで紹介します。<br><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>との違いや、<a href="https://mashukabu.com/excel-function-howto-use-unicode/">UNICODE関数</a>との逆変換ペアもまとめました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">UNICHAR関数とは？</a><ol><li><a href="#toc2" tabindex="0">UNICHAR関数の読み方</a></li><li><a href="#toc3" tabindex="0">UNICHAR関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">UNICHAR関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数：数値</a></li></ol></li><li><a href="#toc7" tabindex="0">UNICHAR関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">直接数値を入力して文字を表示する</a></li><li><a href="#toc9" tabindex="0">セル参照で引数を指定する</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使えるコードポイント対応表</a></li><li><a href="#toc11" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc12" tabindex="0">チェックマーク（✓✗）を条件で自動表示する</a></li><li><a href="#toc13" tabindex="0">丸数字（①②③）を連番で自動生成する</a></li><li><a href="#toc14" tabindex="0">矢印（▲▼）をIF関数と組み合わせて増減表示する</a></li><li><a href="#toc15" tabindex="0">セル内改行を挿入する（UNICHAR(10)）</a></li></ol></li><li><a href="#toc16" tabindex="0">UNICHAR関数のエラーと対処法</a><ol><li><a href="#toc17" tabindex="0">#VALUE!エラー：数値が範囲外</a></li><li><a href="#toc18" tabindex="0">#N/Aエラー：サロゲート領域</a></li></ol></li><li><a href="#toc19" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc20" tabindex="0">CHAR関数との違い（ANSI vs Unicode）</a></li><li><a href="#toc21" tabindex="0">UNICODE関数との関係（逆変換ペア）</a></li></ol></li><li><a href="#toc22" tabindex="0">星評価（★★★☆☆）をUNICHAR関数で自動生成する</a><ol><li><a href="#toc23" tabindex="0">REPT関数との組み合わせ</a></li><li><a href="#toc24" tabindex="0">5段階を超える評価には</a></li></ol></li><li><a href="#toc25" tabindex="0">KPIダッシュボードでUNICHAR関数を活用する</a><ol><li><a href="#toc26" tabindex="0">達成状況を3色アイコンで表示する</a></li><li><a href="#toc27" tabindex="0">前月比を記号と数値でセットに表示する</a></li><li><a href="#toc28" tabindex="0">記号の統一でレポートの見た目をそろえる</a></li></ol></li><li><a href="#toc29" tabindex="0">UNICHAR関数のよくある質問（FAQ）</a><ol><li><a href="#toc30" tabindex="0">Q1. UNICHAR関数はGoogleスプレッドシートでも使える？</a></li><li><a href="#toc31" tabindex="0">Q2. UNICHAR関数で絵文字を表示できる？</a></li><li><a href="#toc32" tabindex="0">Q3. UNICHARでよく使う記号をまとめて確認する方法は？</a></li><li><a href="#toc33" tabindex="0">Q4. UNICHAR関数で「?」が表示される場合の原因は？</a></li></ol></li><li><a href="#toc34" tabindex="0">まとめ</a><ol><li><a href="#toc35" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">UNICHAR関数とは？</span></h2>



<p class="wp-block-paragraph">UNICHAR関数は、<strong>Unicode（ユニコード）のコードポイントを指定して、対応する文字を返す</strong>関数です。</p>



<p class="wp-block-paragraph">たとえば <code>=UNICHAR(65)</code> と入力すると「A」が返ります。<br><code>=UNICHAR(10003)</code> なら「✓」（チェックマーク）です。<br>アルファベットから漢字、記号まで、番号ひとつであらゆる文字を表示できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>UNICHAR関数はExcel 2016以降で使えます。Excel 2019・2021・Microsoft 365にも対応しています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">UNICHAR関数の読み方</span></h3>



<p class="wp-block-paragraph">読み方は「ユニキャラ関数」または「ユニコード・キャラクター関数」です。<br>「UNI」はUnicode（世界中の文字に一意の番号を割り当てた国際規格）、「CHAR」はCharacter（文字）の略です。</p>



<h3 class="wp-block-heading"><span id="toc3">UNICHAR関数でできること</span></h3>



<p class="wp-block-paragraph">UNICHAR関数を使うと、次のようなことができます。</p>



<ul class="wp-block-list"><li>チェックマーク（✓✗）を数式で表示する</li><li>丸数字（①②③&#8230;）を連番で自動生成する</li><li>矢印（▲▼）で増減の方向を見せる</li><li>セル内改行を数式で挿入する</li></ul>



<p class="wp-block-paragraph">いずれも、コードポイント（文字に対応する番号）を指定するだけです。</p>



<h2 class="wp-block-heading"><span id="toc4">UNICHAR関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc5">基本構文</span></h3>



<pre class="wp-block-code"><code>=UNICHAR(数値)</code></pre>



<h3 class="wp-block-heading"><span id="toc6">引数：数値</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>数値</td><td>必須</td><td>表示したい文字のUnicodeコードポイントを指定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はたったの1つです。<br>指定できる範囲は1〜1,114,111です。<br>この範囲を外れるとエラーになります。</p>



<p class="wp-block-paragraph">数値は直接入力するか、セル参照で指定できます。</p>



<h2 class="wp-block-heading"><span id="toc7">UNICHAR関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc8">直接数値を入力して文字を表示する</span></h3>



<p class="wp-block-paragraph">数式に番号を直接書くのが一番シンプルな使い方です。</p>



<pre class="wp-block-code"><code>=UNICHAR(65)      → A
=UNICHAR(12354)   → あ
=UNICHAR(10003)   → ✓</code></pre>



<p class="wp-block-paragraph">結果を見れば、番号と文字の対応がすぐにわかります。<br>よく使う記号の番号をメモしておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">セル参照で引数を指定する</span></h3>



<p class="wp-block-paragraph">セルに入力された番号を参照するパターンです。</p>



<pre class="wp-block-code"><code>=UNICHAR(A1)</code></pre>



<p class="wp-block-paragraph">A1に「9733」と入力されていれば、★（黒い星）が表示されます。<br>一覧表からまとめて変換したいときに使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc10">実務で使えるコードポイント対応表</span></h2>



<p class="wp-block-paragraph">よく使う記号のコードポイントをまとめました。<br>数式を書くときの参照用にお使いください。</p>



<p class="wp-block-paragraph"><strong>チェック・投票系</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>コードポイント</th><th>数式</th></tr></thead><tbody><tr><td>✓</td><td>10003</td><td>=UNICHAR(10003)</td></tr><tr><td>✔</td><td>10004</td><td>=UNICHAR(10004)</td></tr><tr><td>✗</td><td>10007</td><td>=UNICHAR(10007)</td></tr><tr><td>☑</td><td>9745</td><td>=UNICHAR(9745)</td></tr><tr><td>☐</td><td>9744</td><td>=UNICHAR(9744)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>矢印・三角系</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>コードポイント</th><th>数式</th></tr></thead><tbody><tr><td>→</td><td>8594</td><td>=UNICHAR(8594)</td></tr><tr><td>←</td><td>8592</td><td>=UNICHAR(8592)</td></tr><tr><td>↑</td><td>8593</td><td>=UNICHAR(8593)</td></tr><tr><td>↓</td><td>8595</td><td>=UNICHAR(8595)</td></tr><tr><td>▲</td><td>9650</td><td>=UNICHAR(9650)</td></tr><tr><td>▼</td><td>9660</td><td>=UNICHAR(9660)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>丸数字</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>コードポイント</th><th>計算式</th></tr></thead><tbody><tr><td>①</td><td>9312</td><td>9311 + 1</td></tr><tr><td>②</td><td>9313</td><td>9311 + 2</td></tr><tr><td>③</td><td>9314</td><td>9311 + 3</td></tr><tr><td>&#8230;</td><td>&#8230;</td><td>9311 + n</td></tr><tr><td>⑳</td><td>9331</td><td>9311 + 20</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">丸数字は「9311 + 番号」で求められます。<br>この規則性を使えば、連番を自動生成できます。</p>



<p class="wp-block-paragraph"><strong>その他</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>コードポイント</th><th>用途</th></tr></thead><tbody><tr><td>★</td><td>9733</td><td>評価・レーティング</td></tr><tr><td>☆</td><td>9734</td><td>評価・レーティング</td></tr><tr><td>（改行）</td><td>10</td><td>セル内改行</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc11">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc12">チェックマーク（✓✗）を条件で自動表示する</span></h3>



<p class="wp-block-paragraph">タスク管理表で「完了」なら✓、そうでなければ✗を表示する例です。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;完了&quot;, UNICHAR(10003), UNICHAR(10007))</code></pre>



<p class="wp-block-paragraph">A2が「完了」のとき✓、それ以外のとき✗が表示されます。<br>IF関数と組み合わせるだけで、ステータスの視認性がグッと上がります。</p>



<p class="wp-block-paragraph">チェックボックス風にしたい場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;完了&quot;, UNICHAR(9745), UNICHAR(9744))</code></pre>



<p class="wp-block-paragraph">☑と☐が切り替わるので、見た目がよりわかりやすくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">丸数字（①②③）を連番で自動生成する</span></h3>



<p class="wp-block-paragraph">行番号を使って丸数字を自動的に振るパターンです。</p>



<pre class="wp-block-code"><code>=UNICHAR(9311+ROW(A1))</code></pre>



<p class="wp-block-paragraph">ROW(A1)は「1」を返すので、9311+1=9312で①になります。<br>下にコピーすれば②③④&#8230;と自動で連番になります。</p>



<p class="wp-block-paragraph">番号を任意の値にしたい場合は、セル参照にします。</p>



<pre class="wp-block-code"><code>=UNICHAR(9311+A2)</code></pre>



<p class="wp-block-paragraph">A2に「5」と入力すれば⑤が表示されます。<br>丸数字は①〜⑳（9312〜9331）の範囲で使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">矢印（▲▼）をIF関数と組み合わせて増減表示する</span></h3>



<p class="wp-block-paragraph">前月比の増減を▲▼で表すパターンです。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;B1, UNICHAR(9650), IF(B2&lt;B1, UNICHAR(9660), &quot;－&quot;))</code></pre>



<p class="wp-block-paragraph">B2がB1より大きければ▲（上向き三角）を表示します。<br>小さければ▼（下向き三角）、同じなら「－」です。</p>



<p class="wp-block-paragraph">数値と組み合わせると、さらにわかりやすくなります。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;B1, UNICHAR(9650)&amp;B2-B1, IF(B2&lt;B1, UNICHAR(9660)&amp;B1-B2, &quot;－&quot;))</code></pre>



<p class="wp-block-paragraph">▲500、▼200のように、方向と差額を一目で確認できます。<br>売上レポートや在庫管理表で活躍するパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">セル内改行を挿入する（UNICHAR(10)）</span></h3>



<p class="wp-block-paragraph">2つのセルの値を改行つきで結合するパターンです。</p>



<pre class="wp-block-code"><code>=A2&amp;UNICHAR(10)&amp;B2</code></pre>



<p class="wp-block-paragraph">UNICHAR(10)はラインフィード（改行コード）を返します。<br><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>の <code>CHAR(10)</code> とまったく同じ動きです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>セル内改行を表示するには、セルの書式設定で「折り返して全体を表示する」を有効にしてください。設定しないと改行が見えません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">UNICHAR関数のエラーと対処法</span></h2>



<p class="wp-block-paragraph">UNICHAR関数で発生するエラーは主に2種類です。</p>



<h3 class="wp-block-heading"><span id="toc17">#VALUE!エラー：数値が範囲外</span></h3>



<p class="wp-block-paragraph">指定した数値が有効範囲（1〜1,114,111）の外にあるとき発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>数式の例</th><th>説明</th></tr></thead><tbody><tr><td>0を指定</td><td>=UNICHAR(0)</td><td>0はUnicodeの有効範囲外</td></tr><tr><td>負の値</td><td>=UNICHAR(-1)</td><td>負の数は指定できない</td></tr><tr><td>上限超え</td><td>=UNICHAR(1114112)</td><td>1,114,111が上限</td></tr><tr><td>数値以外</td><td>=UNICHAR(&#8220;あ&#8221;)</td><td>文字列は指定できない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">対処法は、有効範囲の数値を指定することです。<br>入力ミスが心配な場合はIFERROR関数でガードしましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(UNICHAR(A1), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">エラー時に空白を返すので、表が崩れるのを防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">#N/Aエラー：サロゲート領域</span></h3>



<p class="wp-block-paragraph">55,296〜57,343の範囲を指定すると#N/Aエラーになります。</p>



<pre class="wp-block-code"><code>=UNICHAR(55296)  → #N/A</code></pre>



<p class="wp-block-paragraph">この範囲はサロゲート領域（Unicodeで特殊文字を表現するために予約された番号帯）です。<br>単独では文字として使えないため、エラーが返ります。</p>



<p class="wp-block-paragraph">通常の業務で意図的にこの範囲を使うことはほぼありません。<br>データに含まれる可能性がある場合は、IFERROR関数で対処してください。</p>



<pre class="wp-block-code"><code>=IFERROR(UNICHAR(A1), &quot;変換不可&quot;)</code></pre>



<h2 class="wp-block-heading"><span id="toc19">似た関数との違い・使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc20">CHAR関数との違い（ANSI vs Unicode）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>もUNICHAR関数と同じく「番号→文字」の変換関数です。<br>ただし、対応する範囲が大きく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>UNICHAR関数</th><th><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a></th></tr></thead><tbody><tr><td>対応文字コード</td><td>Unicode（全域）</td><td>ANSI / Mac文字セット</td></tr><tr><td>指定できる範囲</td><td>1〜1,114,111</td><td>1〜255</td></tr><tr><td>「A」の結果</td><td>A</td><td>A</td></tr><tr><td>環境依存</td><td>なし</td><td>あり（Windows / Macで異なる）</td></tr><tr><td>対応バージョン</td><td>Excel 2016〜</td><td>Excel 2007〜</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ASCII範囲（1〜127）では、どちらも同じ結果を返します。<br>たとえば65を指定すれば、どちらも「A」です。</p>



<p class="wp-block-paragraph">違いが出るのは128以上の番号です。<br>CHAR関数は255までしか対応していません。<br>チェックマークや丸数字は表示できないのです。</p>



<p class="wp-block-paragraph">記号や特殊文字を使いたい場合はUNICHAR関数を選びましょう。<br>改行（コード10）のように低い番号だけで済む場面なら、CHAR関数でも問題ありませんよ。</p>



<h3 class="wp-block-heading"><span id="toc21">UNICODE関数との関係（逆変換ペア）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-unicode/">UNICODE関数</a>は、UNICHAR関数と逆の働きをします。<br>UNICHAR関数が「番号→文字」なら、UNICODE関数は「文字→番号」です。</p>



<pre class="wp-block-code"><code>=UNICHAR(10003)       → ✓
=UNICODE(&quot;✓&quot;)         → 10003</code></pre>



<p class="wp-block-paragraph">セットで覚えておくと便利です。<br>「この記号の番号は何だろう？」と思ったら、UNICODE関数で調べてみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換方向</th><th>使用例</th><th>結果</th></tr></thead><tbody><tr><td>UNICHAR</td><td>番号→文字</td><td>=UNICHAR(9733)</td><td>★</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-unicode/">UNICODE</a></td><td>文字→番号</td><td>=UNICODE(&#8220;★&#8221;)</td><td>9733</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じように、<a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-code/">CODE関数</a>もペアの関係です。<br>4つの関数をまとめると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>ペア</th><th>番号→文字</th><th>文字→番号</th><th>対応範囲</th></tr></thead><tbody><tr><td>Unicode系</td><td>UNICHAR</td><td><a href="https://mashukabu.com/excel-function-howto-use-unicode/">UNICODE</a></td><td>Unicode全域</td></tr><tr><td>ANSI系</td><td><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR</a></td><td><a href="https://mashukabu.com/excel-function-howto-use-code/">CODE</a></td><td>1〜255</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc22">星評価（★★★☆☆）をUNICHAR関数で自動生成する</span></h2>



<p class="wp-block-paragraph">アンケート結果や商品評価表などで、★の数で5段階評価を視覚的に表したいことがあります。UNICHAR関数とREPT関数を組み合わせると、評点に応じた星の連続表示を数式で実現できます。</p>



<h3 class="wp-block-heading"><span id="toc23">REPT関数との組み合わせ</span></h3>



<p class="wp-block-paragraph">REPT関数は「文字を指定した回数繰り返す」関数です。評価スコアがA2セルに入っているとき、次の数式で5段階の星表示を作れます。</p>



<pre class="wp-block-code"><code>=REPT(UNICHAR(9733),A2)&amp;REPT(UNICHAR(9734),5-A2)</code></pre>



<p class="wp-block-paragraph">A2が「3」なら「★★★☆☆」、「5」なら「★★★★★」が表示されます。</p>



<ul class="wp-block-list"><li><code>UNICHAR(9733)</code> → ★（黒星）</li><li><code>UNICHAR(9734)</code> → ☆（白星）</li></ul>



<p class="wp-block-paragraph">評価が1〜5の整数の場合に正しく動作します。0または5以外の数値は想定外になるため、データ側でバリデーションしておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">5段階を超える評価には</span></h3>



<p class="wp-block-paragraph">評価が10段階など細かい場合は、REPT の繰り返し数を動的にしてください。たとえば10点満点のスコアを5つの★に変換するには次のように書きます。</p>



<pre class="wp-block-code"><code>=REPT(UNICHAR(9733),ROUND(A2/2,0))&amp;REPT(UNICHAR(9734),5-ROUND(A2/2,0))</code></pre>



<p class="wp-block-paragraph">10点満点のA2を2で割って丸め、★の個数に変換しています。</p>



<h2 class="wp-block-heading"><span id="toc25">KPIダッシュボードでUNICHAR関数を活用する</span></h2>



<p class="wp-block-paragraph">チェックマーク・矢印・星の3種類の記号を組み合わせると、数式だけで視覚的なKPIダッシュボードを作れます。フォントや画像を使わず、データ更新と同時に記号が自動で切り替わるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc26">達成状況を3色アイコンで表示する</span></h3>



<p class="wp-block-paragraph">売上目標に対する達成率に応じて、○△×を表示するパターンです。</p>



<pre class="wp-block-code"><code>=IF(B2/C2&gt;=1, UNICHAR(9711), IF(B2/C2&gt;=0.8, UNICHAR(9651), UNICHAR(10007)))</code></pre>



<ul class="wp-block-list"><li>達成率100%以上 → ○（9711）</li><li>達成率80〜99% → △（9651）</li><li>達成率80%未満 → ✗（10007）</li></ul>



<p class="wp-block-paragraph">C2に目標値、B2に実績値が入っている場合に使えます。3段階で状況を一目で把握できるので、進捗管理の月次レポートに貼り付けるだけで見栄えが変わります。</p>



<h3 class="wp-block-heading"><span id="toc27">前月比を記号と数値でセットに表示する</span></h3>



<p class="wp-block-paragraph">売上の前月比を▲▼と数値で組み合わせて1つのセルに表示するパターンです。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;B1, UNICHAR(9650)&amp;TEXT(B2-B1,&quot;#,##0&quot;), IF(B2&lt;B1, UNICHAR(9660)&amp;TEXT(B1-B2,&quot;#,##0&quot;), &quot;－&quot;))</code></pre>



<ul class="wp-block-list"><li>前月より増加 → ▲1,200（のように数値付きで表示）</li><li>前月より減少 → ▼800</li><li>変化なし → 「－」</li></ul>



<p class="wp-block-paragraph">TEXT関数で数値をカンマ付き書式にして、UNICHAR記号と文字列結合しています。<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の書式コード</a>を変えれば、パーセント表示なども簡単に対応できます。</p>



<h3 class="wp-block-heading"><span id="toc28">記号の統一でレポートの見た目をそろえる</span></h3>



<p class="wp-block-paragraph">UNICHAR関数を使うメリットの1つは、コピーや共有をしても記号が崩れないことです。フォントの種類を問わずUnicodeの番号で文字が決まるため、Windows・Macの違いやフォント環境による表示ブレが起きにくいです。</p>



<p class="wp-block-paragraph">一方、Wingdingsなどの飾り文字フォントで入力した記号は、フォントが変わると見た目が崩れます。複数人で共有するExcelファイルであれば、UNICHAR関数で管理するほうが安全ですよ。</p>



<h2 class="wp-block-heading"><span id="toc29">UNICHAR関数のよくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc30">Q1. UNICHAR関数はGoogleスプレッドシートでも使える？</span></h3>



<p class="wp-block-paragraph">はい。Googleスプレッドシートでも <code>=UNICHAR(数値)</code> の構文はExcelとまったく同じです。コードポイントの対応表もUnicodeに準拠しているため、Excelで確認した番号をそのまま使えます。</p>



<p class="wp-block-paragraph">ただし、絵文字などの一部の文字はスプレッドシートとExcelで表示が異なる場合があります（環境のフォント依存）。</p>



<h3 class="wp-block-heading"><span id="toc31">Q2. UNICHAR関数で絵文字を表示できる？</span></h3>



<p class="wp-block-paragraph">技術的には可能ですが、実用には注意が必要です。絵文字はUnicodeの U+1F600 以降（10進数で128512〜）に収録されています。</p>



<pre class="wp-block-code"><code>=UNICHAR(128512)  → 😀（環境によって表示）</code></pre>



<p class="wp-block-paragraph">ただし、Excelでの絵文字表示はフォントや環境に強く依存します。業務用ファイルで安定して使いたい場合は、チェックマーク（✓✗）や矢印（▲▼）など10000番台の記号を使うのが無難です。</p>



<h3 class="wp-block-heading"><span id="toc32">Q3. UNICHARでよく使う記号をまとめて確認する方法は？</span></h3>



<p class="wp-block-paragraph">A1:A1000の各セルに「=UNICHAR(ROW()+9000)」のような数式を入れると、連番のコードポイントに対応する文字を一覧で確認できます。</p>



<pre class="wp-block-code"><code>A1: =IFERROR(UNICHAR(9000+ROW(A1)),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">下にコピーすれば 9001, 9002, 9003&#8230; に対応する文字が並びます。欲しい記号のコードポイントを効率よく探したいときに使えます。</p>



<h3 class="wp-block-heading"><span id="toc33">Q4. UNICHAR関数で「?」が表示される場合の原因は？</span></h3>



<p class="wp-block-paragraph">指定したコードポイントに対応する文字がフォントに含まれていないと「?」や「□」が表示されます。これはUNICHAR関数の問題ではなく、フォントの問題です。</p>



<p class="wp-block-paragraph">「Segoe UI」「Noto Sans」など幅広い文字を収録したフォントに変更すると表示されるケースが多いです。また「游ゴシック」などWindows標準フォントでも多数の記号に対応しています。</p>



<h2 class="wp-block-heading"><span id="toc34">まとめ</span></h2>



<p class="wp-block-paragraph">UNICHAR関数は <code>=UNICHAR(数値)</code> と書くだけで、Unicodeの文字を表示できる関数です。</p>



<ul class="wp-block-list"><li>引数は<strong>数値</strong>の1つだけ（1〜1,114,111の範囲）</li><li><strong>チェックマーク・丸数字・矢印</strong>など、特殊記号を数式で挿入できる</li><li>IF関数やROW関数と組み合わせれば、<strong>条件付きの記号表示</strong>や<strong>連番生成</strong>も自動化できる</li><li><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>と違い、256以上の記号も表示できる</li><li><a href="https://mashukabu.com/excel-function-howto-use-unicode/">UNICODE関数</a>と逆変換のペアで使うと便利</li><li>エラーが心配なときはIFERROR関数でガードする</li></ul>



<p class="wp-block-paragraph">記号の挿入や番号の確認に、ぜひUNICHAR関数を活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc35">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-unicode/">ExcelのUNICODE関数の使い方｜CODE関数との違いも解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-char/">ExcelのCHAR関数の使い方｜文字コードから文字を取得する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-code/">ExcelのCODE関数の使い方｜文字を文字コード番号に変換する方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-unichar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのCHAR関数の使い方｜文字コードから文字を取得する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-char/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-char/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 07 Jul 2022 09:18:02 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHAR関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[改行]]></category>
		<category><![CDATA[文字コード]]></category>
		<category><![CDATA[文字列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2308</guid>

					<description><![CDATA[ExcelのCHAR関数の使い方を解説。文字コードから文字を取得する基本から、CHAR(10)で改行を挿入する実務テクニック、CODE関数との違いまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「数式でセル内改行を入れたいのに、Enterキーを押すと確定されてしまう&#8230;」。<br>こんな経験、ありませんか？</p>



<p class="wp-block-paragraph">ExcelのCHAR関数を使えば、数式の中で改行や特殊文字を自在に挿入できます。<br>この記事では、基本の使い方からCHAR(10)で改行を入れる実務テクニックまで紹介します。<br>CODE関数との違いや文字コード早見表もまとめたので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">CHAR関数とは？</a></li><li><a href="#toc2" tabindex="0">CHAR関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">CHAR関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字コードからアルファベットを取得する</a></li><li><a href="#toc7" tabindex="0">セル参照で文字コードを指定する</a></li></ol></li><li><a href="#toc8" tabindex="0">CHAR関数の実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：文字列を改行付きで結合する</a></li><li><a href="#toc10" tabindex="0">パターン2：住所を改行付きで1つのセルにまとめる</a></li><li><a href="#toc11" tabindex="0">パターン3：SUBSTITUTE関数と組み合わせて改行を削除する</a></li><li><a href="#toc12" tabindex="0">パターン4：タブ文字を挿入してテキスト出力を整形する</a></li></ol></li><li><a href="#toc13" tabindex="0">主要な文字コード早見表</a></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">CODE関数（逆変換）</a></li><li><a href="#toc17" tabindex="0">UNICHAR関数（Unicode対応版）</a></li><li><a href="#toc18" tabindex="0">文字変換関数の全体像</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">CHAR関数とは？</span></h2>



<p class="wp-block-paragraph">CHAR（キャラクター）関数は、<strong>文字コードの番号から対応する文字を返す</strong>関数です。<br>名前は「Character（文字）」の略に由来します。</p>



<p class="wp-block-paragraph">たとえば <code>=CHAR(65)</code> と入力すると「A」が返ります。<br>65はアルファベット大文字Aの文字コード番号です。</p>



<p class="wp-block-paragraph">文字コードとは、コンピュータが文字を管理するために振った番号のことです。<br>CHAR関数はこの番号を指定して、対応する文字を取り出します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHAR関数はExcel 2007以降すべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で利用可能です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">CHAR関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=CHAR(数値)</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>数値</td><td>必須</td><td>1〜255の範囲で文字コード番号を指定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はたったの1つです。<br>1〜255の整数を指定するか、セル参照で数値を渡します。</p>



<p class="wp-block-paragraph">Windows版ExcelではANSI文字セット、Mac版ではMacintosh文字セットが使われます。<br>アルファベットや数字、基本的な記号は共通なので、通常の業務では違いを意識する必要はありません。</p>



<h2 class="wp-block-heading"><span id="toc5">CHAR関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">文字コードからアルファベットを取得する</span></h3>



<p class="wp-block-paragraph">文字コード65〜90が大文字のA〜Zに対応しています。<br>実際に試してみましょう。</p>



<pre class="wp-block-code"><code>=CHAR(65)</code></pre>



<p class="wp-block-paragraph">結果は「A」です。</p>



<p class="wp-block-paragraph">同じように <code>=CHAR(66)</code> なら「B」、<code>=CHAR(90)</code> なら「Z」が返ります。<br>小文字は97〜122の範囲です。</p>



<pre class="wp-block-code"><code>=CHAR(97)</code></pre>



<p class="wp-block-paragraph">結果は「a」です。</p>



<h3 class="wp-block-heading"><span id="toc7">セル参照で文字コードを指定する</span></h3>



<p class="wp-block-paragraph">セルに入力した数値をそのまま引数に使うこともできます。<br>セルA1に「72」が入っている場合、次のように書きます。</p>



<pre class="wp-block-code"><code>=CHAR(A1)</code></pre>



<p class="wp-block-paragraph">結果は「H」です。<br>A列に文字コード番号を並べて、B列でCHAR関数を使えば一覧表が作れますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">CHAR関数の実務活用パターン</span></h2>



<p class="wp-block-paragraph">CHAR関数の出番が最も多いのは、<strong>セル内改行の挿入</strong>です。<br>CHAR(10)が改行コード（LF）を表すので、数式の中で改行を入れられます。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：文字列を改行付きで結合する</span></h3>



<p class="wp-block-paragraph">「姓」と「名」を1つのセルにまとめつつ、改行で区切りたい場合です。<br>セルA2に「山田」、B2に「太郎」が入っているとします。</p>



<pre class="wp-block-code"><code>=A2&amp;CHAR(10)&amp;B2</code></pre>



<p class="wp-block-paragraph">結果は次のようになります。</p>



<pre class="wp-block-code"><code>山田
太郎</code></pre>



<p class="wp-block-paragraph"><code>&</code>（アンパサンド）で文字列を結合し、間にCHAR(10)を挟んでいます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>CHAR(10)で改行を入れても、セルの表示が1行のままになることがあります。対象セルを選んで「ホーム」タブの「折り返して全体を表示する」をオンにしてください。この設定がないと改行が見えません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">パターン2：住所を改行付きで1つのセルにまとめる</span></h3>



<p class="wp-block-paragraph">請求書や宛名ラベルで、住所を改行区切りで1セルにまとめるパターンです。<br>A2に「123-4567」、B2に「東京都」、C2に「千代田区1-1」が入っているとします。</p>



<pre class="wp-block-code"><code>=&quot;〒&quot;&amp;A2&amp;CHAR(10)&amp;B2&amp;CHAR(10)&amp;C2</code></pre>



<p class="wp-block-paragraph">結果はこうなります。</p>



<pre class="wp-block-code"><code>〒123-4567
東京都
千代田区1-1</code></pre>



<p class="wp-block-paragraph">複数のCHAR(10)を使えば、何行でも改行を挿入できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>結合するセルが多い場合は、<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>を使うとスッキリ書けます。<code>=TEXTJOIN(CHAR(10), TRUE, A2:C2)</code> のように区切り文字にCHAR(10)を指定すれば、セル範囲をまとめて改行付きで結合できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">パターン3：SUBSTITUTE関数と組み合わせて改行を削除する</span></h3>



<p class="wp-block-paragraph">CHAR関数で改行を「入れる」だけでなく、改行を「消す」パターンも覚えておくと便利です。<br><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, CHAR(10), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A2のセル内改行をすべて削除します。<br>改行は目に見えない文字なので、直接指定できません。<br>CHAR(10)で改行コードを指定するのがポイントです。</p>



<p class="wp-block-paragraph">改行をスペースに置き換えたい場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, CHAR(10), &quot; &quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc12">パターン4：タブ文字を挿入してテキスト出力を整形する</span></h3>



<p class="wp-block-paragraph">CHAR(9)はタブ文字を表します。<br>タブ区切りのテキストを数式で作りたい場合に使えます。</p>



<pre class="wp-block-code"><code>=A2&amp;CHAR(9)&amp;B2&amp;CHAR(9)&amp;C2</code></pre>



<p class="wp-block-paragraph">タブ区切りテキストはメモ帳やテキストエディタに貼り付けると列が揃います。<br>簡易的なTSV（タブ区切り値）データを作るときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc13">主要な文字コード早見表</span></h2>



<p class="wp-block-paragraph">よく使う文字コードをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字コード</th><th>CHAR関数の結果</th><th>用途・備考</th></tr></thead><tbody><tr><td>9</td><td>タブ文字</td><td>列の区切り（TSV形式）</td></tr><tr><td>10</td><td>改行（LF）</td><td>セル内改行の挿入</td></tr><tr><td>13</td><td>復帰（CR）</td><td>Mac旧式の改行コード</td></tr><tr><td>32</td><td>半角スペース</td><td>空白文字</td></tr><tr><td>33〜47</td><td>! &#8221; # $ % &#038; &#8216; ( ) * + , &#8211; . /</td><td>記号</td></tr><tr><td>48〜57</td><td>0〜9</td><td>数字</td></tr><tr><td>65〜90</td><td>A〜Z</td><td>大文字アルファベット</td></tr><tr><td>97〜122</td><td>a〜z</td><td>小文字アルファベット</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>アルファベットの文字コードは連番になっています。<code>=CHAR(64+ROW(A1))</code> を下にコピーすると、A〜Zの一覧を一瞬で作れます。ROW関数が1, 2, 3&#8230;と増えるので、65, 66, 67&#8230;に対応するA, B, C&#8230;が返る仕組みです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc14">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">CHAR関数は引数が1つだけのシンプルな関数ですが、いくつか注意点があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>引数が1〜255の範囲外</td><td>数値が1〜255に収まっているか確認してください</td></tr><tr><td>#VALUE!</td><td>引数に文字列を指定した</td><td>数値を指定してください。セル参照の場合、参照先が数値か確認しましょう</td></tr><tr><td>改行が表示されない</td><td>「折り返し」設定がオフ</td><td>「ホーム」→「折り返して全体を表示する」をオンにしてください</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td><td>「CHAR」のスペルを確認してください</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHAR(10)で改行が表示されない問題は、関数のエラーではなくセルの書式設定が原因です。「折り返して全体を表示する」をオンにすれば表示されます。列幅も十分に確保してくださいね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">似た関数との違い・使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc16">CODE関数（逆変換）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-code/">CODE関数</a>は、CHAR関数と逆の働きをします。<br>CHAR関数が「番号→文字」なら、CODE関数は「文字→番号」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>使用例</th><th>結果</th></tr></thead><tbody><tr><td><strong>CHAR</strong></td><td>番号→文字</td><td>=CHAR(65)</td><td>A</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-code/">CODE</a></strong></td><td>文字→番号</td><td>=CODE(&#8220;A&#8221;)</td><td>65</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">CHAR関数とCODE関数はセットで覚えておくと便利です。<br>たとえばCODE関数で文字の番号を調べ、CHAR関数で別の文字に変換する、といった使い方ができます。</p>



<h3 class="wp-block-heading"><span id="toc17">UNICHAR関数（Unicode対応版）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-unichar/">UNICHAR関数</a>は、CHAR関数のUnicode対応版です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHAR関数</th><th>UNICHAR関数</th></tr></thead><tbody><tr><td>対応範囲</td><td>1〜255（ANSI）</td><td>1〜1,114,111（Unicode）</td></tr><tr><td>日本語</td><td>非対応</td><td>対応</td></tr><tr><td>絵文字</td><td>非対応</td><td>対応</td></tr><tr><td>対応バージョン</td><td>Excel 2007以降</td><td>Excel 2013以降</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">アルファベットや基本記号ならCHAR関数で十分です。<br>日本語の文字や絵文字を扱いたい場合は、UNICHAR関数を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc18">文字変換関数の全体像</span></h3>



<p class="wp-block-paragraph">文字の変換に関する関数をまとめて整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>変換内容</th><th>記事リンク</th></tr></thead><tbody><tr><td>CHAR</td><td>文字コード番号→文字</td><td>この記事</td></tr><tr><td>CODE</td><td>文字→文字コード番号</td><td><a href="https://mashukabu.com/excel-function-howto-use-code/">CODE関数の使い方</a></td></tr><tr><td>UNICHAR</td><td>Unicode番号→文字</td><td><a href="https://mashukabu.com/excel-function-howto-use-unichar/">UNICHAR関数の使い方</a></td></tr><tr><td>ASC</td><td>全角を半角に変換</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数の使い方</a></td></tr><tr><td>JIS</td><td>半角を全角に変換</td><td><a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数の使い方</a></td></tr><tr><td>SUBSTITUTE</td><td>指定文字を置換</td><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc19">まとめ</span></h2>



<p class="wp-block-paragraph">CHAR関数は <code>=CHAR(数値)</code> と書くだけで、文字コード番号から文字を取得できるシンプルな関数です。</p>



<ul class="wp-block-list"><li>引数は<strong>数値</strong>の1つだけ（1〜255の範囲）</li><li><strong>CHAR(10)でセル内改行を挿入</strong>できるのが最大の活用ポイント</li><li>改行を表示するには「折り返して全体を表示する」の設定が必要</li><li>CODE関数は逆変換（文字→番号）のペア関数</li><li>Unicode対応が必要なら<a href="https://mashukabu.com/excel-function-howto-use-unichar/">UNICHAR関数</a>を使う</li></ul>



<h3 class="wp-block-heading"><span id="toc20">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-code/">ExcelのCODE関数の使い方｜文字を文字コード番号に変換する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-asc/">ExcelのASC関数の使い方｜全角を半角に一括変換する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-jis/">ExcelのJIS関数の使い方｜半角を全角に一括変換する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">ExcelのSUBSTITUTE関数の使い方｜文字列を置き換える方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">ExcelのTEXTJOIN関数の使い方｜区切り文字で文字列を結合する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-unichar/">UNICHAR関数でUNICODEの番号を指定して文字を表示する</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-char/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelで消えない空白の正体と消し方｜ノーブレークスペース完全対策ガイド</title>
		<link>https://mashukabu.com/about-nbsp/</link>
					<comments>https://mashukabu.com/about-nbsp/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 11 Mar 2022 14:07:12 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHAR関数]]></category>
		<category><![CDATA[CLEAN関数]]></category>
		<category><![CDATA[NBSP]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VLOOKUP不一致]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[ノーブレークスペース]]></category>
		<category><![CDATA[空白削除]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1303</guid>

					<description><![CDATA[ExcelでTRIMやReplaceで消せない空白の正体はノーブレークスペース（NBSP）です。原因・見分け方・SUBSTITUTE+CHAR(160)での削除方法・VBAでの一括処理・VLOOKUPの不一致対策まで完全解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Webサイトからコピーしたデータに空白が入っていて、TRIM関数で消そうとしたのに消えない。そんな経験はありませんか？</p>



<p class="wp-block-paragraph">見た目はただのスペースなのに、いつもの方法では消せないのは本当に厄介ですよね。そのまま放置すると、VLOOKUPの不一致や集計ミスの原因になってしまいます。</p>



<p class="wp-block-paragraph">この記事では、その正体である<strong>ノーブレークスペース（NBSP）</strong> の見分け方から、関数やVBAでの削除方法まで解説します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>TRIMやReplaceで消せない空白に困っている</li><li>Webや外部システムから取り込んだデータの整形をしたい</li><li>ノーブレークスペースの原因と対処法をまとめて知りたい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ノーブレークスペースとは？</a></li><li><a href="#toc2" tabindex="0">ノーブレークスペースが混入する原因</a><ol><li><a href="#toc3" tabindex="0">Webサイトからのコピペ</a></li><li><a href="#toc4" tabindex="0">外部システムからのデータ連携</a></li><li><a href="#toc5" tabindex="0">Wordや他のOfficeアプリからの貼り付け</a></li><li><a href="#toc6" tabindex="0">ChromeやTeamsなどのChromiumアプリからのコピペ</a></li></ol></li><li><a href="#toc7" tabindex="0">ノーブレークスペースの見分け方</a><ol><li><a href="#toc8" tabindex="0">CODE関数で文字コードを確認する</a></li><li><a href="#toc9" tabindex="0">LEN関数とSUBSTITUTE関数で個数を特定する</a></li></ol></li><li><a href="#toc10" tabindex="0">条件付き書式でNBSPを含むセルをハイライトする</a><ol><li><a href="#toc11" tabindex="0">設定手順</a></li><li><a href="#toc12" tabindex="0">複数の見えない空白をまとめてハイライトする</a></li><li><a href="#toc13" tabindex="0">作業列に「マーカー」を立てる方法</a></li></ol></li><li><a href="#toc14" tabindex="0">ノーブレークスペースを関数で削除する方法</a><ol><li><a href="#toc15" tabindex="0">パターン1: NBSPだけを削除する</a></li><li><a href="#toc16" tabindex="0">パターン2: NBSPと前後の半角スペースをまとめて削除する</a></li><li><a href="#toc17" tabindex="0">パターン3: 制御文字も含めて一括クレンジングする</a></li><li><a href="#toc18" tabindex="0">パターン4: すべてのスペースを削除する</a></li></ol></li><li><a href="#toc19" tabindex="0">空白の種類と対処関数の早見表</a></li><li><a href="#toc20" tabindex="0">ノーブレークスペースをVBAで削除する方法</a><ol><li><a href="#toc21" tabindex="0">Replace関数でNBSPを削除する</a></li><li><a href="#toc22" tabindex="0">選択範囲のNBSPを一括削除するマクロ</a></li><li><a href="#toc23" tabindex="0">すべての空白を一括削除するマクロ</a></li><li><a href="#toc24" tabindex="0">VBEの起動方法</a></li><li><a href="#toc25" tabindex="0">WorksheetFunction.TrimではNBSPは削除できない</a></li></ol></li><li><a href="#toc26" tabindex="0">VLOOKUPやCOUNTIFで不一致が起きたときの対処法</a><ol><li><a href="#toc27" tabindex="0">VLOOKUPで一致しないときの確認手順</a></li><li><a href="#toc28" tabindex="0">COUNTIFやSUMIFで集計がずれるとき</a></li><li><a href="#toc29" tabindex="0">XLOOKUPやXMATCHでNBSPが原因で#N/Aになるとき</a></li><li><a href="#toc30" tabindex="0">EXACT関数で&#8221;見た目は同じなのに不一致&#8221;の原因を特定する</a></li></ol></li><li><a href="#toc31" tabindex="0">CSV出力時の文字化け対策</a></li><li><a href="#toc32" tabindex="0">検索と置換（Ctrl+H）でNBSPを一括削除する</a><ol><li><a href="#toc33" tabindex="0">テンキーがある場合</a></li><li><a href="#toc34" tabindex="0">テンキーがない場合</a></li></ol></li><li><a href="#toc35" tabindex="0">Mac版Excelでの注意点</a><ol><li><a href="#toc36" tabindex="0">Macでの代替手段</a></li><li><a href="#toc37" tabindex="0">Mac特有のNBSP混入経路</a></li></ol></li><li><a href="#toc38" tabindex="0">Power QueryでNBSPを削除する方法</a><ol><li><a href="#toc39" tabindex="0">GUI操作で削除する手順</a></li><li><a href="#toc40" tabindex="0">M言語のコードで削除する</a></li><li><a href="#toc41" tabindex="0">複数列をまとめてクレンジングする（Table.TransformColumns）</a></li></ol></li><li><a href="#toc42" tabindex="0">GoogleスプレッドシートでNBSPを削除する方法</a><ol><li><a href="#toc43" tabindex="0">CLEAN関数ではNBSPを削除できない</a></li></ol></li><li><a href="#toc44" tabindex="0">Google Apps ScriptでNBSPを一括削除する</a><ol><li><a href="#toc45" tabindex="0">TextFinderクラスで置換する</a></li><li><a href="#toc46" tabindex="0">正規表現でまとめて処理する</a></li></ol></li><li><a href="#toc47" tabindex="0">ピボットテーブルでNBSPが引き起こす集計エラーと対策</a><ol><li><a href="#toc48" tabindex="0">起きやすい3つの症状</a></li><li><a href="#toc49" tabindex="0">よくある発生パターン</a></li><li><a href="#toc50" tabindex="0">対策：ピボット作成前にクレンジングする</a></li></ol></li><li><a href="#toc51" tabindex="0">Excel 365のREGEXREPLACE関数でNBSPを削除する</a><ol><li><a href="#toc52" tabindex="0">NBSPを正規表現で削除する数式</a></li><li><a href="#toc53" tabindex="0">NBSPと半角スペースをまとめて整形する</a></li><li><a href="#toc54" tabindex="0">SUBSTITUTE式との使い分け</a></li></ol></li><li><a href="#toc55" tabindex="0">LAMBDA関数でNBSP除去のオリジナル関数を作る</a><ol><li><a href="#toc56" tabindex="0">手順（Windows版）</a></li><li><a href="#toc57" tabindex="0">手順（Mac版）</a></li></ol></li><li><a href="#toc58" tabindex="0">ノーブレークスペース以外の「見えない空白」の見分けと削除</a><ol><li><a href="#toc59" tabindex="0">代表的な見えない空白文字の一覧</a></li><li><a href="#toc60" tabindex="0">UNICHAR関数で指定して削除する</a></li><li><a href="#toc61" tabindex="0">Microsoft 365なら正規表現で一括処理する</a></li></ol></li><li><a href="#toc62" tabindex="0">NBSPを最初から混入させない3つの予防策</a><ol><li><a href="#toc63" tabindex="0">予防策1: テキストエディタ経由でペーストする</a></li><li><a href="#toc64" tabindex="0">予防策2: 値のみ貼り付け（Ctrl+Shift+V / Alt+E+S+V）を習慣にする</a></li><li><a href="#toc65" tabindex="0">予防策3: Power Queryを取り込み窓口にする</a></li></ol></li><li><a href="#toc66" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc67" tabindex="0">Q. TeamsやSlackからコピペするとNBSPが入りますか？</a></li><li><a href="#toc68" tabindex="0">Q. EXACT関数でFALSEなのに目視では同じ文字列です。なぜですか？</a></li><li><a href="#toc69" tabindex="0">Q. XLOOKUPでも#N/Aが出ます。VLOOKUPと同じ対処法ですか？</a></li><li><a href="#toc70" tabindex="0">Q. Ctrl+Vで貼り付けるたびにNBSPが入ります。防ぐ方法はありますか？</a></li><li><a href="#toc71" tabindex="0">Q. CODE関数で160と出ました。これは必ずNBSPですか？</a></li><li><a href="#toc72" tabindex="0">Q. SUBSTITUTE+CHAR(160)を入れたのに、VLOOKUPの不一致が直りません。</a></li><li><a href="#toc73" tabindex="0">Q. スマートフォンのメモアプリからコピーするとNBSPが入りますか？</a></li><li><a href="#toc74" tabindex="0">Q. Power QueryのText.TrimでNBSPも消えますか？</a></li><li><a href="#toc75" tabindex="0">Q. 「検索と置換」で削除したのに、まだ空白があります。</a></li><li><a href="#toc76" tabindex="0">Q. NBSP以外にも「見えない空白」はありますか？</a></li><li><a href="#toc77" tabindex="0">Q. Mac版ExcelでもAlt+0160は使えますか？</a></li><li><a href="#toc78" tabindex="0">Q. LAMBDA関数でNBSP削除の自作関数を作れますか？</a></li><li><a href="#toc79" tabindex="0">Q. Google Apps ScriptでNBSPを削除できますか？</a></li></ol></li><li><a href="#toc80" tabindex="0">まとめ</a><ol><li><a href="#toc81" tabindex="0">関連記事</a></li><li><a href="#toc82" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ノーブレークスペースとは？</span></h2>



<p class="wp-block-paragraph">ノーブレークスペース（Non-Breaking Space、略称: NBSP）は、文字コード <strong>160</strong> の特殊な空白文字です。</p>



<p class="wp-block-paragraph">通常の半角スペース（文字コード 32）とは別の文字として扱われます。見た目はまったく同じスペースなのに、Excelの関数やVBAの標準的な処理では「空白」として認識されません。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>半角スペース</th><th>ノーブレークスペース</th></tr></thead><tbody><tr><td>文字コード</td><td>32</td><td>160</td></tr><tr><td>HTMLエンティティ</td><td><code> </code></td><td><code>&nbsp;</code></td></tr><tr><td>TRIM関数</td><td>削除できる</td><td>削除できない</td></tr><tr><td>VBA Trim関数</td><td>削除できる</td><td>削除できない</td></tr><tr><td>見た目</td><td>スペース</td><td>スペース（見分けがつかない）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>NBSPはもともとHTMLで「この位置では改行しない」ことを指定するための文字です。Webページの文字間隔を調整する目的で使われることが多く、Webからデータをコピーすると混入しやすくなっています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">ノーブレークスペースが混入する原因</span></h2>



<p class="wp-block-paragraph">NBSPがExcelに入り込む主なルートは次のとおりです。</p>



<h3 class="wp-block-heading"><span id="toc3">Webサイトからのコピペ</span></h3>



<p class="wp-block-paragraph">最も多い原因がWebサイトからのコピー&#038;ペーストです。HTMLソースに <code>&nbsp;</code> が含まれていると、Excelに貼り付けたときにNBSPとして残ります。</p>



<h3 class="wp-block-heading"><span id="toc4">外部システムからのデータ連携</span></h3>



<p class="wp-block-paragraph">基幹システムや会計ソフトからCSVやテキストで出力したデータに含まれていることがあります。システム側がNBSPを空白の代わりに使っているケースです。</p>



<h3 class="wp-block-heading"><span id="toc5">Wordや他のOfficeアプリからの貼り付け</span></h3>



<p class="wp-block-paragraph">Wordで作成した文書をコピーすると、NBSPが混入することがあります。Wordでは <code>Ctrl + Shift + Space</code> で意図的にNBSPを挿入できます。知らずに入力されている場合もあるので注意が必要です。</p>



<h3 class="wp-block-heading"><span id="toc6">ChromeやTeamsなどのChromiumアプリからのコピペ</span></h3>



<p class="wp-block-paragraph">近年、業務でよく使われるアプリからのコピペが混入経路として増えています。Chrome・Edge・Teams・Slack・VS Codeはいずれも内部でChromiumベースのレンダリングエンジンを使っています。テキストをコピーするとHTMLもクリップボードに乗るため、Excelに貼り付けたとき、HTML内の <code>&nbsp;</code> がそのままNBSPとして混入します。</p>



<figure class="wp-block-table"><table><thead><tr><th>アプリ</th><th>混入のしやすさ</th><th>補足</th></tr></thead><tbody><tr><td>Chrome / Edge</td><td>高い</td><td>Webページから直接コピーするとHTMLが同伴する</td></tr><tr><td>Microsoft Teams</td><td>高い</td><td>チャットメッセージにNBSPが含まれることが多い</td></tr><tr><td>Slack</td><td>中程度</td><td>環境・バージョンによって差がある</td></tr><tr><td>VS Code</td><td>中程度</td><td>MarkdownやHTMLファイルの内容をコピーした場合</td></tr><tr><td>macOS（Option+Space）</td><td>高い</td><td>macOSの入力ショートカットでNBSPが意図せず入力される</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">コピペの頻度が多いほどNBSPが累積しやすくなります。「どのアプリから貼ったか」を思い出すだけで、混入原因の絞り込みに役立ちます。</p>



<h2 class="wp-block-heading"><span id="toc7">ノーブレークスペースの見分け方</span></h2>



<p class="wp-block-paragraph">NBSPは見た目では普通のスペースと区別できません。「空白があるのに消せない」と感じたら、次の方法で確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc8">CODE関数で文字コードを確認する</span></h3>



<p class="wp-block-paragraph">セルの先頭文字を調べるには、次の数式を使います。</p>



<pre class="wp-block-code"><code>=CODE(LEFT(A1,1))</code></pre>



<p class="wp-block-paragraph">結果が <strong>160</strong> であればNBSPです。通常の半角スペースなら <strong>32</strong> が返ります。</p>



<p class="wp-block-paragraph">途中に隠れている場合は、<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>で文字数を数えてみてください。見た目の文字数とLEN関数の結果がずれていたら、見えない文字が混入しています。</p>



<pre class="wp-block-code"><code>=LEN(A1)</code></pre>



<h3 class="wp-block-heading"><span id="toc9">LEN関数とSUBSTITUTE関数で個数を特定する</span></h3>



<p class="wp-block-paragraph">NBSPが何個含まれているかを数えるには、次の数式が便利です。</p>



<pre class="wp-block-code"><code>=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(160),&quot;&quot;))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>でNBSPを削除した文字列のLENと比較することで、NBSP文字数がわかります。</p>



<h2 class="wp-block-heading"><span id="toc10">条件付き書式でNBSPを含むセルをハイライトする</span></h2>



<p class="wp-block-paragraph">クレンジングする前に、まず「どのセルにNBSPが入っているか」を視覚的に確認したいときに便利な方法です。条件付き書式と組み合わせると、データ全体を見渡しながらNBSPの混入状況を一目で把握できます。</p>



<h3 class="wp-block-heading"><span id="toc11">設定手順</span></h3>



<ol class="wp-block-list"><li>NBSPの有無を確認したいセル範囲を選択する（例: A2:A100）</li><li>[ホーム] タブ → [条件付き書式] → [新しいルール] をクリック</li><li>[数式を使用して、書式設定するセルを決定] を選ぶ</li><li>数式欄に次の式を入力する</li></ol>



<pre class="wp-block-code"><code>=ISNUMBER(SEARCH(CHAR(160),A2))</code></pre>



<ol class="wp-block-list"><li>[書式] ボタンから塗りつぶし色（例: 薄い赤）を選んで [OK] をクリック</li></ol>



<p class="wp-block-paragraph">これで、A列の中でNBSPを含むセルだけが赤く塗られて表示されます。データの行数が多くても、スクロールしながら混入箇所を確認できます。</p>



<h3 class="wp-block-heading"><span id="toc12">複数の見えない空白をまとめてハイライトする</span></h3>



<p class="wp-block-paragraph">NBSPだけでなく、ゼロ幅スペースや全角スペースなど、複数の「見えない空白」を一括で見つけたい場合は、OR関数で条件を組み合わせます。</p>



<pre class="wp-block-code"><code>=OR(ISNUMBER(SEARCH(CHAR(160),A2)),ISNUMBER(SEARCH(UNICHAR(8203),A2)),ISNUMBER(SEARCH(&quot;　&quot;,A2)))</code></pre>



<p class="wp-block-paragraph">NBSP・ゼロ幅スペース・全角スペースのいずれかを含むセルがすべてハイライトされます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>条件付き書式を設定したまま「検索と置換」でNBSPを削除すると、削除されたセルからハイライトが消えていく様子が見えるので、進捗確認にもなります。クレンジングのビフォーアフターを記録に残したいときにも便利です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">作業列に「マーカー」を立てる方法</span></h3>



<p class="wp-block-paragraph">条件付き書式の代わりに作業列を追加して、フラグを立てるやり方もあります。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(SEARCH(CHAR(160),A2)),&quot;NBSP有&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">該当するセルだけ「NBSP有」と表示されるので、オートフィルターで絞り込めば一覧で確認できます。データを別のシートに整理したい場合は、条件付き書式より作業列のほうが扱いやすいです。</p>



<h2 class="wp-block-heading"><span id="toc14">ノーブレークスペースを関数で削除する方法</span></h2>



<p class="wp-block-paragraph">見分け方がわかったら、実際に削除してみましょう。ここでは用途別に4つの関数パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン1: NBSPだけを削除する</span></h3>



<p class="wp-block-paragraph">最もシンプルな方法です。<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数</a>を組み合わせます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A1,CHAR(160),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">CHAR(160) がNBSPを指定しています。これを空文字 <code>""</code> に置き換えることで削除できます。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン2: NBSPと前後の半角スペースをまとめて削除する</span></h3>



<p class="wp-block-paragraph">外部データには、NBSPと通常のスペースが両方入っていることがよくあります。<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>も組み合わせると、まとめてきれいにできます。</p>



<pre class="wp-block-code"><code>=TRIM(SUBSTITUTE(A1,CHAR(160),&quot; &quot;))</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ここでのポイントは、NBSPを <strong>空文字ではなく半角スペースに置換</strong> している点です。NBSPを半角スペースに変換してからTRIM関数で処理すると、前後の空白除去と連続スペースの圧縮が同時に行えます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc17">パターン3: 制御文字も含めて一括クレンジングする</span></h3>



<p class="wp-block-paragraph">Webデータには改行コードやタブなどの制御文字が混じることもあります。<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>を加えると、印刷できない制御文字もまとめて削除できます。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),&quot; &quot;)))</code></pre>



<p class="wp-block-paragraph">処理の流れはこうなっています。</p>



<ol class="wp-block-list"><li>SUBSTITUTE: NBSPを半角スペースに変換</li><li>CLEAN: 制御文字（文字コード 0〜31）を削除</li><li>TRIM: 前後のスペース削除 + 連続スペースの圧縮</li></ol>



<h3 class="wp-block-heading"><span id="toc18">パターン4: すべてのスペースを削除する</span></h3>



<p class="wp-block-paragraph">全角スペース・半角スペース・NBSPをすべて削除したい場合は、SUBSTITUTE関数をネストします。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CLEAN(A1),CHAR(160),&quot;&quot;),&quot; &quot;,&quot;&quot;),&quot;　&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">ちょっと長く見えますが、やっていることはシンプルです。内側から順に「制御文字の削除 → NBSPの削除 → 半角スペースの削除 → 全角スペースの削除」と処理しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>すべてのスペースを消してしまうと、姓名間のスペースなど必要な空白まで消えてしまいます。用途に応じてパターン1〜3を使い分けてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc19">空白の種類と対処関数の早見表</span></h2>



<p class="wp-block-paragraph">Excelで遭遇する「消せない空白」はNBSPだけではありません。まとめて整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>空白の種類</th><th>文字コード</th><th>原因</th><th>対処方法</th></tr></thead><tbody><tr><td>半角スペース</td><td>32</td><td>手入力・システム出力</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a></td></tr><tr><td>全角スペース</td><td>12288</td><td>日本語入力</td><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>で <code>"　"</code> を置換</td></tr><tr><td>NBSP</td><td>160</td><td>Webコピー・Word貼付</td><td><code>SUBSTITUTE(A1,CHAR(160),"")</code></td></tr><tr><td>タブ文字</td><td>9</td><td>テキストファイル取込</td><td><code>SUBSTITUTE(A1,CHAR(9),"")</code></td></tr><tr><td>改行（LF）</td><td>10</td><td>Alt+Enter・CSV</td><td><code>SUBSTITUTE(A1,CHAR(10),"")</code></td></tr><tr><td>改行（CR）</td><td>13</td><td>Mac系データ</td><td><code>SUBSTITUTE(A1,CHAR(13),"")</code></td></tr><tr><td>制御文字全般</td><td>0〜31</td><td>システム出力</td><td><a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「何の文字が入っているかわからない」ときは、まず <code>=CODE(MID(A1,N,1))</code> で1文字ずつ文字コードを確認するのが確実です。Nに位置番号を入れて調べてみてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc20">ノーブレークスペースをVBAで削除する方法</span></h2>



<p class="wp-block-paragraph">大量のデータを処理する場合は、VBAを使うと効率的です。VBAでの空白削除の基本は<a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBA 文字列の空白を削除する方法まとめ</a>でまとめていますが、ここではNBSPに特化した方法を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc21">Replace関数でNBSPを削除する</span></h3>



<p class="wp-block-paragraph">VBAでは <code>ChrW(160)</code> でNBSPを指定できます。</p>



<pre class="wp-block-code"><code>'--- NBSPを削除する基本コード ---
Dim sBefore As String '変換前の文字列
Dim sAfter As String  '変換後の文字列

sBefore = Range(&quot;A1&quot;).Value
sAfter = Replace(sBefore, ChrW(160), &quot;&quot;)

MsgBox &quot;[&quot; &amp; sBefore &amp; &quot;] → [&quot; &amp; sAfter &amp; &quot;]&quot;</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><code>ChrW</code> はUnicodeの文字コードに対応した関数です。<code>Chr</code> 関数でも160を指定できますが、環境によっては正しく動作しないことがあります。確実に処理するには <code>ChrW</code> を使ってください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc22">選択範囲のNBSPを一括削除するマクロ</span></h3>



<p class="wp-block-paragraph">実務で使いやすい、範囲を選択して一括処理するマクロを紹介します。</p>



<pre class="wp-block-code"><code>Sub NBSPを一括削除()

    Dim rng As Range    '処理対象の範囲
    Dim cell As Range   '各セル

    '--- 範囲を選択するダイアログを表示 ---
    Set rng = Application.InputBox( _
        Prompt:=&quot;NBSPを削除する範囲を選択してください。&quot;, _
        Title:=&quot;範囲選択&quot;, _
        Type:=8)

    '--- 各セルのNBSPを削除 ---
    For Each cell In rng
        If Not IsEmpty(cell) Then
            cell.Value = Replace(cell.Value, ChrW(160), &quot;&quot;)
        End If
    Next cell

    MsgBox &quot;処理が完了しました。&quot;

End Sub</code></pre>



<p class="wp-block-paragraph">このマクロを実行すると範囲選択のダイアログが表示されます。対象範囲をドラッグで選択すれば、その中のNBSPをまとめて削除できます。</p>



<h3 class="wp-block-heading"><span id="toc23">すべての空白を一括削除するマクロ</span></h3>



<p class="wp-block-paragraph">NBSPだけでなく、半角・全角スペースやタブ・改行もまとめて削除したい場合は、次のマクロが便利です。</p>



<pre class="wp-block-code"><code>Sub すべての空白を一括削除()

    Dim rng As Range    '処理対象の範囲
    Dim cell As Range   '各セル
    Dim sTemp As String '一時変数

    '--- 範囲を選択するダイアログを表示 ---
    Set rng = Application.InputBox( _
        Prompt:=&quot;空白を削除する範囲を選択してください。&quot;, _
        Title:=&quot;範囲選択&quot;, _
        Type:=8)

    '--- 各セルの空白を削除 ---
    For Each cell In rng
        If Not IsEmpty(cell) Then
            sTemp = cell.Value
            sTemp = Replace(sTemp, ChrW(160), &quot;&quot;) 'NBSP
            sTemp = Replace(sTemp, &quot; &quot;, &quot;&quot;)        '半角スペース
            sTemp = Replace(sTemp, &quot;　&quot;, &quot;&quot;)       '全角スペース
            sTemp = Replace(sTemp, vbCrLf, &quot;&quot;)     '改行(CR+LF)
            sTemp = Replace(sTemp, vbLf, &quot;&quot;)       '改行(LF)
            sTemp = Replace(sTemp, vbTab, &quot;&quot;)      'タブ
            cell.Value = sTemp
        End If
    Next cell

    MsgBox &quot;処理が完了しました。&quot;

End Sub</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>姓名間のスペースなど、残したい空白がある場合はNBSPの行（<code>ChrW(160)</code>）だけ残して他の行をコメントアウトしてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc24">VBEの起動方法</span></h3>



<p class="wp-block-paragraph">マクロの実行にはVBE（Visual Basic Editor）を開く必要があります。</p>



<ol class="wp-block-list"><li><code>Alt + F11</code> でVBEを起動する</li><li>リボンから起動する場合: [開発] タブ → [Visual Basic] をクリック</li><li>[開発] タブが表示されていない場合: [ファイル] → [オプション] → [リボンのユーザー設定] → [開発] にチェックを入れて [OK]</li><li>VBEが開いたら [挿入] → [標準モジュール] でモジュールを追加し、コードを貼り付ける</li></ol>



<h3 class="wp-block-heading"><span id="toc25">WorksheetFunction.TrimではNBSPは削除できない</span></h3>



<p class="wp-block-paragraph">VBAで空白を整形しようとして <code>WorksheetFunction.Trim</code> を試す方がいますが、これではNBSPは削除できません。<code>WorksheetFunction.Trim</code> はExcelのTRIM関数と同じ動作で、半角スペース（コード32）の除去と連続スペースの圧縮のみを行います。NBSPには無効です。</p>



<pre class="wp-block-code"><code>' NG: これではNBSPは消えない
cell.Value = Application.WorksheetFunction.Trim(cell.Value)

' OK: ChrW(160)でNBSPを明示的に指定する
cell.Value = Replace(cell.Value, ChrW(160), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">VBEの通常の <code>Trim</code> 関数も同様で、NBSPは削除されません。VBAでNBSPを消すには、必ず <code>Replace(文字列, ChrW(160), "")</code> を使ってください。WorksheetFunction.Trim と VBA の Trim 関数の違いは<a href="https://mashukabu.com/vba-worksheetfunction-trim/">VBA WorksheetFunction.Trim の使い方</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc26">VLOOKUPやCOUNTIFで不一致が起きたときの対処法</span></h2>



<p class="wp-block-paragraph">NBSPが原因で最もよく困るのが、VLOOKUPやCOUNTIFの不一致です。検索値にNBSPが混入していると、見た目は同じ文字列でも「別の値」として判定されてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc27">VLOOKUPで一致しないときの確認手順</span></h3>



<p class="wp-block-paragraph">VLOOKUPで <code>#N/A</code> エラーが出たら、まず検索値と検索範囲の文字コードを比べてみてください。</p>



<pre class="wp-block-code"><code>=CODE(LEFT(A1,1))
=CODE(LEFT(B1,1))</code></pre>



<p class="wp-block-paragraph">片方が160、もう片方が32であれば、NBSPが原因です。次の数式でNBSPを除去してからVLOOKUPに渡せば解決します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(TRIM(SUBSTITUTE(A1,CHAR(160),&quot; &quot;)),B:C,2,FALSE)</code></pre>



<h3 class="wp-block-heading"><span id="toc28">COUNTIFやSUMIFで集計がずれるとき</span></h3>



<p class="wp-block-paragraph">COUNTIFやSUMIF（条件に合うセルを数える・合計する関数）でも同じ問題が起きます。条件値にNBSPが含まれていると、一致するはずのセルがカウントされません。</p>



<p class="wp-block-paragraph">対処法は2つあります。</p>



<ol class="wp-block-list"><li><strong>事前クレンジング</strong>: 前述のパターン2の数式で列全体のNBSPを除去してから集計する</li><li><strong>作業列を追加</strong>: <code>=TRIM(SUBSTITUTE(A1,CHAR(160)," "))</code> の列を作り、その列を集計対象にする</li></ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「数式は合っているのに結果がおかしい」と感じたら、NBSPを疑ってみてください。特にWebからコピーしたデータや外部システムのCSVデータは要注意です。</p></blockquote>



<p class="wp-block-paragraph">VBAで空白を一括処理する方法は、<a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBA 文字列の空白を削除する方法まとめ</a>で詳しく解説しています。</p>



<h3 class="wp-block-heading"><span id="toc29">XLOOKUPやXMATCHでNBSPが原因で#N/Aになるとき</span></h3>



<p class="wp-block-paragraph">Microsoft 365を使っている場合、VLOOKUPの代わりに<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>を使っているケースも多いでしょう。XLOOKUPでもNBSPが混入した検索値は「別の文字列」として扱われるため、同じく <code>#N/A</code> になります。</p>



<p class="wp-block-paragraph">対処法はVLOOKUPと同じで、検索値をSUBSTITUTEで包みます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(TRIM(SUBSTITUTE(A2,CHAR(160),&quot; &quot;)),B:B,C:C,&quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XMATCHも同様です。検索値だけでなく、検索範囲にもNBSPが混入している場合は両方をクレンジングする必要があります。</p>



<pre class="wp-block-code"><code>=XMATCH(TRIM(SUBSTITUTE(A2,CHAR(160),&quot; &quot;)),TRIM(SUBSTITUTE(B:B,CHAR(160),&quot; &quot;)))</code></pre>



<h3 class="wp-block-heading"><span id="toc30">EXACT関数で&#8221;見た目は同じなのに不一致&#8221;の原因を特定する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-exact/">EXACT関数</a>はアルファベットの大文字・小文字まで区別して2つのセルを比較する関数です。NBSPの診断ツールとしても使えます。</p>



<pre class="wp-block-code"><code>=EXACT(A1,B1)</code></pre>



<p class="wp-block-paragraph">目視では同じ文字列なのにEXACTが <code>FALSE</code> を返す場合、NBSPか制御文字が混入しています。VLOOKUPが一致しない原因を追うときは、まずEXACTで「本当に同じ文字列か」を確認してください。確認できたら、CODE関数で文字コードを調べると効率よく特定できます。</p>



<p class="wp-block-paragraph">クレンジング後にEXACTで <code>TRUE</code> になったことを確認すれば、削除が完了したかのビフォーアフター検証にも使えます。</p>



<h2 class="wp-block-heading"><span id="toc31">CSV出力時の文字化け対策</span></h2>



<p class="wp-block-paragraph">NBSPが含まれたセルをCSVで保存すると、文字コード 160 が正しく変換されず「?」に化けることがあります。</p>



<p class="wp-block-paragraph">CSVで出力する前にNBSPを削除しておくのが確実な対策です。前述の関数パターンやVBAマクロで事前にクレンジングしてから保存してください。</p>



<h2 class="wp-block-heading"><span id="toc32">検索と置換（Ctrl+H）でNBSPを一括削除する</span></h2>



<p class="wp-block-paragraph">関数や作業列を作らずに、その場でNBSPを消したいときは、Excelの「検索と置換」が便利です。<code>Ctrl + H</code> で置換ダイアログを開けば、選択範囲やシート全体のNBSPをまとめて削除できます。</p>



<p class="wp-block-paragraph">数式を残さず元のセルを直接きれいにできるので、「とにかく今すぐ消したい」というときの即効性ある方法です。</p>



<h3 class="wp-block-heading"><span id="toc33">テンキーがある場合</span></h3>



<p class="wp-block-paragraph">テンキー付きのキーボードなら、検索欄に直接NBSPを入力できます。</p>



<ol class="wp-block-list"><li><code>Ctrl + H</code> で「検索と置換」を開く</li><li>「検索する文字列」の欄にカーソルを置く</li><li><code>Alt</code> キーを押しながら、テンキーで <code>0160</code> と入力する</li><li>「置換後の文字列」は空欄のままにする</li><li>「すべて置換」をクリック</li></ol>



<p class="wp-block-paragraph"><code>Alt</code> + <code>0160</code> は、文字コード160のNBSPを直接入力するショートカットです。見た目には何も入力されていないように見えますが、検索欄にはきちんとNBSPが入っています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>このショートカットは必ずテンキー（キーボード右側の数字キー）を使ってください。キーボード上部の数字キーでは正しく入力できません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc34">テンキーがない場合</span></h3>



<p class="wp-block-paragraph">ノートパソコンなどテンキーがない場合は、削除したいNBSPをセルからコピーして使います。</p>



<ol class="wp-block-list"><li>NBSPが含まれているセルをダブルクリックして編集状態にする</li><li>NBSPの部分だけをドラッグで選択して <code>Ctrl + C</code> でコピーする</li><li><code>Ctrl + H</code> で「検索と置換」を開く</li><li>「検索する文字列」の欄に <code>Ctrl + V</code> で貼り付ける</li><li>「置換後の文字列」は空欄のままにする</li><li>「すべて置換」をクリック</li></ol>



<p class="wp-block-paragraph">実際のNBSP文字をコピーして使うので、文字コードを覚えていなくても確実に処理できます。NBSPと半角スペースが区別しにくくて不安なときも、この方法なら間違いがありません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>NBSPを残しつつ前後の余分なスペースだけ整えたい場合は、置換後の文字列に半角スペースを1つ入れて「すべて置換」してください。連続スペースの圧縮は、そのあと<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で仕上げると確実です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc35">Mac版Excelでの注意点</span></h2>



<p class="wp-block-paragraph">Mac版Excelを使っている方は、Windowsとは操作が一部異なります。前述のテンキーを使った <code>Alt + 0160</code> の入力ショートカットは、Mac版Excelでは使えません。</p>



<h3 class="wp-block-heading"><span id="toc36">Macでの代替手段</span></h3>



<p class="wp-block-paragraph">Mac版Excelでは、次のいずれかの方法でNBSPを「検索と置換」で扱えます。</p>



<ol class="wp-block-list"><li><strong>コピペ法を使う</strong>: NBSPを含むセルから該当部分をコピーして、検索ダイアログに貼り付ける（前述の「テンキーがない場合」と同じ手順）</li><li><strong>数式バーで <code>=CHAR(160)</code> を計算して値貼り付け</strong>: 別のセルに <code>=CHAR(160)</code> を入力し、結果を値としてコピーして検索欄に貼り付ける</li><li><strong>関数またはVBAで処理する</strong>: <code>=SUBSTITUTE(A1,CHAR(160),"")</code> を使うか、Mac版でもVBAは動くので前述のマクロをそのまま実行する</li></ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Mac版Excelの「検索と置換」を開くショートカットは <code>Cmd + H</code> です（Windowsの <code>Ctrl + H</code> 相当）。ダイアログを開いたあとの操作はWindowsとほぼ同じですが、NBSPの直接入力ショートカットは使えない点だけ注意してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc37">Mac特有のNBSP混入経路</span></h3>



<p class="wp-block-paragraph">macOSでは、<code>Option + Space</code> でNBSPが入力できます。文章の途中で「改行してほしくない箇所」に意図的に入れているユーザーもいるので、Macで作成された文書をコピペするとNBSPが混入しやすい傾向があります。Pages・Keynote・Mailなどのアプリ間コピペでも同様です。</p>



<h2 class="wp-block-heading"><span id="toc38">Power QueryでNBSPを削除する方法</span></h2>



<p class="wp-block-paragraph">外部システムのCSVやデータベースから定期的にデータを取り込む方には、Power Queryでの処理がおすすめです。一度設定しておけば、次回からはデータを更新するだけで自動的にNBSPが削除されます。</p>



<p class="wp-block-paragraph">毎回手作業でクレンジングする手間がなくなるので、繰り返し取り込むデータには特に効果的です。</p>



<h3 class="wp-block-heading"><span id="toc39">GUI操作で削除する手順</span></h3>



<p class="wp-block-paragraph">Power Queryエディター上でメニューを操作するだけで、NBSPを削除できます。</p>



<ol class="wp-block-list"><li>NBSPを削除したい列を選択する</li><li>リボンの [変換] タブ → [値の置換] をクリック</li><li>[詳細オプション] を展開し、[特殊文字を使用して置換] → [特殊文字を挿入] → [改行なしスペース] を選ぶ</li><li>「検索する値」に <code>#(00A0)</code> が自動で挿入される</li><li>「置換後の値」は空欄のまま（削除する場合）にして [OK] をクリック</li></ol>



<p class="wp-block-paragraph"><code>#(00A0)</code> は、Power Queryでの文字コード160（16進数で00A0）の表記です。[特殊文字を挿入] から選べば、この記述を手で打たなくても自動で入力されます。</p>



<h3 class="wp-block-heading"><span id="toc40">M言語のコードで削除する</span></h3>



<p class="wp-block-paragraph">数式バー（詳細エディター）に直接書く場合は、M言語の <code>Text.Replace</code> を使います。</p>



<pre class="wp-block-code"><code>= Text.Replace([列名], Character.FromNumber(160), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code>Character.FromNumber(160)</code> がNBSPを指定しています。これを空文字 <code>""</code> に置き換えることで削除できます。NBSPと前後のスペースをまとめて整えたい場合は、<code>Text.Trim</code> と組み合わせます。</p>



<pre class="wp-block-code"><code>= Text.Trim(Text.Replace([列名], Character.FromNumber(160), &quot; &quot;))</code></pre>



<p class="wp-block-paragraph">NBSPをいったん半角スペースに変換してから <code>Text.Trim</code> で前後の空白を除去する流れです。Excelの関数で言うと <code>=TRIM(SUBSTITUTE(A1,CHAR(160)," "))</code> と同じ考え方です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Power Queryの <code>Text.Trim</code> は、半角スペースは除去できますがNBSPは除去できません。これはExcelのTRIM関数と同じ落とし穴です。NBSPを消すには、必ず <code>Character.FromNumber(160)</code> を指定した <code>Text.Replace</code> を先にかけてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc41">複数列をまとめてクレンジングする（Table.TransformColumns）</span></h3>



<p class="wp-block-paragraph">ここまでの手順は、1列ずつ処理する前提で紹介していました。処理対象の列が数十にわたる場合は、<code>Table.TransformColumns</code> を使うと一度の記述でまとめて処理できます。</p>



<pre class="wp-block-code"><code>= Table.TransformColumns(前のステップ, {
    {&quot;列A&quot;, each Text.Replace(_, Character.FromNumber(160), &quot; &quot;)},
    {&quot;列B&quot;, each Text.Replace(_, Character.FromNumber(160), &quot; &quot;)}
})</code></pre>



<p class="wp-block-paragraph">リストに列名と変換式のペアを並べるだけで、複数列に同じ処理を一括適用できます。GUIで1列ずつ [値の置換] を繰り返すより早く仕上がるでしょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>第3引数に <code>defaultTransformation</code> を指定すると、リストに列挙していない列にも同じ変換を適用できます。取り込む列数が変動するデータでは、この引数が特に有効です。</p></blockquote>



<p class="wp-block-paragraph">詳しくは<a href="https://mashukabu.com/power-query-m-language-custom-column/">Power QueryのM言語でカスタム列を作る方法</a>を参照してください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc42">GoogleスプレッドシートでNBSPを削除する方法</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートでもNBSPに悩まされることがありますが、対処法はExcelとほとんど同じです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, CHAR(160), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">Excelとまったく同じ構文で動作します。<code>CHAR(160)</code> でNBSPを指定し、空文字に置き換えるだけです。Excelで使っていた数式をそのままコピーして使えるので、スプレッドシートに移行しても覚え直す必要はありません。</p>



<p class="wp-block-paragraph">注意点もExcelと共通で、TRIM関数だけではNBSPは削除できません。スプレッドシートでも「TRIMで消えない空白」に出くわしたら、まず <code>CHAR(160)</code> を疑ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc43">CLEAN関数ではNBSPを削除できない</span></h3>



<p class="wp-block-paragraph">ExcelのCLEAN関数と同じ落とし穴が、GoogleスプレッドシートのCLEAN関数にも存在します。</p>



<p class="wp-block-paragraph">Google公式ヘルプによると、CLEAN関数が削除するのはASCII範囲（コード0〜31）の印字不可能な文字のみです。NBSP（コード160）はASCII範囲外の文字にあたるため、CLEAN関数では削除されません。</p>



<p class="wp-block-paragraph">「CLEANをかけたのにまだ空白が残っている」と感じたら、CLEAN単体で処理を終えていないか確認してみてください。前述の <code>=SUBSTITUTE(A2, CHAR(160), "")</code> を組み合わせれば、NBSPも含めて確実に除去できます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc44">Google Apps ScriptでNBSPを一括削除する</span></h2>



<p class="wp-block-paragraph">関数だけでは対応しきれないほど行数が多いデータには、Google Apps Script（GAS）でのバッチ処理が向いています。GASはGoogleスプレッドシートに標準搭載されているスクリプト環境なので、追加のインストールは要りません。</p>



<h3 class="wp-block-heading"><span id="toc45">TextFinderクラスで置換する</span></h3>



<p class="wp-block-paragraph"><code>TextFinder</code> クラスを使うと、シート全体や指定範囲を対象に文字列を検索・置換できます。NBSPの削除も数行のコードで書けます。</p>



<pre class="wp-block-code"><code>function removeNbsp() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var finder = sheet.createTextFinder(String.fromCharCode(160));
  finder.replaceAllWith('');
}</code></pre>



<p class="wp-block-paragraph"><code>String.fromCharCode(160)</code> は、文字コード160番の文字を生成します。VBAの <code>ChrW(160)</code> やExcelの <code>CHAR(160)</code> と同じ考え方だと捉えてください。</p>



<h3 class="wp-block-heading"><span id="toc46">正規表現でまとめて処理する</span></h3>



<p class="wp-block-paragraph">NBSPと他の空白文字を一度に整えたい場合は、<code>useRegularExpression(true)</code> を指定します。</p>



<pre class="wp-block-code"><code>function normalizeWhitespace() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var pattern = '[' + String.fromCharCode(160) + '\s]+';
  var finder = sheet.createTextFinder(pattern).useRegularExpression(true);
  finder.replaceAllWith(' ');
}</code></pre>



<p class="wp-block-paragraph">NBSPを含む連続した空白文字を、まとめて半角スペース1つに置き換える処理です。VBAのマクロと同じ考え方で、シート全体を一括クレンジングできます。</p>



<p class="wp-block-paragraph">詳しくは<a href="https://mashukabu.com/spreadsheet-gas-getting-started-recipes/">Google Apps Script入門レシピ</a>を参照してください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc47">ピボットテーブルでNBSPが引き起こす集計エラーと対策</span></h2>



<p class="wp-block-paragraph">NBSPの影響はVLOOKUPだけにとどまりません。ピボットテーブルでも深刻な問題を引き起こします。</p>



<h3 class="wp-block-heading"><span id="toc48">起きやすい3つの症状</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>見分け方</th></tr></thead><tbody><tr><td>同じ値なのに別々の行に集計される</td><td>NBSPありとなしが「別の文字列」として扱われる</td><td>ピボットの行ラベルに似た値が2行並ぶ</td></tr><tr><td>数値フィールドで「グループ化」できない</td><td>NBSPが混入したセルが「文字列」と判定される</td><td>「選択対象をグループ化することはできません」エラー</td></tr><tr><td>件数が合わない</td><td>見た目は同じ値なのに個別に集計される</td><td>COUNT/SUMの合計が元データと一致しない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc49">よくある発生パターン</span></h3>



<p class="wp-block-paragraph">Webからコピーした都道府県名・商品名・担当者名にNBSPが入っていると、ピボットテーブルは「東京」と「東京（NBSP付き）」を別々の項目として集計します。行ラベルに「東京」が2行並び、それぞれに異なる集計値が表示される状態になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>ピボットテーブルを更新しても直りません。元データのNBSPを除去してからテーブルを再作成（または更新）する必要があります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc50">対策：ピボット作成前にクレンジングする</span></h3>



<p class="wp-block-paragraph">ピボットテーブルの元データ列にクレンジング済みの作業列を追加し、その列をピボットの行・列・フィルターフィールドに使います。</p>



<p class="wp-block-paragraph"><strong>手順</strong></p>



<ol class="wp-block-list"><li>元データの隣に作業列（例: D列）を追加する</li><li>作業列に次の数式を入力する</li></ol>



<pre class="wp-block-code"><code>=TRIM(SUBSTITUTE(A2,CHAR(160),&quot; &quot;))</code></pre>



<ol class="wp-block-list"><li>作業列全体を<strong>値として貼り付け</strong>（<code>Ctrl+C</code> → <code>Alt+E+S+V+Enter</code>）して数式を固定する</li><li>ピボットテーブルの参照範囲を元の列から作業列に変更して再作成する</li></ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>定期的にデータを更新している場合は、前述の「Power QueryでNBSPを削除する方法」を使うと、更新のたびに自動クレンジングが走るため作業列が不要になります。ピボットテーブルの元データソースをPower Queryの出力テーブルに変更しておくのがおすすめです。</p></blockquote>



<p class="wp-block-paragraph">ピボットテーブルの基本操作は<a href="https://mashukabu.com/excel-pivot-table-guide/">Excelピボットテーブルの使い方</a>で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc51">Excel 365のREGEXREPLACE関数でNBSPを削除する</span></h2>



<p class="wp-block-paragraph">Microsoft 365では正規表現関数（REGEXREPLACE・REGEXTEST・REGEXEXTRACT）が追加されました。これを使うと、NBSPを含む複数種類の空白文字を1つの数式でまとめて削除できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>REGEXREPLACE関数はMicrosoft 365（サブスクリプション版）専用です。Excel 2021・2019などの永続ライセンス版では使用できません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc52">NBSPを正規表現で削除する数式</span></h3>



<pre class="wp-block-code"><code>=REGEXREPLACE(A1,&quot;x{00A0}&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code>x{00A0}</code> はNBSPのUnicodeコードポイント（U+00A0）を正規表現で指定する書き方です。これを空文字 <code>""</code> に置換することでNBSPを削除できます。</p>



<h3 class="wp-block-heading"><span id="toc53">NBSPと半角スペースをまとめて整形する</span></h3>



<p class="wp-block-paragraph">通常の半角スペースも一緒に処理する場合は、文字クラス <code>[...]</code> で両方を指定します。</p>



<pre class="wp-block-code"><code>=TRIM(REGEXREPLACE(A1,&quot;[x{00A0} ]+&quot;,&quot; &quot;))</code></pre>



<p class="wp-block-paragraph">NBSPと半角スペースの「1個以上の連続」をまとめて半角スペース1つに置換し、TRIM関数で前後を整えます。</p>



<h3 class="wp-block-heading"><span id="toc54">SUBSTITUTE式との使い分け</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>対応バージョン</th><th>書きやすさ</th><th>柔軟性</th></tr></thead><tbody><tr><td><code>SUBSTITUTE(A1,CHAR(160),"")</code></td><td>すべてのExcel</td><td>高い</td><td>1種類ずつ指定</td></tr><tr><td><code>REGEXREPLACE(A1,"x{00A0}","")</code></td><td>Microsoft 365のみ</td><td>やや難しい</td><td>複数パターンを1式で処理可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">日常的な用途ではSUBSTITUTE式で十分です。複数種類の特殊文字を一度に処理したい場合や、正規表現に慣れている場合はREGEXREPLACEが有効です。</p>



<p class="wp-block-paragraph">REGEXREPLACE関数のその他の使い方は<a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">REGEXREPLACE関数の使い方</a>で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc55">LAMBDA関数でNBSP除去のオリジナル関数を作る</span></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: LAMBDA関数はMicrosoft 365（サブスクリプション版）で利用できます。買い切り版でも最新のExcel 2024（Mac版含む）には搭載されていますが、Excel 2021・2019など、それより前の永続ライセンス版では使用できません。</p></blockquote>



<p class="wp-block-paragraph"><code>SUBSTITUTE(CLEAN(...),CHAR(160),"")</code> のような長い数式を、毎回セルに書き直すのは手間がかかります。</p>



<p class="wp-block-paragraph">LAMBDA関数を使えば、この処理を自分だけのオリジナル関数として登録できます。一度作っておけば、VBAを使わずに <code>=REMOVENBSP(A1)</code> のような感覚で呼び出せるようになります。</p>



<h3 class="wp-block-heading"><span id="toc56">手順（Windows版）</span></h3>



<ol class="wp-block-list"><li>[数式] タブ → [名前の管理] をクリック</li><li>[新規作成] を選ぶ</li><li>「名前」欄に <code>REMOVENBSP</code> と入力する</li><li>「参照範囲」欄に次の数式を入力する</li></ol>



<pre class="wp-block-code"><code>=LAMBDA(text, TRIM(CLEAN(SUBSTITUTE(text,CHAR(160),&quot; &quot;))))</code></pre>



<ol class="wp-block-list"><li>[OK] をクリックして保存する</li></ol>



<p class="wp-block-paragraph">登録が終われば、あとは普通の関数と同じように使えます。</p>



<pre class="wp-block-code"><code>=REMOVENBSP(A1)</code></pre>



<p class="wp-block-paragraph">NBSP・制御文字・前後の余分なスペースをまとめて除去した結果が返ってきます。</p>



<h3 class="wp-block-heading"><span id="toc57">手順（Mac版）</span></h3>



<p class="wp-block-paragraph">Mac版Excelでは、メニューの名称が少し異なる点に注意してください。[数式] タブ → [名前の定義] から同様の設定が可能です。手順そのものはWindows版とほぼ同じなので、迷うことは少ないでしょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ブックに保存された名前付き関数は、そのブックを開いている限りいつでも呼び出せます。VBAのマクロと違って「マクロ有効ブック（.xlsm）」として保存する必要がない点も扱いやすいポイントです。</p></blockquote>



<p class="wp-block-paragraph">詳しくは<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の使い方</a>を参照してください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc58">ノーブレークスペース以外の「見えない空白」の見分けと削除</span></h2>



<p class="wp-block-paragraph">NBSPがいちばん有名ですが、Webや海外システムから取り込んだデータには <strong>NBSP以外にも見えない空白文字</strong> が混入することがあります。「CHAR(160)を消しても、まだVLOOKUPが一致しない」というときは、これらを疑ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc59">代表的な見えない空白文字の一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>文字名</th><th>Unicode</th><th>10進コード</th><th>主な出現箇所</th></tr></thead><tbody><tr><td>ノーブレークスペース（NBSP）</td><td>U+00A0</td><td>160</td><td>Webコピー・Word貼付</td></tr><tr><td>ゼロ幅スペース</td><td>U+200B</td><td>8203</td><td>Web HTML・PDF抽出</td></tr><tr><td>ゼロ幅非接合子（ZWNJ）</td><td>U+200C</td><td>8204</td><td>アラビア語・ペルシャ語データ</td></tr><tr><td>狭い改行なしスペース</td><td>U+202F</td><td>8239</td><td>フランス語ロケールの数値区切り</td></tr><tr><td>全角スペース</td><td>U+3000</td><td>12288</td><td>日本語入力</td></tr><tr><td>BOM（バイトオーダーマーク）</td><td>U+FEFF</td><td>65279</td><td>UTF-8 CSVの先頭セル</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc60">UNICHAR関数で指定して削除する</span></h3>



<p class="wp-block-paragraph">文字コード255までしか扱えないCHAR関数では、ゼロ幅スペース（コード8203）などは指定できません。Excel 2013以降は <strong>UNICHAR関数</strong> を使えば、Unicode全範囲を指定できます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A1,UNICHAR(8203),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">複数種類をまとめて削除したい場合は、SUBSTITUTE関数をネストします。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,CHAR(160),&quot;&quot;),UNICHAR(8203),&quot;&quot;),UNICHAR(65279),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">内側から「NBSP削除 → ゼロ幅スペース削除 → BOM削除」と順番に処理しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「何の文字が入っているかさっぱりわからない」というときは、<code>=UNICODE(MID(A1,N,1))</code> を使うとUnicode値で確認できます。CODE関数は255までしか返せませんが、UNICODE関数は8203などの大きなコードも正しく取得できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc61">Microsoft 365なら正規表現で一括処理する</span></h3>



<p class="wp-block-paragraph">Microsoft 365の<a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">REGEXREPLACE関数</a>なら、複数種類の見えない空白を1つの数式で削除できます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A1,&quot;[x{00A0}x{200B}x{200C}x{202F}x{FEFF}]&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">文字クラス <code>[...]</code> の中にUnicodeコードポイントを並べることで、該当する文字すべてを空文字に置換します。複数システムからデータを集約する業務では、この一行で大半の見えない空白を処理できます。</p>



<h2 class="wp-block-heading"><span id="toc62">NBSPを最初から混入させない3つの予防策</span></h2>



<p class="wp-block-paragraph">削除方法を知っておくことも大事ですが、そもそも混入させない習慣をつけると整形作業の手間が減ります。</p>



<h3 class="wp-block-heading"><span id="toc63">予防策1: テキストエディタ経由でペーストする</span></h3>



<p class="wp-block-paragraph">クリップボードにHTMLが乗っている状態のままExcelに貼ると、NBSPが一緒に入ります。ChromeやTeamsからコピーした内容は、一度メモ帳（Windows）やテキストエディット（Macのプレーンテキストモード）に貼り付けてから再コピーしてください。HTML情報が取り除かれて、NBSPのない純粋なテキストになります。</p>



<h3 class="wp-block-heading"><span id="toc64">予防策2: 値のみ貼り付け（Ctrl+Shift+V / Alt+E+S+V）を習慣にする</span></h3>



<p class="wp-block-paragraph">Excelのショートカット <code>Alt+E+S+V+Enter</code>（「形式を選択して貼り付け」→「値」）でペーストすると、書式やHTMLを除いたテキストだけが入ります。Ctrl+Vの代わりにこの操作を習慣にするだけで、Webや他アプリからの混入をかなり防げます。Googleスプレッドシートでは <code>Ctrl+Shift+V</code> が値のみ貼り付けのショートカットです。</p>



<h3 class="wp-block-heading"><span id="toc65">予防策3: Power Queryを取り込み窓口にする</span></h3>



<p class="wp-block-paragraph">定期的にCSVや外部データを取り込む業務なら、Power Queryを入口にして自動クレンジングを組み込むのが根本的な解決策です。一度設定しておけば、毎回手動で整形する必要がなくなります。具体的な設定方法は前述の「Power QueryでNBSPを削除する方法」を参照してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>入力規則（データの入力規則）ではNBSPの混入を防ぐことはできません。入力規則はキーボードからの直接入力を制限する機能であり、貼り付け操作には無力です。予防策は「貼り付け方法の工夫」で対応してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc66">よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc67">Q. TeamsやSlackからコピペするとNBSPが入りますか？</span></h3>



<p class="wp-block-paragraph">入りやすい傾向があります。TeamsとSlackはChromiumベースのレンダリングを使っており、チャットのテキストをコピーするとHTMLが同伴することがあります。確認するには <code>=CODE(LEFT(A1,1))</code> で文字コードを見てください。160が出ればNBSPが混入しています。回避するには「テキストエディタ経由でペースト」か「値のみ貼り付け（Alt+E+S+V）」を使うのが確実です。</p>



<h3 class="wp-block-heading"><span id="toc68">Q. EXACT関数でFALSEなのに目視では同じ文字列です。なぜですか？</span></h3>



<p class="wp-block-paragraph">NBSPか制御文字が混入している可能性が高いです。<code>=CODE(MID(A1,N,1))</code> でN番目の文字のコードを確認し、160や制御文字のコード（0〜31）が出たら特殊文字が隠れています。<code>=SUBSTITUTE(A1,CHAR(160),"")</code> で削除してから再度EXACTで確認してください。</p>



<h3 class="wp-block-heading"><span id="toc69">Q. XLOOKUPでも#N/Aが出ます。VLOOKUPと同じ対処法ですか？</span></h3>



<p class="wp-block-paragraph">はい、同じです。XLOOKUP の検索値を <code>TRIM(SUBSTITUTE(A2,CHAR(160)," "))</code> で包んでください。<code>=XLOOKUP(TRIM(SUBSTITUTE(A2,CHAR(160)," ")),B:B,C:C,"該当なし")</code> のように記述します。XMATCHも同様に検索値のクレンジングが必要です。</p>



<h3 class="wp-block-heading"><span id="toc70">Q. Ctrl+Vで貼り付けるたびにNBSPが入ります。防ぐ方法はありますか？</span></h3>



<p class="wp-block-paragraph">「値のみ貼り付け」（<code>Alt+E+S+V+Enter</code>）をCtrl+Vの代わりに使う習慣が最も手軽な対策です。または、貼り付け前にメモ帳を経由してHTMLを除去する方法もあります。定期的に取り込むデータであれば、Power Queryをデータ入口にして自動クレンジングを設定しておくと根本的に解決できます。</p>



<h3 class="wp-block-heading"><span id="toc71">Q. CODE関数で160と出ました。これは必ずNBSPですか？</span></h3>



<p class="wp-block-paragraph">はい、文字コード160はNBSPです。確実に削除するには <code>=SUBSTITUTE(A1,CHAR(160),"")</code> を使ってください。160以外の文字コードが出た場合は、前述の「空白の種類と対処関数の早見表」を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc72">Q. SUBSTITUTE+CHAR(160)を入れたのに、VLOOKUPの不一致が直りません。</span></h3>



<p class="wp-block-paragraph">NBSP以外にも見えない文字が混入している可能性があります。次の組み合わせ式で、NBSPと制御文字を一括除去してください。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160),&quot; &quot;)))</code></pre>



<p class="wp-block-paragraph">それでも解決しない場合は、<code>=CODE(MID(A1,N,1))</code> で各文字の文字コードを1文字ずつ調べ、想定外の値がないか確認してください。</p>



<h3 class="wp-block-heading"><span id="toc73">Q. スマートフォンのメモアプリからコピーするとNBSPが入りますか？</span></h3>



<p class="wp-block-paragraph">アプリによって異なりますが、iOSのメモ帳・Slackなど一部のアプリはNBSP（文字コード160）を使って単語間の折り返しを制御しています。「TRIMで消えない」と感じたら、<code>=CODE(LEFT(A1,1))</code> で文字コードを確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc74">Q. Power QueryのText.TrimでNBSPも消えますか？</span></h3>



<p class="wp-block-paragraph">消えません。Power QueryのText.TrimはExcelのTRIM関数と同様に半角スペース（コード32）の前後除去のみ対応しており、NBSPには無効です。前述の「Power QueryでNBSPを削除する方法」に記載のText.Replaceを先にかけてください。</p>



<h3 class="wp-block-heading"><span id="toc75">Q. 「検索と置換」で削除したのに、まだ空白があります。</span></h3>



<p class="wp-block-paragraph">複数種類の空白が混在している可能性があります。全角スペース（コード12288）やタブ（コード9）が残っている場合は、それぞれ別途置換が必要です。一度に全種類を処理したい場合は、前述の「すべての空白を一括削除するマクロ」を使うと確実です。</p>



<h3 class="wp-block-heading"><span id="toc76">Q. NBSP以外にも「見えない空白」はありますか？</span></h3>



<p class="wp-block-paragraph">はい、あります。代表的なのはゼロ幅スペース（Unicode U+200B、コード8203）で、Webからのコピーで混入することが多いです。CHAR関数は255までしか対応しないため、UNICHAR関数を使って <code>=SUBSTITUTE(A1,UNICHAR(8203),"")</code> で削除します。詳しくは「ノーブレークスペース以外の『見えない空白』の見分けと削除」の章を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc77">Q. Mac版ExcelでもAlt+0160は使えますか？</span></h3>



<p class="wp-block-paragraph">使えません。Mac版Excelにはテンキーによる文字コード直接入力のショートカットがないため、「コピペ法」か「関数による削除」を使ってください。詳しくは「Mac版Excelでの注意点」の章を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc78">Q. LAMBDA関数でNBSP削除の自作関数を作れますか？</span></h3>



<p class="wp-block-paragraph">はい、作れます。[数式]タブの[名前の管理]から <code>=LAMBDA(text, TRIM(CLEAN(SUBSTITUTE(text,CHAR(160)," "))))</code> を <code>REMOVENBSP</code> という名前で登録すれば、<code>=REMOVENBSP(A1)</code> のように通常の関数と同じ感覚で呼び出せます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: LAMBDA関数はMicrosoft 365（サブスクリプション版）で利用できます。買い切り版でも最新のExcel 2024（Mac版含む）には搭載されていますが、Excel 2021・2019など、それより前の永続ライセンス版では使用できません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc79">Q. Google Apps ScriptでNBSPを削除できますか？</span></h3>



<p class="wp-block-paragraph">できます。<code>TextFinder</code> クラスの <code>createTextFinder</code> と <code>replaceAllWith</code> を使えば、シート全体を対象に数行のコードでNBSPを一括削除できます。正規表現を有効にすれば、NBSPと他の空白文字をまとめて処理することも可能です。</p>



<h2 class="wp-block-heading"><span id="toc80">まとめ</span></h2>



<p class="wp-block-paragraph">TrimやReplaceで消せない空白の正体は、文字コード 160 のノーブレークスペース（NBSP）です。</p>



<ul class="wp-block-list"><li>NBSPはWebコピーや外部システム連携で混入しやすい</li><li>見た目では普通のスペースと区別できない</li><li><code>=CODE(LEFT(A1,1))</code> で文字コードを確認すれば判別できる</li><li>関数では <code>=SUBSTITUTE(A1,CHAR(160),"")</code> で削除できる</li><li>VBAでは <code>Replace(文字列, ChrW(160), "")</code> で削除できる</li><li>TRIM・CLEAN関数と組み合わせると一括クレンジングに便利</li></ul>



<p class="wp-block-paragraph">外部からデータを取り込む機会が多い方は、「CHAR(160)」というキーワードを覚えておくと安心です。ぜひ活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc81">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-char/">CHAR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trimで前後の空白を削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">VBA LTrimで先頭の空白を削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-rtrim/">VBA RTrimで末尾の空白を削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBA 文字列の空白を削除する方法まとめ</a></li></ul>



<h3 class="wp-block-heading"><span id="toc82">関数一覧</span></h3>



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excel関数のエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/about-nbsp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
