<?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>TRIM関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/trim%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 11 Jun 2026 23:51:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>TRIM関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのASC関数の使い方｜全角→半角変換と4つの実務パターン</title>
		<link>https://mashukabu.com/spreadsheet-asc-function/</link>
					<comments>https://mashukabu.com/spreadsheet-asc-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:38:21 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ASC関数]]></category>
		<category><![CDATA[JIS関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[全角半角変換]]></category>
		<category><![CDATA[文字列変換]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4911</guid>

					<description><![CDATA[スプレッドシートのASC関数の使い方を基礎から解説。全角を半角に変換する基本、電話番号・カタカナの統一パターン、JIS関数との逆関数関係、TRIM・CLEAN・SUBSTITUTEとの組み合わせまで。変換対象一覧表とエラー対処つき。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで顧客リストや商品マスタを扱っていると、「電話番号やカタカナが全角と半角でバラバラで集計が合わない…」という場面、ありませんか?</p>



<p class="wp-block-paragraph">VLOOKUPやSUMIFSで集計しようとすると、全角「０３」と半角「03」は別物として扱われます。見た目はほとんど同じなのに、検索してもヒットしない。手作業で直そうとしても、件数が多いと現実的ではありませんよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>ASC関数</strong> です。この記事では、スプレッドシートのASC関数の基本から、JIS関数との使い分け、実務で役立つ4つの活用パターンまでを紹介します。よくあるエラーの対処も一通り押さえていきますよ。</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">スプレッドシートのASC関数とは？できることを30秒で理解</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">なぜASC関数が必要なのか</a></li></ol></li><li><a href="#toc4" tabindex="0">ASC関数の基本構文と使い方</a><ol><li><a href="#toc5" tabindex="0">書き方と引数の説明</a></li><li><a href="#toc6" tabindex="0">セルに入力した文字列から全角を半角に変換する</a></li><li><a href="#toc7" tabindex="0">カタカナや記号を半角に変換する</a></li><li><a href="#toc8" tabindex="0">ASC関数で変換される文字・されない文字</a></li></ol></li><li><a href="#toc9" tabindex="0">JIS関数との違い・使い分け（逆関数関係）</a><ol><li><a href="#toc10" tabindex="0">比較表</a></li><li><a href="#toc11" tabindex="0">逆変換の確認</a></li><li><a href="#toc12" tabindex="0">どちらを使うべきか</a></li></ol></li><li><a href="#toc13" tabindex="0">実務で使える4つのユースケース</a><ol><li><a href="#toc14" tabindex="0">ユースケース1: 電話番号の全角半角を統一して集計可能にする</a></li><li><a href="#toc15" tabindex="0">ユースケース2: CSVインポート後のデータをまとめてクレンジングする</a></li><li><a href="#toc16" tabindex="0">ユースケース3: VLOOKUP・SUMIFSの不一致を解消する</a></li><li><a href="#toc17" tabindex="0">ユースケース4: フォーム入力のゆらぎを吸収する</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">カタカナだけ全角に戻したい場合の対処</a></li><li><a href="#toc20" tabindex="0">数値として使いたいときの対処</a></li><li><a href="#toc21" tabindex="0">値として確定させたいとき</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ：ASC関数はデータクレンジングの第一歩</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのASC関数とは？できることを30秒で理解</span></h2>



<p class="wp-block-paragraph">ASC関数は、スプレッドシートで <strong>全角文字を半角文字に変換する</strong> 関数です。</p>



<p class="wp-block-paragraph">たとえば全角の「Ｅｘｃｅｌ」を渡すと「Excel」が返ります。英数字・カタカナ・記号・全角スペースがまとめて半角に変わるので、データの表記ゆれをそろえたい場面でとても便利ですよ。</p>



<p class="wp-block-paragraph">反対に「半角を全角に戻す」関数が<a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a>で、この2つは逆関数の関係になっています。セットで覚えておくと日本語データの整形作業がぐっと楽になりますね。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p class="wp-block-paragraph">ASC関数の読み方は「アスキー」です。文字コード規格「ASCII（American Standard Code for Information Interchange）」に由来する名前ですよ。ASCIIは半角英数字の文字コード体系なので、「ASC＝半角にする」と覚えておけば用途も直感的ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">なぜASC関数が必要なのか</span></h3>



<p class="wp-block-paragraph">「全角と半角の違いなんて、見た目ではわかりにくい程度で実害はないのでは？」と思うかもしれません。でも、データとしてはまったくの別物として扱われます。</p>



<p class="wp-block-paragraph">たとえば顧客の電話番号で、あるレコードは全角「０３-１２３４-５６７８」、別のレコードは半角「03-1234-5678」だったとします。VLOOKUPでこの2つを検索しても、部分一致すらしません。SUMIFSの条件指定でも同じ現象が起きて、集計結果が実態とかけ離れます。</p>



<p class="wp-block-paragraph">手作業で1件ずつ直すのは現実的ではないので、ASC関数で一気に半角へそろえるのが定石になっています。</p>



<h2 class="wp-block-heading"><span id="toc4">ASC関数の基本構文と使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc5">書き方と引数の説明</span></h3>



<p class="wp-block-paragraph">ASC関数の構文はとてもシンプルです。</p>



<pre class="wp-block-code"><code>=ASC(文字列)</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>半角に変換したい文字列またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけ。セル参照を渡すのが基本的な使い方です。</p>



<h3 class="wp-block-heading"><span id="toc6">セルに入力した文字列から全角を半角に変換する</span></h3>



<p class="wp-block-paragraph">もっとも基本的な使い方です。A1に「Ｅｘｃｅｌ」と全角で入力されている場合、次の数式で「Excel」が返ります。</p>



<pre class="wp-block-code"><code>=ASC(A1)
→ 「Excel」</code></pre>



<p class="wp-block-paragraph">数字も同じように変換されます。</p>



<pre class="wp-block-code"><code>=ASC(&quot;１２３４５&quot;)
→ 「12345」</code></pre>



<p class="wp-block-paragraph">文字列を直接指定することもできますが、実務ではセル参照で列全体に適用するのが一般的ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">カタカナや記号を半角に変換する</span></h3>



<p class="wp-block-paragraph">英数字以外もまとめて半角になります。</p>



<pre class="wp-block-code"><code>=ASC(&quot;カタカナ＠＃＄&quot;)
→ 「ｶﾀｶﾅ@#$」</code></pre>



<p class="wp-block-paragraph">全角のカタカナ・記号・全角スペースが一括で半角になりました。CSVインポート直後のクレンジングで、この挙動が役に立ちます。</p>



<h3 class="wp-block-heading"><span id="toc8">ASC関数で変換される文字・されない文字</span></h3>



<p class="wp-block-paragraph">どの文字がASC関数で変換対象か、一覧表でまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字種</th><th>変換前（全角）</th><th>変換後（半角）</th><th>変換される?</th></tr></thead><tbody><tr><td>英字</td><td>Ａ〜Ｚ, ａ〜ｚ</td><td>A〜Z, a〜z</td><td>される</td></tr><tr><td>数字</td><td>０〜９</td><td>0〜9</td><td>される</td></tr><tr><td>カタカナ</td><td>ア〜ン</td><td>ｱ〜ﾝ</td><td>される</td></tr><tr><td>濁点・半濁点つきカタカナ</td><td>ガ, パ など</td><td>ｶﾞ, ﾊﾟ など</td><td>される（2文字に分解される）</td></tr><tr><td>記号</td><td>＠, ＃, ＄, −（全角ハイフン）など</td><td>@, #, $, &#8211; など</td><td>される</td></tr><tr><td>全角スペース</td><td>「　」</td><td>「 」</td><td>される</td></tr><tr><td>ひらがな</td><td>あ〜ん</td><td>—</td><td>されない</td></tr><tr><td>漢字</td><td>東京, 大阪</td><td>—</td><td>されない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ひらがなと漢字には半角文字が存在しないため、変換されずそのまま残ります。「カタカナは全角のまま残したい」という場合、ASC関数のあとで後処理が必要ですよ。具体的には、カタカナ部分だけ<a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a>で戻す処理を入れます。</p>



<p class="wp-block-paragraph">濁点つきカタカナが <strong>2文字に分解される</strong> 点も、見落としがちな挙動です。LEN関数などで文字数をカウントしている処理がある場合は、結果がズレないか確認しておいてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc9">JIS関数との違い・使い分け（逆関数関係）</span></h2>



<p class="wp-block-paragraph">ASC関数と<a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a>は「半角↔全角」の逆の関係にあります。セットで押さえておくと、データ整形の引き出しがぐっと増えますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ASC</th><th>JIS</th></tr></thead><tbody><tr><td>変換方向</td><td>全角→半角</td><td>半角→全角</td></tr><tr><td>読み方</td><td>アスキー</td><td>ジス</td></tr><tr><td>用途</td><td>データの半角統一</td><td>表示用に全角統一</td></tr><tr><td>逆関数</td><td>JIS</td><td>ASC</td></tr><tr><td>引数</td><td>文字列（1つのみ）</td><td>文字列（1つのみ）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc11">逆変換の確認</span></h3>



<p class="wp-block-paragraph">ASC関数とJIS関数を連続で適用すると、元の文字列に戻ります。</p>



<pre class="wp-block-code"><code>=JIS(ASC(&quot;Ｅｘｃｅｌ&quot;))
→ 「Ｅｘｃｅｌ」（元に戻る）</code></pre>



<p class="wp-block-paragraph">つまり <code>JIS(ASC(文字列)) = 文字列</code> の関係が成り立ちます。逆に <code>ASC(JIS(文字列))</code> でも、もとが半角英数字の文字列なら同じ結果になります。</p>



<h3 class="wp-block-heading"><span id="toc12">どちらを使うべきか</span></h3>



<p class="wp-block-paragraph">次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li>データベースや集計に使うデータ → <strong>ASC</strong>（半角に統一）</li><li>印刷物や帳票で見やすく整えたい → <strong>JIS</strong>（全角に統一）</li><li>CSVインポート後のクレンジング → <strong>ASC</strong>（半角統一が基本）</li><li>郵便番号・電話番号の表示 → <strong>ASC</strong>（半角が慣例）</li></ul>



<p class="wp-block-paragraph">実務ではASC関数を使う場面のほうが圧倒的に多いです。集計や検索で使うデータは半角へ統一する、と覚えておけばまず迷いませんよ。</p>



<h2 class="wp-block-heading"><span id="toc13">実務で使える4つのユースケース</span></h2>



<h3 class="wp-block-heading"><span id="toc14">ユースケース1: 電話番号の全角半角を統一して集計可能にする</span></h3>



<p class="wp-block-paragraph">顧客リストで電話番号の表記がバラバラというケースです。A列に電話番号が入っているとします。</p>



<pre class="wp-block-code"><code>=ASC(A2)
→ 「０３−１２３４−５６７８」→「03-1234-5678」</code></pre>



<p class="wp-block-paragraph">全角のハイフンも半角に変換されるので、電話番号の書式がバラついたデータでも一発で統一できます。</p>



<p class="wp-block-paragraph">VLOOKUPの検索キーや、顧客マスタとの突き合わせでこの処理を挟むと、ヒット率が一気に上がりますよ。CSVで受け取った外部データを社内DBと照合するときの、ほぼ必須の下処理と思って大丈夫です。</p>



<h3 class="wp-block-heading"><span id="toc15">ユースケース2: CSVインポート後のデータをまとめてクレンジングする</span></h3>



<p class="wp-block-paragraph">データクレンジングでは複数の関数を組み合わせるのが定番です。全角半角の統一に加えて、余分なスペースや制御文字も除去しましょう。</p>



<pre class="wp-block-code"><code>=TRIM(ASC(A2))</code></pre>



<p class="wp-block-paragraph">この数式は2つのステップで動きます。</p>



<ol class="wp-block-list"><li>ASC関数が全角→半角に変換する</li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>（前後のスペースと連続スペースを整理する関数）が余分なスペースを除去する</li></ol>



<p class="wp-block-paragraph">さらに改行やタブなどの制御文字も取り除きたいときは、<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>（印刷できない制御文字を除去する関数）を組み合わせます。</p>



<pre class="wp-block-code"><code>=TRIM(ASC(CLEAN(A2)))</code></pre>



<p class="wp-block-paragraph">順番は <strong>内側から CLEAN → ASC → TRIM</strong> が定番です。制御文字を先に落とし、次に半角へ統一し、最後にスペースを整える。この順番を守ると、ほぼすべての表記ゆれが一掃できますよ。</p>



<p class="wp-block-paragraph">特定の文字だけ置き換えたいときは<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>も追加します。たとえば全角スペースを完全に削除したい場合はこう書きます。</p>



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



<p class="wp-block-paragraph">ASCで全角スペースが半角スペースに変わったあと、SUBSTITUTEで半角スペースを空文字に置換する流れですね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>データクレンジングの定番フロー</strong></p><p>CLEAN（制御文字除去）→ ASC（半角統一）→ TRIM（スペース整理）の順に適用すると、大半の不要文字を一掃できます。VLOOKUPやSUMIFSの条件不一致もこれで解消しやすくなりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">ユースケース3: VLOOKUP・SUMIFSの不一致を解消する</span></h3>



<p class="wp-block-paragraph">「検索値とデータが見た目は同じなのに、なぜかVLOOKUPがヒットしない」。これ、現場でよくある悩みですよね。</p>



<p class="wp-block-paragraph">原因は全角半角の違いによる不一致です。検索側のデータは半角、マスタ側は全角、といった具合に片側だけ全角になっているパターンがほとんどです。</p>



<p class="wp-block-paragraph">対処法は <strong>両方のセルにASC関数を適用する</strong> ことです。</p>



<pre class="wp-block-code"><code>=VLOOKUP(ASC(A2), ASC(マスタ範囲), 2, FALSE)</code></pre>



<p class="wp-block-paragraph">ただしこの書き方は、マスタ範囲を<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>でラップしないと動かないことがあります。より確実なのは、マスタ側に事前にASCをかけた補助列を用意しておくことです。</p>



<pre class="wp-block-code"><code>マスタ側に補助列を作る:
=ASC(B2)  （B列が元の検索キー）

検索側:
=VLOOKUP(ASC(A2), マスタの補助列, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">SUMIFSの条件指定でも同じ考え方で、条件値と条件範囲の両方にASCを適用します。この「両側に適用」を忘れると、片側だけ半角になって結局ヒットしないので要注意ですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">ユースケース4: フォーム入力のゆらぎを吸収する</span></h3>



<p class="wp-block-paragraph">Googleフォームやお問い合わせフォームで収集したデータは、入力者によって全角半角が混在します。氏名の姓名のあいだに全角スペース、半角スペース、スペースなし、とバラバラになりがちです。</p>



<p class="wp-block-paragraph">そんなときは、ASCとTRIMとSUBSTITUTEの合わせ技で統一します。</p>



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



<p class="wp-block-paragraph">この数式の動きはこうです。</p>



<ol class="wp-block-list"><li>ASC関数で全角スペースを半角スペースに統一</li><li>SUBSTITUTEで連続スペースを1つの半角スペースに正規化（※ 連続スペースがあれば繰り返し置換が必要）</li><li>TRIMで前後のスペースを除去</li></ol>



<p class="wp-block-paragraph">「姓・名」を後で分割したい場合も、まずスペース表記をそろえてから<a href="https://mashukabu.com/spreadsheet-split-function/">SPLIT関数</a>に渡すと失敗しません。入力ゆらぎに対して強いシートを作れますよ。</p>



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



<p class="wp-block-paragraph">ASC関数で発生しやすいトラブルをまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>変換されない文字がある</td><td>ひらがな・漢字は半角文字が存在しない</td><td>仕様どおりの動作。変換対象一覧を確認</td></tr><tr><td>カタカナが半角になって読みにくい</td><td>ASC関数はカタカナも半角にする</td><td>JIS関数でカタカナだけ全角に戻す</td></tr><tr><td>VLOOKUPが不一致のまま</td><td>検索側とマスタ側の両方に適用していない</td><td>両方のセルにASC関数を適用する</td></tr><tr><td>数値のまま計算に使いたい</td><td>ASC関数の返り値は文字列</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で数値に変換する</td></tr><tr><td>濁音つきカタカナが2文字扱い</td><td>濁点・半濁点が分離される仕様</td><td>LEN関数の結果を使っている処理は要チェック</td></tr><tr><td>#VALUE!エラーが出る</td><td>引数に無効な参照（エラー値）が入っている</td><td>参照先にエラーがないか確認</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">カタカナだけ全角に戻したい場合の対処</span></h3>



<p class="wp-block-paragraph">ASC関数をかけると英数字も記号もカタカナもまとめて半角になります。でも「英数字だけ半角にしたい、カタカナは全角で残したい」というケースは意外と多いです。</p>



<p class="wp-block-paragraph">この場合、「一度ASCをかけてからJIS関数で戻す」のはうまくいきません。カタカナ以外の英数字や記号まで全角に戻ってしまうからです。現実的な対処は2つあります。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>で英数字だけを半角に置換する</li><li>正規表現で英数字を検出してから部分的にASCを適用する</li></ul>



<p class="wp-block-paragraph">本格的に正規表現を使うなら、REGEXREPLACE関数のほうがコントロールしやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc20">数値として使いたいときの対処</span></h3>



<p class="wp-block-paragraph">ASC関数の返り値はあくまで文字列です。全角数字「１２３」を半角「123」に変換しても、セルの中身は「数値123」ではなく「文字列&#8221;123&#8243;」のままです。</p>



<p class="wp-block-paragraph">このまま SUM や AVERAGE で集計するとエラーになったり、意図せず無視されたりします。数値として扱いたい場合はVALUE関数で明示的に変換してください。</p>



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



<p class="wp-block-paragraph">これで計算や集計に使える数値として扱えるようになります。</p>



<h3 class="wp-block-heading"><span id="toc21">値として確定させたいとき</span></h3>



<p class="wp-block-paragraph">数式で変換したあと、もとのセルに「半角化した結果」として貼り直したい場面があります。そのときは数式の結果をコピーして、同じ範囲に <strong>「値のみ貼り付け」</strong> で上書きしましょう。</p>



<p class="wp-block-paragraph">メニューから「編集」→「特殊貼り付け」→「値のみ貼り付け」（ショートカット: Cmd/Ctrl + Shift + V）です。これで数式が消えてデータだけが残るので、ほかのシステムにエクスポートするときも安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc22">まとめ：ASC関数はデータクレンジングの第一歩</span></h2>



<p class="wp-block-paragraph">スプレッドシートのASC関数の要点を振り返ります。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=ASC(文字列)</code> — 引数1つで全角を半角に変換</li><li><strong>変換対象</strong>: 英数字・カタカナ・記号・全角スペース（ひらがな・漢字は対象外）</li><li><strong>逆関数</strong>: <a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a>（半角→全角）</li><li><strong>実務での活用</strong>: 電話番号の統一・CSVクレンジング・VLOOKUP不一致の解消・フォーム入力のゆらぎ吸収</li><li><strong>組み合わせの王道</strong>: CLEAN → ASC → TRIM の3段構え</li><li><strong>注意点</strong>: 返り値は文字列なので、数値として使うときはVALUE関数を重ねる</li></ul>



<p class="wp-block-paragraph">データの集計や検索で全角半角の不一致に悩んでいるなら、まずASC関数で半角に統一するところから始めてみてください。<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>や<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>と組み合わせれば、データクレンジングの大半をこれ一式でカバーできますよ。</p>



<p class="wp-block-paragraph">Excel版のASC関数や、関連する文字列操作関数については、こちらの記事もあわせてどうぞ。</p>



<ul class="wp-block-list"><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/">JIS関数の使い方</a>（半角→全角変換）</li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数の使い方</a>（スペース整理）</li><li><a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数の使い方</a>（制御文字除去）</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-asc-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCLEAN関数の使い方｜改行・制御文字を一括削除</title>
		<link>https://mashukabu.com/spreadsheet-clean-function/</link>
					<comments>https://mashukabu.com/spreadsheet-clean-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:12 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CLEAN関数]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[制御文字削除]]></category>
		<category><![CDATA[改行削除]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4893</guid>

					<description><![CDATA[スプレッドシートのCLEAN関数は、改行やタブなどの印刷できない制御文字を一括削除する関数です。CSVインポートやWebコピペで混入する不要文字の除去方法を解説。TRIM・SUBSTITUTEとの組み合わせ技、CODE関数で文字コードを調べる診断法も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CSVをインポートしたら、セルの中に謎の改行が入っていた。Webページからコピペしたデータに、見えない文字が紛れ込んでいた――そんな経験はありませんか？</p>



<p class="wp-block-paragraph">目視ではわからない制御文字が混入すると、数式がうまく動かなかったり、集計結果がずれたりします。原因を特定するだけでも一苦労ですよね。</p>



<p class="wp-block-paragraph">そんなときに使うのが<strong>CLEAN関数</strong>です。改行やタブなどの「印刷できない制御文字」をまとめて削除してくれます。</p>



<p class="wp-block-paragraph">この記事では、CLEAN関数の基本から、TRIM関数・SUBSTITUTE関数との組み合わせ、CLEAN関数では消えない文字への対処法まで紹介します。</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">スプレッドシートのCLEAN関数とは？印刷できない制御文字を削除する関数</a><ol><li><a href="#toc2" tabindex="0">CLEAN関数の構文と引数</a></li><li><a href="#toc3" tabindex="0">CLEAN関数が削除する文字・しない文字</a></li></ol></li><li><a href="#toc4" tabindex="0">基本的な使い方：改行・制御文字を一括削除する</a><ol><li><a href="#toc5" tabindex="0">CSVインポートで混入した改行を削除する</a></li><li><a href="#toc6" tabindex="0">CODE関数で制御文字を見つける診断コード</a></li></ol></li><li><a href="#toc7" tabindex="0">TRIM関数・SUBSTITUTE関数との組み合わせパターン</a><ol><li><a href="#toc8" tabindex="0">CLEAN+TRIMで制御文字とスペースを同時に除去</a></li><li><a href="#toc9" tabindex="0">CLEAN+SUBSTITUTE+TRIMで完全クリーニング</a></li></ol></li><li><a href="#toc10" tabindex="0">CLEAN関数で消えない文字への対処法</a><ol><li><a href="#toc11" tabindex="0">CHAR(160)ノーブレークスペースの削除</a></li><li><a href="#toc12" tabindex="0">Unicode制御文字の削除（REGEXREPLACE）</a></li></ol></li><li><a href="#toc13" tabindex="0">よくある質問（CLEAN関数）</a></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのCLEAN関数とは？印刷できない制御文字を削除する関数</span></h2>



<p class="wp-block-paragraph">CLEAN関数（読み方：クリーン関数）は、<strong>テキストからASCII制御文字を削除する関数</strong>です。</p>



<p class="wp-block-paragraph">名前は英語の「clean（きれいにする）」が語源です。目に見えない不要な文字をきれいに取り除くイメージですね。</p>



<p class="wp-block-paragraph">CLEAN関数が削除するのは、ASCIIコード0〜31の「制御文字」と呼ばれる文字です。代表的なものを挙げると、次のとおりです。</p>



<ul class="wp-block-list"><li>CHAR(9)：タブ</li><li>CHAR(10)：改行（ラインフィード / LF）</li><li>CHAR(13)：復帰（キャリッジリターン / CR）</li></ul>



<p class="wp-block-paragraph">これらは画面に表示されない文字なので、目視では見つけられません。CLEAN関数を使えば、まとめて削除できます。</p>



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



<pre class="wp-block-code"><code>=CLEAN(テキスト)</code></pre>



<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>テキスト</td><td>必須</td><td>制御文字を削除したい文字列やセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はひとつだけ。<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>と同じく、シンプルな構文です。</p>



<h3 class="wp-block-heading"><span id="toc3">CLEAN関数が削除する文字・しない文字</span></h3>



<p class="wp-block-paragraph">CLEAN関数はすべての不要文字を消してくれるわけではありません。削除できる範囲をきちんと把握しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字の種類</th><th>文字コード</th><th>CLEAN</th><th>TRIM</th><th>主な発生源</th></tr></thead><tbody><tr><td>改行（LF）</td><td>CHAR(10)</td><td>削除できる</td><td>不可</td><td>CSVインポート・コピペ</td></tr><tr><td>復帰（CR）</td><td>CHAR(13)</td><td>削除できる</td><td>不可</td><td>Windows環境のCSV</td></tr><tr><td>タブ</td><td>CHAR(9)</td><td>削除できる</td><td>不可</td><td>TSVファイル・コピペ</td></tr><tr><td>半角スペース</td><td>CHAR(32)</td><td>削除できない</td><td>削除できる</td><td>手入力・CSV</td></tr><tr><td>全角スペース</td><td>—</td><td>削除できない</td><td>削除できない</td><td>日本語入力の切り替えミス</td></tr><tr><td>ノーブレークスペース</td><td>CHAR(160)</td><td>削除できない</td><td>削除できない</td><td>Webコピペ・HTML</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、CLEAN関数とTRIM関数は<strong>担当範囲が違う</strong>ということです。CLEAN関数は制御文字（CHAR(0)〜31）を担当し、TRIM関数は半角スペース（CHAR(32)）を担当します。どちらか片方だけでは不十分なケースが多いので、組み合わせて使うのが定番です。</p>



<h2 class="wp-block-heading"><span id="toc4">基本的な使い方：改行・制御文字を一括削除する</span></h2>



<h3 class="wp-block-heading"><span id="toc5">CSVインポートで混入した改行を削除する</span></h3>



<p class="wp-block-paragraph">CSVファイルをインポートすると、セルの中に改行が入り込むことがあります。CLEAN関数で削除してみましょう。</p>



<p class="wp-block-paragraph">A1に「東京都千代田区」（セル内改行あり）が入っているとします。</p>



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



<p class="wp-block-paragraph">結果は「東京都千代田区」です。改行が削除されて、1行にまとまりました。</p>



<p class="wp-block-paragraph">列全体に適用するのが実務的な使い方です。B1に数式を入れて下方向にコピーすれば、一括で整形できますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>改行を削除するのではなく、改行をスペースや特定の区切り文字に「置換」したい場合は、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>を使います。<code>=SUBSTITUTE(A1, CHAR(10), " ")</code> で改行を半角スペースに置き換えられます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc6">CODE関数で制御文字を見つける診断コード</span></h3>



<p class="wp-block-paragraph">「制御文字が入っているかどうか」を確認したいときは、CODE関数が便利です。CODE関数は、文字列の先頭1文字のASCIIコードを返します。</p>



<p class="wp-block-paragraph">実務で手軽に使える診断コードを紹介します。</p>



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



<p class="wp-block-paragraph">結果が「0」なら制御文字は入っていません。「0」以外なら、その数だけ制御文字が混入しています。</p>



<p class="wp-block-paragraph">たとえばA1に改行が2つ入っている場合、LEN(A1)は元の文字数+2、LEN(CLEAN(A1))は元の文字数です。差は「2」。制御文字が2文字あるとわかります。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数の使い方</a>と組み合わせた、覚えておくと便利な診断テクニックです。</p>



<h2 class="wp-block-heading"><span id="toc7">TRIM関数・SUBSTITUTE関数との組み合わせパターン</span></h2>



<p class="wp-block-paragraph">CLEAN関数は制御文字だけを削除する関数です。実務では、スペースや見えない文字も同時に処理したいケースがほとんどです。ここでは定番の組み合わせパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc8">CLEAN+TRIMで制御文字とスペースを同時に除去</span></h3>



<p class="wp-block-paragraph">もっとも基本的な組み合わせです。CLEAN関数で制御文字を削除し、<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で余分なスペースを削除します。</p>



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



<p class="wp-block-paragraph">CSVインポートやコピペデータの整形では、この2つをセットで使うのが定番です。「とりあえずTRIM(CLEAN())」を習慣にしておくと、多くのデータ整形トラブルを未然に防げます。</p>



<h3 class="wp-block-heading"><span id="toc9">CLEAN+SUBSTITUTE+TRIMで完全クリーニング</span></h3>



<p class="wp-block-paragraph">全角スペースやCHAR(160)（ノーブレークスペース）も含めて、すべての不要文字を一括除去したい場合の数式です。</p>



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



<p class="wp-block-paragraph">ちょっと長く見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li>内側のSUBSTITUTE：全角スペースを半角スペースに変換</li><li>外側のSUBSTITUTE：CHAR(160)を半角スペースに変換</li><li>CLEAN：制御文字（改行・タブ等）を削除</li><li>TRIM：余分な半角スペースを削除</li></ol>



<p class="wp-block-paragraph">この4段構えで、ほぼすべての不要文字を除去できます。外部データを取り込む場面では、このフル版を使っておくと安心です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>同じ列に毎回この長い数式を入れるのが面倒なら、ヘルパー列（補助列）を1列用意して数式を入れておくのがおすすめです。元データを上書きしたい場合は、補助列をコピーして「値のみ貼り付け」で戻しましょう。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc10">CLEAN関数で消えない文字への対処法</span></h2>



<p class="wp-block-paragraph">CLEAN関数はASCIIコード0〜31の制御文字しか削除しません。それ以外の「見えない文字」は残ったままになります。</p>



<h3 class="wp-block-heading"><span id="toc11">CHAR(160)ノーブレークスペースの削除</span></h3>



<p class="wp-block-paragraph">Webページからコピペしたデータに混入しやすいのが、CHAR(160)のノーブレークスペースです。見た目は普通のスペースと同じですが、CLEAN関数でもTRIM関数でも削除できません。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>でCHAR(160)を指定して置換します。</p>



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



<p class="wp-block-paragraph">CHAR(160)を半角スペースに変換してから、TRIMで整形するのが定番です。</p>



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



<p class="wp-block-paragraph">「CLEAN関数を使ったのにまだ変な文字が残っている」という場合は、CHAR(160)を疑ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">Unicode制御文字の削除（REGEXREPLACE）</span></h3>



<p class="wp-block-paragraph">まれに、ASCIIコード128以上のUnicode制御文字が混入することがあります。CLEAN関数の対象外なので、正規表現で除去します。</p>



<p class="wp-block-paragraph">Googleスプレッドシートには正規表現で置換できるREGEXREPLACE関数があります。</p>



<pre class="wp-block-code"><code>=TRIM(CLEAN(REGEXREPLACE(A1, &quot;[x00-x1Fx7F-x9F]&quot;, &quot;&quot;)))</code></pre>



<p class="wp-block-paragraph">この正規表現は「ASCIIおよびLatin-1の制御文字」を削除します。CLEANとREGEXREPLACEを組み合わせることで、より広い範囲の制御文字を除去できます。</p>



<p class="wp-block-paragraph">正規表現が難しいと感じたら、無理に使う必要はありません。ほとんどの実務データは前述の <code>=TRIM(CLEAN(SUBSTITUTE(...)))</code> パターンで十分対処できます。</p>



<h2 class="wp-block-heading"><span id="toc13">よくある質問（CLEAN関数）</span></h2>



<p class="wp-block-paragraph"><strong>Q. CLEAN関数でスペースは削除できますか？</strong></p>



<p class="wp-block-paragraph">できません。半角スペース（CHAR(32)）はCLEAN関数の対象外です。スペースの削除には<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>を使ってください。制御文字とスペースの両方を消したいなら <code>=TRIM(CLEAN(A1))</code> がおすすめです。</p>



<p class="wp-block-paragraph"><strong>Q. CLEAN関数で改行をスペースに置き換えられますか？</strong></p>



<p class="wp-block-paragraph">CLEAN関数は改行を「削除」するだけです。スペースに「置換」したい場合は、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で <code>=SUBSTITUTE(A1, CHAR(10), " ")</code> と書いてください。</p>



<p class="wp-block-paragraph"><strong>Q. ExcelのCLEAN関数との違いはありますか？</strong></p>



<p class="wp-block-paragraph">基本的な動作は同じです。どちらもASCIIコード0〜31の制御文字を削除します。ただし、ExcelファイルをGoogleスプレッドシートで開いた場合、改行コードの扱いに違いが出ることがあります。スプレッドシートではCHAR(10)がセル内改行です。</p>



<p class="wp-block-paragraph"><strong>Q. CLEAN関数を使っても文字が残る場合は？</strong></p>



<p class="wp-block-paragraph">CHAR(160)（ノーブレークスペース）やUnicode制御文字はCLEAN関数の対象外です。<code>=CODE(MID(A1, N, 1))</code> で残っている文字のコードを調べ、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で個別に削除してください。</p>



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



<p class="wp-block-paragraph">CLEAN関数は、改行やタブなどの制御文字を削除するシンプルな関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=CLEAN(テキスト)</code> の1引数だけ。ASCIIコード0〜31の制御文字をまとめて削除する</li><li>CLEAN関数と<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>は担当範囲が違う。<code>=TRIM(CLEAN(A1))</code> のセット使いが定番</li><li><code>=LEN(A1)-LEN(CLEAN(A1))</code> で制御文字の混入を素早く診断できる</li><li>全角スペースやCHAR(160)はCLEAN関数では消えない。<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で個別に対処する</li><li>完全クリーニングには <code>=TRIM(CLEAN(SUBSTITUTE(SUBSTITUTE(A1,"　"," "),CHAR(160)," ")))</code> を使う</li></ul>



<p class="wp-block-paragraph">まずは <code>=LEN(A1)-LEN(CLEAN(A1))</code> で、手元のデータに制御文字が潜んでいないかチェックしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-clean-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのTRIM関数の使い方｜余分なスペースを一括削除</title>
		<link>https://mashukabu.com/spreadsheet-trim-function/</link>
					<comments>https://mashukabu.com/spreadsheet-trim-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 10:41:02 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COUNTIF]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[スペース削除]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4382</guid>

					<description><![CDATA[スプレッドシートのTRIM関数は、コピペデータの余分なスペースを自動削除する関数です。VLOOKUPが一致しない3大スペース原因を比較表で解説し、LEN診断コード・COUNTIF+TRIM応用・全角スペース対処法まで網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">外部システムからコピペしたデータで、VLOOKUPが「なぜか一致しない」経験はありませんか？</p>



<p class="wp-block-paragraph">目視では同じ文字列なのに#N/Aが返る。COUNTIFの集計結果も合わない。原因を調べると、先頭や末尾に見えないスペースが紛れ込んでいた――そんなトラブル、意外と多いですよね。</p>



<p class="wp-block-paragraph">そんなときに使うのが<strong>TRIM関数</strong>です。余分なスペースを自動で削除してくれます。コピペデータの整形には欠かせない関数です。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのTRIM関数の基本から、VLOOKUP・COUNTIFとの組み合わせ、全角スペースへの対処法まで紹介します。</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">スプレッドシートのTRIM関数とは？余分なスペースを自動削除する関数</a><ol><li><a href="#toc2" tabindex="0">TRIM関数の構文と引数</a></li><li><a href="#toc3" tabindex="0">削除されるスペース・されないスペースの違い</a></li></ol></li><li><a href="#toc4" tabindex="0">基本の使い方：前後・連続スペースをまとめて消す</a><ol><li><a href="#toc5" tabindex="0">先頭・末尾スペースの削除（コピペデータの定番整形）</a></li><li><a href="#toc6" tabindex="0">単語間の連続スペースを1つに圧縮する</a></li></ol></li><li><a href="#toc7" tabindex="0">VLOOKUPが一致しない？スペースが原因の3パターン</a><ol><li><a href="#toc8" tabindex="0">3大スペース原因の比較表</a></li><li><a href="#toc9" tabindex="0">LEN関数でスペースを診断するコード</a></li><li><a href="#toc10" tabindex="0">VLOOKUP+TRIMのネストで検索値を自動整形</a></li></ol></li><li><a href="#toc11" tabindex="0">COUNTIF+TRIM応用｜スペース混じりのデータを正確にカウント</a></li><li><a href="#toc12" tabindex="0">全角スペースはTRIMで消えない｜SUBSTITUTE組み合わせ技</a><ol><li><a href="#toc13" tabindex="0">SUBSTITUTE+TRIMで全角・半角を一括処理</a></li><li><a href="#toc14" tabindex="0">REGEXREPLACEでまとめてクリーニングする方法</a></li></ol></li><li><a href="#toc15" tabindex="0">よくある質問（TRIM関数）</a></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのTRIM関数とは？余分なスペースを自動削除する関数</span></h2>



<p class="wp-block-paragraph">TRIM関数（読み方：トリム関数）は、<strong>テキストから余分なスペースを削除する関数</strong>です。</p>



<p class="wp-block-paragraph">名前は英語の「trim（刈り込む・整える）」が語源です。文字列の前後についたスペースを刈り取るイメージですね。</p>



<p class="wp-block-paragraph">TRIM関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>先頭のスペースを削除する</li><li>末尾のスペースを削除する</li><li>単語間の連続スペースを1つに圧縮する</li></ul>



<p class="wp-block-paragraph">Googleスプレッドシートには「データ → データクリーンアップ → 空白文字を削除」というメニューもあります。ただし、数式で処理するほうが再現性が高く、大量データにも対応しやすいですよ。</p>



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



<pre class="wp-block-code"><code>=TRIM(テキスト)</code></pre>



<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>テキスト</td><td>必須</td><td>スペースを削除したい文字列やセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はひとつだけ。シンプルな構文なので、すぐに使い始められます。</p>



<h3 class="wp-block-heading"><span id="toc3">削除されるスペース・されないスペースの違い</span></h3>



<p class="wp-block-paragraph">TRIM関数が削除するのは<strong>ASCIIコード32の半角スペースだけ</strong>です。ここが重要なポイントです。</p>



<p class="wp-block-paragraph">全角スペースやWebコピペで混入するCHAR(160)は削除できません。<a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数</a>は全角スペースも削除しますが、Googleスプレッドシートでは残ったままになります。</p>



<p class="wp-block-paragraph">削除できる文字・できない文字を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>スペース種別</th><th>TRIM</th><th>SUBSTITUTE</th><th>CLEAN</th><th>主な発生源</th></tr></thead><tbody><tr><td>半角スペース（前後・連続）</td><td>削除できる</td><td>全削除可</td><td>不可</td><td>CSVインポート・手入力ミス</td></tr><tr><td>全角スペース</td><td>削除できない</td><td>削除可</td><td>不可</td><td>日本語入力切り替え時のミス</td></tr><tr><td>CHAR(160)</td><td>削除できない</td><td>CHAR(160)指定で可</td><td>不可</td><td>Webコピペ・HTMLデータ</td></tr><tr><td>改行・制御文字</td><td>不可</td><td>一部可</td><td>削除可</td><td>Excelコピペ・APIデータ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">CLEAN関数はASCII 0〜31の制御文字（改行やタブなど）を削除する関数です。TRIM関数と組み合わせれば、制御文字とスペースの両方を一度に除去できます。</p>



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



<p class="wp-block-paragraph">全角スペースやCHAR(160)への対処法は、後半のセクションで詳しく解説しますね。</p>



<h2 class="wp-block-heading"><span id="toc4">基本の使い方：前後・連続スペースをまとめて消す</span></h2>



<h3 class="wp-block-heading"><span id="toc5">先頭・末尾スペースの削除（コピペデータの定番整形）</span></h3>



<p class="wp-block-paragraph">CSVや外部システムからコピペしたデータには、先頭や末尾にスペースが入りがちです。TRIM関数で一発で取り除けます。</p>



<p class="wp-block-paragraph">A1に「 東京都 」（前後にスペース付き）が入っているとします。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_trim-basic.png" alt="02 formula trim basic" /></figure>



<p class="wp-block-paragraph">結果は「東京都」です。前後のスペースがきれいに消えました。</p>



<p class="wp-block-paragraph">セル1つだけでなく、列全体に適用するのが実務的な使い方です。B1に数式を入れて下方向にコピーすれば、一括で整形できますよ。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-trim-function/03_result_trim-basic.png/">_images/spreadsheet-trim-function/03_result_trim-basic.png</a></p>



<h3 class="wp-block-heading"><span id="toc6">単語間の連続スペースを1つに圧縮する</span></h3>



<p class="wp-block-paragraph">TRIM関数は前後のスペースだけでなく、単語の間にある連続スペースも整理してくれます。</p>



<p class="wp-block-paragraph">A1に「田中   太郎」（スペース3つ）が入っているとします。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_formula_trim-words.png" alt="04 formula trim words" /></figure>



<p class="wp-block-paragraph">結果は「田中 太郎」です。3つあったスペースが1つに圧縮されました。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-trim-function/05_result_trim-words.png/">_images/spreadsheet-trim-function/05_result_trim-words.png</a></p>



<p class="wp-block-paragraph">先頭・末尾の削除と連続スペースの圧縮。この2つがTRIM関数の基本動作です。</p>



<h2 class="wp-block-heading"><span id="toc7">VLOOKUPが一致しない？スペースが原因の3パターン</span></h2>



<p class="wp-block-paragraph">VLOOKUPで#N/Aが返るとき、まず疑いたいのがスペースの混入です。目視では同じ文字列でも、スペースが1つ入るだけで「別の文字列」と判定されます。</p>



<h3 class="wp-block-heading"><span id="toc8">3大スペース原因の比較表</span></h3>



<p class="wp-block-paragraph">VLOOKUPが一致しない原因になるスペースは、大きく3種類あります。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>見た目</th><th>発生源</th><th>対処法</th></tr></thead><tbody><tr><td>半角スペース（前後）</td><td>目視でわかりにくい</td><td>CSV・手入力</td><td>TRIM関数</td></tr><tr><td>全角スペース</td><td>目視でわかりにくい</td><td>日本語入力の切り替えミス</td><td><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で半角に変換してからTRIM</td></tr><tr><td>CHAR(160)</td><td>完全に見えない</td><td>Webページのコピペ</td><td>SUBSTITUTEでCHAR(160)を指定して置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">どのスペースも目視では見つけにくいのがやっかいです。次に紹介するLEN関数の診断コードで、スペースが入っているかどうかをチェックしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc9">LEN関数でスペースを診断するコード</span></h3>



<p class="wp-block-paragraph">スペースが混入しているかどうかは、LEN関数で簡単に判定できます。</p>



<p class="wp-block-paragraph">LEN関数は文字数を数える関数です。元の文字列とTRIM後の文字列の文字数を比較すれば、スペースが何文字あるか一目瞭然です。</p>



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



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-trim-function/06_formula_len-diagnosis.png/">_images/spreadsheet-trim-function/06_formula_len-diagnosis.png</a></p>



<p class="wp-block-paragraph">結果が「0」なら余分なスペースはありません。「0」以外ならスペースが混入しています。</p>



<p class="wp-block-paragraph">たとえばA1が「 東京都 」（前後にスペース各1つ）なら、LEN(A1)は5、LEN(TRIM(A1))は3です。差は「2」。スペースが2文字入っているとわかります。</p>



<p class="wp-block-paragraph">この診断コードを補助列に入れておくと、「どのセルにスペースが入っているか」をすぐに特定できますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">VLOOKUP+TRIMのネストで検索値を自動整形</span></h3>



<p class="wp-block-paragraph">VLOOKUPの検索値にTRIM関数をネスト（入れ子）すれば、スペースが入っていても正しくマッチします。</p>



<pre class="wp-block-code"><code>=VLOOKUP(TRIM(A2), D:E, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A2に「 東京都」のようにスペース付きの値が入っていても、TRIM関数が先にスペースを削除します。そのあとでVLOOKUPが検索するので、#N/Aを回避できます。</p>



<p class="wp-block-paragraph">検索範囲のほう（D列）にもスペースが入っている場合は、範囲側にもTRIM済みの補助列を用意しましょう。検索値と検索範囲の両方を整形するのが確実です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>VLOOKUPの検索値にTRIMをネストするのは、外部データを扱うときの定番テクニックです。「とりあえずTRIM」の習慣をつけておくと、スペース起因のトラブルを未然に防げます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc11">COUNTIF+TRIM応用｜スペース混じりのデータを正確にカウント</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数の使い方</a>でデータを集計するとき、スペース混じりだと正しくカウントされません。「東京都」と「東京都 」は別の文字列として扱われるからです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数の使い方</a>でセル数を数える場面でも、スペースだけのセルが「データあり」と判定されてしまうことがあります。</p>



<p class="wp-block-paragraph">この問題はTRIM済みの補助列を作ることで解決できます。</p>



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



<ol class="wp-block-list"><li>元データの隣の列にTRIM関数を入れる</li><li>TRIM済みの列に対してCOUNTIFで集計する</li></ol>



<pre class="wp-block-code"><code>=TRIM(A2)</code></pre>



<p class="wp-block-paragraph">B列にこの数式を入れて下方向にコピーします。これでスペースなしのデータ列ができます。</p>



<pre class="wp-block-code"><code>=COUNTIF(B2:B100, &quot;東京都&quot;)</code></pre>



<p class="wp-block-paragraph">TRIM済みのB列に対してCOUNTIFを使えば、スペースの有無に関係なく正確にカウントできます。</p>



<p class="wp-block-paragraph">元データを直接上書きしたい場合は、TRIM済みの列をコピーして「値のみ貼り付け」で元の列に戻しましょう。数式が消えて、整形済みのテキストだけが残ります。</p>



<h2 class="wp-block-heading"><span id="toc12">全角スペースはTRIMで消えない｜SUBSTITUTE組み合わせ技</span></h2>



<p class="wp-block-paragraph">TRIM関数が削除するのは半角スペースだけです。全角スペースは削除できません。日本語データでは全角スペースが混入しやすいので、別の対処が必要です。</p>



<h3 class="wp-block-heading"><span id="toc13">SUBSTITUTE+TRIMで全角・半角を一括処理</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>は、指定した文字列を別の文字列に置き換える関数です。全角スペースを半角スペースに変換してから、TRIM関数で整形する2段構えが定番です。</p>



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



<p class="wp-block-paragraph">数式の中の &#8220;　&#8221; は全角スペース、&#8221; &#8221; は半角スペースです。SUBSTITUTE関数で全角→半角に変換し、そのあとTRIM関数で前後・連続スペースを削除します。</p>



<p class="wp-block-paragraph">CHAR(160)（ノーブレークスペース。Webページのコピペで混入する見えないスペース）も同時に処理したい場合は、SUBSTITUTEをもう1段ネストします。</p>



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



<p class="wp-block-paragraph">ちょっと長く見えますが、やっていることはシンプルです。内側のSUBSTITUTEで全角スペースを半角に変換し、外側のSUBSTITUTEでCHAR(160)を半角に変換。最後にTRIMで整形しています。</p>



<h3 class="wp-block-heading"><span id="toc14">REGEXREPLACEでまとめてクリーニングする方法</span></h3>



<p class="wp-block-paragraph">Googleスプレッドシートには、正規表現で文字列を置換するREGEXREPLACE関数があります。複数種類のスペースを1つの数式でまとめて処理できます。</p>



<pre class="wp-block-code"><code>=TRIM(REGEXREPLACE(A1,&quot;[s　]+&quot;,&quot; &quot;))</code></pre>



<p class="wp-block-paragraph"><code>[s　]+</code> は「半角スペース・タブ・改行・全角スペースが1文字以上連続したもの」を意味する正規表現パターンです。これらをすべて半角スペース1つに置き換えてから、TRIMで仕上げます。</p>



<p class="wp-block-paragraph">正規表現が苦手な方はSUBSTITUTE版で十分です。ただ、いろいろな種類のスペースが混在するデータを扱うなら、REGEXREPLACE版のほうがスッキリ書けますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">よくある質問（TRIM関数）</span></h2>



<p class="wp-block-paragraph"><strong>Q. TRIM関数で元データは変わりますか？</strong></p>



<p class="wp-block-paragraph">変わりません。TRIM関数は別のセルに結果を返す関数です。元データを上書きしたい場合は、TRIM済みの結果をコピーして「値のみ貼り付け」で戻してください。</p>



<p class="wp-block-paragraph"><strong>Q. ExcelのTRIM関数との違いはありますか？</strong></p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方</a>は全角スペースも削除します。一方、GoogleスプレッドシートのTRIM関数は半角スペースしか削除しません。Excelファイルをスプレッドシートで開いたとき、全角スペースの処理結果が変わる可能性があるので注意してください。</p>



<p class="wp-block-paragraph"><strong>Q. TRIM関数で改行は削除できますか？</strong></p>



<p class="wp-block-paragraph">できません。改行やタブなどの制御文字にはCLEAN関数を使います。<code>=TRIM(CLEAN(A1))</code> のように組み合わせれば、制御文字とスペースの両方を除去できます。</p>



<p class="wp-block-paragraph"><strong>Q. スペースをすべて削除したい場合は？</strong></p>



<p class="wp-block-paragraph">TRIM関数は単語間のスペースを1つ残します。すべてのスペースを完全に削除したい場合は、SUBSTITUTE関数で半角スペースを空文字に置換してください。<code>=SUBSTITUTE(A1," ","")</code> ですべての半角スペースが消えます。</p>



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



<p class="wp-block-paragraph">TRIM関数は、コピペデータの余分なスペースを削除するシンプルな関数です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=TRIM(テキスト)</code> の1引数だけ。前後のスペース削除と連続スペースの圧縮ができる</li><li>VLOOKUPの#N/Aエラーはスペース混入が原因のことが多い。検索値に <code>TRIM()</code> をネストするのが定番の対処法</li><li><code>=LEN(A1)-LEN(TRIM(A1))</code> でスペースの混入を素早く診断できる</li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>でスペース混じりデータを集計するときは、TRIM済み補助列を作る</li><li>全角スペースはTRIMでは消えない。<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で半角に変換してからTRIMで仕上げる</li><li>CHAR(160)やWebコピペの見えないスペースもSUBSTITUTE+TRIMで対処できる</li></ul>



<p class="wp-block-paragraph">まずは <code>=LEN(A1)-LEN(TRIM(A1))</code> で、手元のデータにスペースが潜んでいないかチェックしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-trim-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのLEN関数の使い方｜文字数を自動カウント</title>
		<link>https://mashukabu.com/spreadsheet-len-function/</link>
					<comments>https://mashukabu.com/spreadsheet-len-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:48:25 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[LENB関数]]></category>
		<category><![CDATA[LEN関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[文字数カウント]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4318</guid>

					<description><![CDATA[スプレッドシートのLEN関数で文字数をカウントする方法を解説。IF関数と組み合わせた文字数制限チェック、TRIM関数でのスペース検出、異常値の発見など実務活用例も紹介。LENB関数との違いもわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「このセルの文字数は何文字だろう？」と思ったことはありませんか？</p>



<p class="wp-block-paragraph">入力フォームの文字数制限をチェックしたい。データの中に異常に長い値が紛れていないか確認したい。でも1セルずつ手で数えるなんて、とても現実的じゃないですよね。</p>



<p class="wp-block-paragraph">そんなときに使うのが<strong>LEN関数</strong>です。セルの文字数を一瞬でカウントしてくれます。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのLEN関数の基本から実務の活用例まで紹介します。IF関数との組み合わせやLENB関数との違いもわかりますよ。</p>




  <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">LEN関数とは？スプレッドシートで文字数をカウントする関数</a><ol><li><a href="#toc2" tabindex="0">LEN関数の構文と引数</a></li></ol></li><li><a href="#toc3" tabindex="0">LEN関数の基本的な使い方</a></li><li><a href="#toc4" tabindex="0">実務で使えるLEN関数の活用例3選</a><ol><li><a href="#toc5" tabindex="0">活用例1：IF関数と組み合わせて文字数制限をチェック</a></li><li><a href="#toc6" tabindex="0">活用例2：データの異常値を検出する</a></li><li><a href="#toc7" tabindex="0">活用例3：TRIM関数と組み合わせてスペースの有無を確認する</a></li></ol></li><li><a href="#toc8" tabindex="0">LEN関数の注意点｜全角文字も1文字としてカウント</a></li><li><a href="#toc9" tabindex="0">LEN関数とLENB関数の違い｜文字数とバイト数の使い分け</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LEN関数とは？スプレッドシートで文字数をカウントする関数</span></h2>



<p class="wp-block-paragraph">LEN関数（読み方：レン関数）は、<strong>テキストの文字数を返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は英語の「length（長さ）」の略で、文字列の長さ（＝文字数）を測るイメージですね。ExcelとGoogleスプレッドシートの両方で同じように使えます。</p>



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



<pre class="wp-block-code"><code>=LEN(テキスト)</code></pre>



<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>テキスト</td><td>必須</td><td>文字数をカウントしたい文字列やセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はひとつだけ。とてもシンプルな関数です。</p>



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



<p class="wp-block-paragraph">実際にLEN関数を使ってみましょう。A列にいろいろなデータを入力したサンプルで確認します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>A列の値</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>A1</td><td>こんにちは</td><td><code>=LEN(A1)</code></td><td>5</td></tr><tr><td>A2</td><td>Hello</td><td><code>=LEN(A2)</code></td><td>5</td></tr><tr><td>A3</td><td>ABC123</td><td><code>=LEN(A3)</code></td><td>6</td></tr><tr><td>A4</td><td>（空白セル）</td><td><code>=LEN(A4)</code></td><td>0</td></tr><tr><td>A5</td><td>あ い う</td><td><code>=LEN(A5)</code></td><td>7</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_len-basic.png" alt="02 formula len basic" /></figure>



<p class="wp-block-paragraph">いくつかポイントがあります。</p>



<ul class="wp-block-list"><li><strong>全角文字も半角文字も1文字</strong>としてカウントします。「こんにちは」は5文字、「Hello」も5文字です</li><li><strong>スペースも1文字</strong>としてカウントします。A5の「　あ い う　」は、全角スペース2つ＋半角スペース2つ＋文字3つで合計7文字です</li><li><strong>空白セルは0</strong>を返します</li><li><strong>数値を入力したセル</strong>も、文字として数えます。「123」なら3です</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_len-basic.png" alt="03 result len basic" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LEN関数はスペースもカウントするので、TRIM関数と組み合わせると「余分なスペースが入っていないか」を確認できます。詳しくは後半の活用例で紹介しますね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">実務で使えるLEN関数の活用例3選</span></h2>



<p class="wp-block-paragraph">LEN関数は単体でも便利ですが、他の関数と組み合わせることで真価を発揮します。実務でよく使う3つのパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">活用例1：IF関数と組み合わせて文字数制限をチェック</span></h3>



<p class="wp-block-paragraph">入力フォームやSNS投稿の文字数制限を超えていないか、自動でチェックする方法です。</p>



<p class="wp-block-paragraph">たとえば、B列に「商品説明」が入っていて、50文字以内に収めたい場合を考えます。</p>



<pre class="wp-block-code"><code>=IF(LEN(B2)&gt;50, &quot;超過&quot;, &quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は、B2の文字数が50文字を超えたら「超過」、それ以内なら「OK」と表示します。</p>



<p class="wp-block-paragraph">もう少し詳しく、何文字オーバーかを表示するならこう書きます。</p>



<pre class="wp-block-code"><code>=IF(LEN(B2)&gt;50, LEN(B2)-50&amp;&quot;文字オーバー&quot;, &quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">この数式を使えば、申込フォームやアンケートの自由記述欄で文字数を管理できますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>X（旧Twitter）のポスト下書きにも使えます。ただし全角・半角どちらも1文字カウントなので、実際のX上の文字数とは差が出ることがあります。正確なカウントにはXの公式ツールをご利用ください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc6">活用例2：データの異常値を検出する</span></h3>



<p class="wp-block-paragraph">大量のデータを扱うとき、「文字数が極端に多い・少ないセル」を見つけたい場面があります。LEN関数と条件付き書式を組み合わせると、一目で異常値を発見できます。</p>



<p class="wp-block-paragraph">まずはLEN関数で各セルの文字数を計算します。</p>



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



<p class="wp-block-paragraph">これをC列全体に適用したら、次のような基準で異常値を判定できます。</p>



<pre class="wp-block-code"><code>=IF(OR(LEN(C2)&lt;3, LEN(C2)&gt;100), &quot;要確認&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">文字数が3文字未満か100文字超の場合に「要確認」と表示します。基準値はデータの内容に応じて変えてください。</p>



<p class="wp-block-paragraph">商品コードが「必ず8桁」のルールなら、こう書くこともできます。</p>



<pre class="wp-block-code"><code>=IF(LEN(D2)&lt;&gt;8, &quot;桁数エラー&quot;, &quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">手作業で数千件のデータを目視チェックするのは大変です。LEN関数で自動化すれば、入力ミスの発見がぐっと楽になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">活用例3：TRIM関数と組み合わせてスペースの有無を確認する</span></h3>



<p class="wp-block-paragraph">外部システムからコピペしたデータには、見えないスペースが紛れていることがあります。LEN関数とTRIM関数を組み合わせると、スペースの有無を数値で確認できます。</p>



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



<p class="wp-block-paragraph">この数式は「元の文字数」から「スペースを除いた文字数」を引いています。結果が0なら余分なスペースはなし。1以上ならスペースが紛れています。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列の値</th><th>LEN(A2)</th><th>LEN(TRIM(A2))</th><th>差分</th><th>判定</th></tr></thead><tbody><tr><td>東京都</td><td>3</td><td>3</td><td>0</td><td>スペースなし</td></tr><tr><td>東京都</td><td>4</td><td>3</td><td>1</td><td>スペースあり</td></tr><tr><td>東京 都</td><td>5</td><td>4</td><td>1</td><td>スペースあり</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPやCOUNTIFが「なぜか一致しない」ときの原因調査に役立ちます。詳しいスペーストラブルの対処法は<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数の使い方</a>の記事も参考にしてください。</p>



<h2 class="wp-block-heading"><span id="toc8">LEN関数の注意点｜全角文字も1文字としてカウント</span></h2>



<p class="wp-block-paragraph">LEN関数を使うときに、ひとつ押さえておきたいポイントがあります。</p>



<p class="wp-block-paragraph"><strong>全角文字も半角文字も、LEN関数では同じ「1文字」としてカウント</strong>されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>LEN関数の結果</th><th>バイト数（参考）</th></tr></thead><tbody><tr><td>A（半角）</td><td>1</td><td>1</td></tr><tr><td>A（全角）</td><td>1</td><td>2</td></tr><tr><td>あ</td><td>1</td><td>2</td></tr><tr><td>1（半角）</td><td>1</td><td>1</td></tr><tr><td>1（全角）</td><td>1</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">日常的な文字数カウントではこの仕様で問題ありません。「この文章は何文字か？」を知りたいなら、LEN関数で正確に把握できます。</p>



<p class="wp-block-paragraph">ただし、CSVファイルのフィールド長やデータベースのカラムサイズなど<strong>バイト数が重要な場面</strong>では、LEN関数だと正確に判定できません。そんなときはLENB関数を使います。</p>



<h2 class="wp-block-heading"><span id="toc9">LEN関数とLENB関数の違い｜文字数とバイト数の使い分け</span></h2>



<p class="wp-block-paragraph">LEN関数と似た関数に<strong>LENB関数</strong>があります。違いはカウントの単位です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>LEN関数</th><th>LENB関数</th></tr></thead><tbody><tr><td>カウント単位</td><td><strong>文字数</strong></td><td><strong>バイト数</strong></td></tr><tr><td>半角英数字</td><td>1</td><td>1</td></tr><tr><td>全角文字</td><td>1</td><td><strong>2</strong></td></tr><tr><td>全角スペース</td><td>1</td><td><strong>2</strong></td></tr><tr><td>読み方</td><td>レン</td><td>レンビー</td></tr><tr><td>語源</td><td>length（長さ）</td><td>length in bytes（バイト単位の長さ）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的な違いを見てみましょう。</p>



<pre class="wp-block-code"><code>=LEN(&quot;ABCあいう&quot;)    → 6（文字数）
=LENB(&quot;ABCあいう&quot;)   → 9（バイト数：半角3 + 全角3×2）</code></pre>



<p class="wp-block-paragraph">LENB関数が必要になるのは、次のような場面です。</p>



<ul class="wp-block-list"><li>CSVエクスポート時のフィールド幅制限</li><li>データベースへのインポート前のバイト数チェック</li><li>固定長ファイルの書式確認</li></ul>



<p class="wp-block-paragraph">通常の業務では<strong>LEN関数だけで十分</strong>です。「バイト数が問題になる場面」に遭遇したら、LENB関数の存在を思い出してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>全角文字だけの文字数を知りたい場合、<code>=LENB(A1)-LEN(A1)</code> で計算できます。LENB（バイト数）からLEN（文字数）を引くと、全角文字の数が求まります。</p></blockquote>



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



<p class="wp-block-paragraph">この記事では、スプレッドシートのLEN関数について解説しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>内容</th></tr></thead><tbody><tr><td>機能</td><td>テキストの文字数を返す</td></tr><tr><td>構文</td><td><code>=LEN(テキスト)</code></td></tr><tr><td>全角・半角の扱い</td><td>どちらも1文字</td></tr><tr><td>スペース</td><td>カウント対象</td></tr><tr><td>バイト数を調べたいとき</td><td>LENB関数を使う</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LEN関数は、他の関数と組み合わせることで活用の幅が広がります。</p>



<ul class="wp-block-list"><li><strong>IF関数</strong>と組み合わせて、文字数制限を超えたセルに警告を出す</li><li><strong>TRIM関数</strong>と組み合わせて、余分なスペースの有無を確認する</li><li><strong>条件式</strong>と組み合わせて、データの異常値（桁数エラー等）を検出する</li></ul>



<p class="wp-block-paragraph">文字数チェックを手作業で行っている方は、ぜひLEN関数を試してみてください。文字列操作の基本として、<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>・<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>・<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>もあわせて覚えておくと便利ですよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-len-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTRIM関数の使い方｜余分なスペースを一括削除する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-trim/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-trim/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 03 Aug 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[TRIM関数]]></category>
		<category><![CDATA[スペース除去]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[空白削除]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2479</guid>

					<description><![CDATA[ExcelのTRIM関数で文字列の余分なスペースを削除する方法を解説。前後の空白除去や連続スペースの圧縮、VLOOKUP前のデータ整形など実務例を紹介し、SUBSTITUTE・CLEANとの使い分けも整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">コピペしたデータの前後に余計なスペースが入っていて、VLOOKUPが一致しない。そんな経験はありませんか？ 目に見えないスペースは手作業で探すと大変ですし、見落としも起こりがちです。TRIM関数を使えば、文字列の余分なスペースをまとめて削除できます。この記事では基本の書き方から実務の活用パターンまで紹介します。</p>



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



<ul class="wp-block-list"><li>セルの前後についた余計なスペースを一括で削除したい</li><li>コピペやCSVインポート後のデータを整形したい</li><li>TRIM関数とSUBSTITUTE関数・CLEAN関数の違いを知りたい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">TRIM関数とは？</a></li><li><a href="#toc2" tabindex="0">TRIM関数の書き方（構文と引数）</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">TRIM関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">前後のスペースを削除する</a></li><li><a href="#toc7" tabindex="0">連続スペースを1つに圧縮する</a></li><li><a href="#toc8" tabindex="0">文字列を直接指定する</a></li></ol></li><li><a href="#toc9" tabindex="0">TRIM関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">VLOOKUP前のデータ整形</a></li><li><a href="#toc11" tabindex="0">CSVインポート後のクレンジング</a></li><li><a href="#toc12" tabindex="0">TRIM関数とSUBSTITUTE関数の合わせ技</a></li><li><a href="#toc13" tabindex="0">名前リストの姓名間スペース統一</a></li></ol></li><li><a href="#toc14" tabindex="0">TRIM関数で削除できないスペース・文字</a></li><li><a href="#toc15" tabindex="0">TRIM関数とCLEAN関数の違い</a></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">まとめ</a><ol><li><a href="#toc18" tabindex="0">関連記事</a></li><li><a href="#toc19" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">TRIM（トリム）関数は、文字列から余分な半角スペースを削除する関数です。英語の「trim」は「刈り込む・整える」という意味で、まさにデータを綺麗にするための関数です。</p>



<p class="wp-block-paragraph">TRIM関数は次の2つの処理を同時に行います。</p>



<ul class="wp-block-list"><li>文字列の<strong>先頭と末尾</strong>にあるスペースをすべて削除する</li><li>文字列の<strong>内部</strong>にある連続した半角スペースを<strong>1つ</strong>に圧縮する</li></ul>



<p class="wp-block-paragraph">たとえば「<code>   田中  太郎  </code>」という文字列にTRIM関数を使うと、「<code>田中 太郎</code>」になります。前後のスペースが消えて、名前の間の連続スペースも1つにまとまります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ワークシートのTRIM関数は半角スペース専用です。VBAにも同名のTrim関数がありますが、VBA版は前後のスペースだけを除去します。内部の連続スペースは圧縮しません。VBAの空白除去については<a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数</a>の記事を参照してください。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=TRIM(文字列)</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>余分なスペースを削除したいテキスト、またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は「文字列」の1つだけなので、とてもシンプルです。セル参照のほか、ダブルクォーテーションで囲んだ文字列を直接指定することもできます。</p>



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



<h3 class="wp-block-heading"><span id="toc6">前後のスペースを削除する</span></h3>



<p class="wp-block-paragraph">セルA1に「<code>  東京都新宿区 </code>」と前後にスペースが入っている場合です。</p>



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



<p class="wp-block-paragraph">結果は「<code>東京都新宿区</code>」になります。先頭と末尾のスペースがすべて消えます。</p>



<h3 class="wp-block-heading"><span id="toc7">連続スペースを1つに圧縮する</span></h3>



<p class="wp-block-paragraph">セルA1に「<code>田中  太郎</code>」と名前の間にスペースが2つ入っている場合です。</p>



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



<p class="wp-block-paragraph">結果は「<code>田中 太郎</code>」になります。内部の連続スペースが1つに圧縮されます。もちろん前後にもスペースがあれば同時に削除されます。</p>



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



<p class="wp-block-paragraph">セル参照ではなく、数式の中に文字列を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=TRIM(&quot;  Excel 関数   &quot;)</code></pre>



<p class="wp-block-paragraph">結果は「<code>Excel 関数</code>」です。前後のスペースが消え、内部の連続スペースが1つに圧縮されます。</p>



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



<h3 class="wp-block-heading"><span id="toc10">VLOOKUP前のデータ整形</span></h3>



<p class="wp-block-paragraph">外部システムから取り込んだデータには、見えないスペースが紛れ込んでいることがあります。このスペースが原因で<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>が「一致なし」になるケースは非常に多いです。</p>



<p class="wp-block-paragraph">検索値と検索範囲の両方にTRIM関数を適用して、スペースの影響を排除しましょう。</p>



<pre class="wp-block-code"><code>=VLOOKUP(TRIM(A2),B:C,2,FALSE)</code></pre>



<p class="wp-block-paragraph">VLOOKUP・INDEX/MATCHで結果がおかしいときは、まずTRIM関数を試してみてください。<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>で「見た目は同じなのに文字数が違う」かどうかを確認するのも有効です。</p>



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



<p class="wp-block-paragraph">この数式がFALSEなら、セルに余分なスペースが含まれている証拠です。</p>



<h3 class="wp-block-heading"><span id="toc11">CSVインポート後のクレンジング</span></h3>



<p class="wp-block-paragraph">CSVファイルをExcelに取り込むと、フィールドの前後にスペースが入ることがあります。データが大量にある場合は、作業列を使ってTRIM関数で一括整形するのが効率的です。</p>



<pre class="wp-block-code"><code>=TRIM(A2)</code></pre>



<p class="wp-block-paragraph">この数式を下方向にコピーして、整形後のデータを「値として貼り付け」で元の列に上書きすれば完了です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>CSVデータにはスペース以外にも改行コードなどの制御文字が混ざることがあります。その場合は<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>と組み合わせると確実です。<code>=TRIM(CLEAN(A2))</code> で制御文字の除去とスペース整形を同時に行えます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">TRIM関数とSUBSTITUTE関数の合わせ技</span></h3>



<p class="wp-block-paragraph">TRIM関数は半角スペースだけを処理します。全角スペースも含めて除去したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>との合わせ技が便利です。</p>



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



<p class="wp-block-paragraph">この数式はまずSUBSTITUTE関数で全角スペースを半角スペースに変換し、その後TRIM関数で余分な半角スペースを整理します。全角・半角が混在したデータを一発で綺麗にできるので、覚えておくと重宝します。</p>



<p class="wp-block-paragraph">すべてのスペースを完全に消したい場合はSUBSTITUTE関数だけで対応できます。</p>



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



<p class="wp-block-paragraph">「単語間のスペースは1つ残したい」ならTRIM関数、「スペースを全部消したい」ならSUBSTITUTE関数と使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc13">名前リストの姓名間スペース統一</span></h3>



<p class="wp-block-paragraph">社員名簿や顧客リストで「田中  太郎」「佐藤 花子」のように姓名間のスペースがバラバラなことがあります。TRIM関数を使えば、連続スペースが1つに統一されます。</p>



<pre class="wp-block-code"><code>=TRIM(A2)</code></pre>



<p class="wp-block-paragraph">結果はすべて「姓（スペース1つ）名」の形に揃います。データの見た目が統一されるだけでなく、検索や集計の精度も上がります。</p>



<h2 class="wp-block-heading"><span id="toc14">TRIM関数で削除できないスペース・文字</span></h2>



<p class="wp-block-paragraph">TRIM関数は万能ではありません。処理できるのは半角スペース（文字コード32）だけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字の種類</th><th>文字コード</th><th>TRIM関数で削除</th><th>対処法</th></tr></thead><tbody><tr><td>半角スペース</td><td>32</td><td>できる</td><td>TRIM関数でOK</td></tr><tr><td>全角スペース</td><td>12288</td><td><strong>できない</strong></td><td>SUBSTITUTE関数で半角に変換してからTRIM</td></tr><tr><td>改行（LF）</td><td>10</td><td><strong>できない</strong></td><td>CLEAN関数、またはSUBSTITUTE(A1,CHAR(10),&#8221;&#8221;)</td></tr><tr><td>タブ</td><td>9</td><td><strong>できない</strong></td><td>CLEAN関数、またはSUBSTITUTE(A1,CHAR(9),&#8221;&#8221;)</td></tr><tr><td>ノーブレークスペース（NBSP）</td><td>160</td><td><strong>できない</strong></td><td>SUBSTITUTE(A1,CHAR(160),&#8221;&#8221;)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Webページからコピーしたデータには、<a href="https://mashukabu.com/about-nbsp/">ノーブレークスペース</a>（CHAR(160)）が含まれていることがあります。見た目は通常のスペースと同じなのにTRIM関数で消えない場合は、この文字を疑ってみてください。</p>



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



<p class="wp-block-paragraph">CHAR(160)を半角スペースに変換してからTRIM関数に渡すことで、ノーブレークスペースも除去できます。</p>



<h2 class="wp-block-heading"><span id="toc15">TRIM関数とCLEAN関数の違い</span></h2>



<p class="wp-block-paragraph">TRIM関数と<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>は、どちらも「不要な文字を消す」関数ですが、削除対象が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>TRIM関数</th><th>CLEAN関数</th></tr></thead><tbody><tr><td>削除対象</td><td><strong>余分な半角スペース</strong></td><td><strong>印刷できない制御文字</strong>（文字コード0〜31）</td></tr><tr><td>スペースの処理</td><td>前後削除 + 内部を1つに圧縮</td><td>スペースは削除しない</td></tr><tr><td>改行の削除</td><td>できない</td><td>できる（改行は文字コード10）</td></tr><tr><td>タブの削除</td><td>できない</td><td>できる（タブは文字コード9）</td></tr><tr><td>使う場面</td><td>スペースの整理</td><td>制御文字の除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">両方を同時に行いたい場合は、組み合わせて使うのがベストです。</p>



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



<p class="wp-block-paragraph">CLEAN関数で制御文字を除去し、TRIM関数でスペースを整理する順番で使います。CSVや外部データの取り込み後には、このセットで処理しておくと安心です。</p>



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



<p class="wp-block-paragraph">TRIM関数自体はエラーが出にくい関数ですが、意図した結果にならないケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>スペースが消えない</td><td>全角スペースが含まれている</td><td>SUBSTITUTE関数で半角に変換してからTRIMを適用（上述の合わせ技を参照）</td></tr><tr><td>スペースが消えない</td><td>ノーブレークスペース（CHAR(160)）が含まれている</td><td><code>=TRIM(SUBSTITUTE(A1,CHAR(160)," "))</code> で対応</td></tr><tr><td>#VALUE!エラー</td><td>引数が指定されていない</td><td>文字列の引数は必須です。空にせずセル参照または文字列を指定してください</td></tr><tr><td>VLOOKUPが一致しない</td><td>TRIM後もまだ不一致</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で全角英数字を半角に統一してみてください</td></tr><tr><td>数値として認識されない</td><td>TRIM後の値が文字列のまま</td><td>TRIM関数の結果は文字列です。数値として使いたい場合は<code>=TRIM(A1)*1</code>や<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</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>TRIM関数でスペースが消えないときは、<code>=CODE(LEFT(A1,1))</code> で先頭の文字コードを確認してみましょう。32（半角スペース）以外の値が返ってきたら、その文字コードに対応したSUBSTITUTE関数で処理できます。</p></blockquote>



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



<p class="wp-block-paragraph">TRIM関数は「文字列の余分な半角スペースを削除する」ための関数です。</p>



<ul class="wp-block-list"><li>前後のスペースをすべて削除し、内部の連続スペースを1つに圧縮する</li><li>引数は「文字列」の1つだけでシンプル</li><li>VLOOKUP前のデータ整形やCSVクレンジングに効果的</li><li>全角スペースには<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>、制御文字には<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>と組み合わせる</li><li><code>=TRIM(CLEAN(A1))</code> で制御文字とスペースを同時に処理できる</li></ul>



<p class="wp-block-paragraph">データの整形はVLOOKUPや集計の精度に直結します。外部データを取り込んだらまずTRIM関数で整えるクセをつけておくと、トラブルを未然に防げます。ぜひ活用してみてください。</p>



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



<ul class="wp-block-list"><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-asc/">ASC関数の使い方</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-function-howto-use-vlookup/">VLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc19">関数一覧</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/excel-function-howto-use-trim/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-6" checked><label class="toc-title" for="toc-checkbox-6">目次</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></ol></li><li><a href="#toc41" tabindex="0">GoogleスプレッドシートでNBSPを削除する方法</a></li><li><a href="#toc42" tabindex="0">ピボットテーブルでNBSPが引き起こす集計エラーと対策</a><ol><li><a href="#toc43" tabindex="0">起きやすい3つの症状</a></li><li><a href="#toc44" tabindex="0">よくある発生パターン</a></li><li><a href="#toc45" tabindex="0">対策：ピボット作成前にクレンジングする</a></li></ol></li><li><a href="#toc46" tabindex="0">Excel 365のREGEXREPLACE関数でNBSPを削除する</a><ol><li><a href="#toc47" tabindex="0">NBSPを正規表現で削除する数式</a></li><li><a href="#toc48" tabindex="0">NBSPと半角スペースをまとめて整形する</a></li><li><a href="#toc49" tabindex="0">SUBSTITUTE式との使い分け</a></li></ol></li><li><a href="#toc50" tabindex="0">ノーブレークスペース以外の「見えない空白」の見分けと削除</a><ol><li><a href="#toc51" tabindex="0">代表的な見えない空白文字の一覧</a></li><li><a href="#toc52" tabindex="0">UNICHAR関数で指定して削除する</a></li><li><a href="#toc53" tabindex="0">Microsoft 365なら正規表現で一括処理する</a></li></ol></li><li><a href="#toc54" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc55" tabindex="0">NBSPを最初から混入させない3つの予防策</a><ol><li><a href="#toc56" tabindex="0">予防策1: テキストエディタ経由でペーストする</a></li><li><a href="#toc57" tabindex="0">予防策2: 値のみ貼り付け（Ctrl+Shift+V / Alt+E+S+V）を習慣にする</a></li><li><a href="#toc58" tabindex="0">予防策3: Power Queryを取り込み窓口にする</a></li><li><a href="#toc59" tabindex="0">Q. TeamsやSlackからコピペするとNBSPが入りますか？</a></li><li><a href="#toc60" tabindex="0">Q. EXACT関数でFALSEなのに目視では同じ文字列です。なぜですか？</a></li><li><a href="#toc61" tabindex="0">Q. XLOOKUPでも#N/Aが出ます。VLOOKUPと同じ対処法ですか？</a></li><li><a href="#toc62" tabindex="0">Q. Ctrl+Vで貼り付けるたびにNBSPが入ります。防ぐ方法はありますか？</a></li><li><a href="#toc63" tabindex="0">Q. CODE関数で160と出ました。これは必ずNBSPですか？</a></li><li><a href="#toc64" tabindex="0">Q. SUBSTITUTE+CHAR(160)を入れたのに、VLOOKUPの不一致が直りません。</a></li><li><a href="#toc65" tabindex="0">Q. スマートフォンのメモアプリからコピーするとNBSPが入りますか？</a></li><li><a href="#toc66" tabindex="0">Q. Power QueryのText.TrimでNBSPも消えますか？</a></li><li><a href="#toc67" tabindex="0">Q. 「検索と置換」で削除したのに、まだ空白があります。</a></li><li><a href="#toc68" tabindex="0">Q. NBSP以外にも「見えない空白」はありますか？</a></li><li><a href="#toc69" tabindex="0">Q. Mac版ExcelでもAlt+0160は使えますか？</a></li></ol></li><li><a href="#toc70" tabindex="0">まとめ</a><ol><li><a href="#toc71" tabindex="0">関連記事</a></li><li><a href="#toc72" 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>



<h2 class="wp-block-heading"><span id="toc41">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>



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



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



<h3 class="wp-block-heading"><span id="toc43">起きやすい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="toc44">よくある発生パターン</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="toc45">対策：ピボット作成前にクレンジングする</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="toc46">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="toc47">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="toc48">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="toc49">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="toc50">ノーブレークスペース以外の「見えない空白」の見分けと削除</span></h2>



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



<h3 class="wp-block-heading"><span id="toc51">代表的な見えない空白文字の一覧</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="toc52">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="toc53">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="toc54">よくある質問（FAQ）</span></h2>



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



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



<h3 class="wp-block-heading"><span id="toc56">予防策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="toc57">予防策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="toc58">予防策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>



<h3 class="wp-block-heading"><span id="toc59">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="toc60">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="toc61">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="toc62">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="toc63">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="toc64">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="toc65">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="toc66">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="toc67">Q. 「検索と置換」で削除したのに、まだ空白があります。</span></h3>



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



<h3 class="wp-block-heading"><span id="toc68">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="toc69">Q. Mac版ExcelでもAlt+0160は使えますか？</span></h3>



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



<h2 class="wp-block-heading"><span id="toc70">まとめ</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="toc71">関連記事</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="toc72">関数一覧</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>
