<?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>SUBSTITUTE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/substitute%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 08 Jun 2026 15:51:25 +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>SUBSTITUTE関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Excelのセル内改行を一括削除する3つの方法｜CLEAN・SUBSTITUTE・検索置換の使い分け</title>
		<link>https://mashukabu.com/excel-delete-line-breaks/</link>
					<comments>https://mashukabu.com/excel-delete-line-breaks/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:51:25 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CLEAN関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[仕事効率化]]></category>
		<category><![CDATA[改行]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7863</guid>

					<description><![CDATA[ExcelでAlt+Enterや外部データの改行を一括削除する方法を解説。検索置換（Ctrl+J）・SUBSTITUTE関数・CLEAN関数の3つを状況別に使い分けるコツと、CLEANで消えないケースへの対処法も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Webサイトや基幹システムからコピペしたデータをExcelに貼り付けたとき、セル内に不要な改行が入ってレイアウトが崩れる経験はありませんか。VLOOKUPの検索条件にしたい列に改行が混じっていて、いくら数式を見直してもヒットしない、というのもよくあるトラブルです。</p>



<p class="wp-block-paragraph">セル内の改行は「見えない文字」なので、手作業で消そうとすると1セルずつダブルクリックしてBackSpaceを押す羽目になり、件数が多いと現実的ではありません。</p>



<p class="wp-block-paragraph">この記事では、Excelのセル内改行を一括で削除する3つの方法を、状況別の使い分けまで含めて解説します。「Ctrl+J」を使った検索と置換、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-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">セル内の改行はなぜ問題になるのか</a></li><li><a href="#toc2" tabindex="0">方法1: 検索と置換（Ctrl+H + Ctrl+J）で一括削除する</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">方法2: SUBSTITUTE関数で改行を削除する（元データを残したいとき）</a><ol><li><a href="#toc6" tabindex="0">基本の使い方</a></li><li><a href="#toc7" tabindex="0">古いMacファイルに対応する場合</a></li></ol></li><li><a href="#toc8" tabindex="0">方法3: CLEAN関数で制御文字ごとまとめて消す</a><ol><li><a href="#toc9" tabindex="0">CLEAN+TRIMの組み合わせ</a></li></ol></li><li><a href="#toc10" tabindex="0">3つの方法の使い分け早見表</a></li><li><a href="#toc11" tabindex="0">CLEANで消えないケースへの対処法</a></li><li><a href="#toc12" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">セル内の改行はなぜ問題になるのか</span></h2>



<p class="wp-block-paragraph">Excelのセル内改行は、入力中に「Alt+Enter」を押すことで挿入される改行コードです。実体はCHAR(10)、つまりラインフィード（LF）と呼ばれる制御文字です。画面上は単なる改行に見えますが、Excelの内部では1文字としてカウントされます。</p>



<p class="wp-block-paragraph">この見えない1文字が悪さをするのは、主に次のような場面です。</p>



<ul class="wp-block-list"><li>VLOOKUPやXLOOKUPで検索値が一致しない（末尾に改行が混入）</li><li>文字列連結したときに意図しない位置で改行が入る</li><li>CSV書き出し時に行がずれて出力される</li><li>フィルターで「同じ値のはず」が別グループに分かれる</li></ul>



<p class="wp-block-paragraph">WindowsとMacの現行版Excel（Excel 2016以降）では、どちらもセル内改行はCHAR(10)に統一されています。ただし古いMacファイルやUNIX系システムのデータには、CHAR(13)（キャリッジリターン）が混ざっていることもあるので注意が必要です。</p>



<p class="wp-block-paragraph">文字コードの基本については<a href="https://mashukabu.com/excel-function-howto-use-char/">ExcelのCHAR関数の使い方</a>で詳しく解説しています。</p>



<p class="wp-block-paragraph">それでは、3つの一括削除方法を順番に見ていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">方法1: 検索と置換（Ctrl+H + Ctrl+J）で一括削除する</span></h2>



<p class="wp-block-paragraph">一番手軽で、覚えてしまえば数秒で終わる方法が「検索と置換」を使うやり方です。Excelの検索ダイアログでは、Ctrl+Jを押すと改行コード（CHAR(10)）を検索文字列として入力できます。</p>



<p class="wp-block-paragraph">元のデータをそのまま書き換えたいときに最適で、関数も新しい列も不要です。</p>



<h3 class="wp-block-heading"><span id="toc3">手順</span></h3>



<p class="wp-block-paragraph">操作はとてもシンプルです。次の順番で進めてください。</p>



<ol class="wp-block-list"><li>改行を削除したい範囲を選択する（列全体でもOK）</li><li>Ctrl+H を押して「検索と置換」ダイアログを開く</li><li>「検索する文字列」の欄をクリックして、Ctrl+J を押す（見た目は何も入らないが内部に改行コードが入る）</li><li>「置換後の文字列」は空欄のままにする</li><li>「すべて置換」をクリックする</li></ol>



<p class="wp-block-paragraph">Ctrl+Jを押した直後、検索欄には何も表示されません。「本当に入力されたのか？」と不安になりますが、ちゃんと改行コードが入っています。心配な場合は検索欄をクリックしてから矢印キーを押すと、カーソルが微妙に動いて入力済みとわかります。</p>



<h3 class="wp-block-heading"><span id="toc4">改行をスペースに変えたい場合</span></h3>



<p class="wp-block-paragraph">改行を完全に消すのではなく、半角スペースに置き換えたい場合もあります。たとえば「東京都千代田区(改行)永田町1-1-1」という住所を「東京都千代田区 永田町1-1-1」のように一行に整えるケースです。</p>



<p class="wp-block-paragraph">その場合は手順4の「置換後の文字列」欄に半角スペースを1文字入力してから「すべて置換」を押します。</p>



<pre class="wp-block-code"><code>検索する文字列: Ctrl+J（改行コード）
置換後の文字列: （半角スペース1文字）</code></pre>



<p class="wp-block-paragraph">注意点として、検索欄に一度Ctrl+Jを押すと、Excelを閉じるまでその状態が記憶されます。次の検索でうまく動かないと感じたら、検索欄をクリックしてBackSpaceで一度クリアしてから再入力してください。</p>



<h2 class="wp-block-heading"><span id="toc5">方法2: SUBSTITUTE関数で改行を削除する（元データを残したいとき）</span></h2>



<p class="wp-block-paragraph">元データはそのままにして、別の列に「改行を削除したバージョン」を作りたい場合は、SUBSTITUTE関数を使います。検証ログや原本を残しつつクリーニング結果を確認したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc6">基本の使い方</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数は「文字列の中の特定の文字を別の文字に置き換える」関数です。改行コードはCHAR(10)で指定します。</p>



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



<p class="wp-block-paragraph">これでA1セルの改行がすべて削除された文字列が返ります。第3引数を空文字列（&#8221;&#8221;）にしているので、改行が「何もない」に置き換わります。結果として削除されたように見える、という仕組みです。</p>



<p class="wp-block-paragraph">改行を半角スペースに変換したい場合は、第3引数を変更します。</p>



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



<p class="wp-block-paragraph">連続した改行をまとめて1つのスペースにしたい場合は、TRIM関数と組み合わせると余分な空白も整理されます。</p>



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



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



<h3 class="wp-block-heading"><span id="toc7">古いMacファイルに対応する場合</span></h3>



<p class="wp-block-paragraph">前述のとおり、古いMacや一部のシステムから持ち込んだデータにはCHAR(13)（キャリッジリターン）が含まれていることがあります。CHAR(10)だけを消してもうまくクリーニングできないときは、SUBSTITUTEを入れ子にして両方を処理しましょう。</p>



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



<p class="wp-block-paragraph">内側のSUBSTITUTEでCHAR(10)を消し、外側のSUBSTITUTEでCHAR(13)を消す流れです。WindowsのCRLF（CHAR(13)+CHAR(10)）形式の改行もこれで両方処理できます。</p>



<h2 class="wp-block-heading"><span id="toc8">方法3: CLEAN関数で制御文字ごとまとめて消す</span></h2>



<p class="wp-block-paragraph">外部システムから取得したデータには、改行以外にもタブ文字や非表示の制御文字が紛れ込んでいることがあります。何が混ざっているか分からないけれど、とにかく「印刷できない文字」をまとめて消したい、というときに使うのがCLEAN関数です。</p>



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



<p class="wp-block-paragraph">CLEAN関数は、ASCII文字コードの0〜31番（印刷不可能な制御文字）を一括で削除します。CHAR(10)もCHAR(13)もこの範囲に含まれるので、改行は当然削除されます。</p>



<p class="wp-block-paragraph">CLEAN関数の挙動や対応範囲については<a href="https://mashukabu.com/excel-function-howto-use-clean/">ExcelのCLEAN関数の使い方</a>で詳しく解説しています。</p>



<p class="wp-block-paragraph">注意点として、CLEAN関数は「削除」しかできず、スペースへの変換はできません。「改行をスペースに置き換えたい」という用途にはSUBSTITUTE関数を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc9">CLEAN+TRIMの組み合わせ</span></h3>



<p class="wp-block-paragraph">実務でCLEAN関数を使うときは、TRIM関数と組み合わせるのが定番です。</p>



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



<p class="wp-block-paragraph">CLEANで制御文字を消したあと、TRIMが前後の余分なスペースを除去します。文字列中の連続スペース（2つ以上）も1つに整えてくれます。</p>



<p class="wp-block-paragraph">ExcelにインポートしたCSVデータの全列クリーニングなど、「とりあえずキレイにしたい」場面で最も汎用的な数式です。迷ったらこれを最初に試すと、たいていのデータが整います。</p>



<h2 class="wp-block-heading"><span id="toc10">3つの方法の使い分け早見表</span></h2>



<p class="wp-block-paragraph">ここまで紹介した3つの方法を、状況別にまとめると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>推奨される方法</th><th>理由</th></tr></thead><tbody><tr><td>元データを書き換えてOK</td><td>検索と置換（Ctrl+H + Ctrl+J）</td><td>関数不要、最も手早い</td></tr><tr><td>元データを残したい</td><td>SUBSTITUTE または CLEAN</td><td>別列に結果を出せる</td></tr><tr><td>改行だけを正確に削除したい</td><td>SUBSTITUTE</td><td>改行コードだけを狙い撃ち</td></tr><tr><td>改行を半角スペースに変換したい</td><td>SUBSTITUTE</td><td>第3引数で柔軟に変換可能</td></tr><tr><td>複数の制御文字をまとめて除去</td><td>CLEAN</td><td>タブや非表示文字も一括処理</td></tr><tr><td>インポートデータ全体クリーニング</td><td>TRIM(CLEAN())</td><td>スペース整理も同時に行える</td></tr><tr><td>古いMacのCHAR(13)が混在</td><td>SUBSTITUTE入れ子</td><td>CHAR(10)とCHAR(13)を両方処理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったときの判断基準はシンプルです。「元データを残す必要があるかどうか」「改行以外の制御文字も気になるか」の2点で決めれば大丈夫です。</p>



<p class="wp-block-paragraph">その場限りの作業なら検索と置換、定期的に更新されるデータなら関数を使って自動処理にしておくと、運用がぐっと楽になります。</p>



<h2 class="wp-block-heading"><span id="toc11">CLEANで消えないケースへの対処法</span></h2>



<p class="wp-block-paragraph">「CLEANもSUBSTITUTEもCHAR(10)もCHAR(13)も試したのに、なぜか改行のような空白が消えない」という状況に遭遇することがあります。</p>



<p class="wp-block-paragraph">これはたいてい、CHAR(160)（ノーブレークスペース、NBSP）が原因です。HTMLの「&nbsp;」由来の文字で、Webからコピペしたデータによく紛れ込みます。見た目はただのスペースですが、通常のスペース（CHAR(32)）とは別の文字コードなので、TRIMでもCLEANでも除去できません。</p>



<p class="wp-block-paragraph">まず、本当にCHAR(160)が原因かを確認してみましょう。次の数式で先頭文字のコードを調べられます。</p>



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



<p class="wp-block-paragraph">これが160を返したら、原因はノーブレークスペースで確定です。MID関数の第2引数（開始位置）を変えれば、文字列の途中もチェックできます。</p>



<p class="wp-block-paragraph">CHAR(160)を削除するには、CLEAN関数の結果にさらにSUBSTITUTEをかけるのが定番です。</p>



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



<p class="wp-block-paragraph">CHAR(160)を半角スペースに変換したい場合は、第3引数をスペースにします。</p>



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



<p class="wp-block-paragraph">TRIMとも組み合わせれば、ほぼあらゆる「見えない文字」を整理した、完全にきれいな文字列が手に入ります。</p>



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



<p class="wp-block-paragraph">データクリーニングの最終形として覚えておくと、Webデータや海外システムからのインポートでハマることがなくなります。</p>



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



<p class="wp-block-paragraph">Excelのセル内改行を一括削除する3つの方法と、それぞれの使い分けを紹介してきました。最後にポイントを整理しておきます。</p>



<ul class="wp-block-list"><li>改行の正体はCHAR(10)。Alt+Enterで入力される見えない1文字</li><li>元データを書き換えてOKなら「検索と置換（Ctrl+H → Ctrl+J）」が最速</li><li>元データを残したいなら「SUBSTITUTE(A1,CHAR(10),&#8221;&#8221;)」を使う</li><li>制御文字をまとめて消したいなら「CLEAN(A1)」、定番は「TRIM(CLEAN(A1))」</li><li>それでも消えないときはCHAR(160)を疑い、CODE関数で確認</li><li>古いMacデータ対策にはCHAR(13)も同時に処理する</li></ul>



<p class="wp-block-paragraph">データクリーニングは地味な作業ですが、ここで時間を取られると後工程のすべてが遅れます。今回の3つの方法をパターンとして覚えておけば、「見えない改行」に振り回されることはなくなるはずです。</p>



<p class="wp-block-paragraph">普段の作業で改行混入に困ったときは、まずTRIM(CLEAN())を試して、それでもダメならCHAR(160)を疑う、という順番でチェックしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-delete-line-breaks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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">スプレッドシートの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-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">スプレッドシートの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>スプレッドシートのREGEXREPLACE関数の使い方｜正規表現で文字列を置換</title>
		<link>https://mashukabu.com/spreadsheet-regexreplace-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexreplace-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:01 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4775</guid>

					<description><![CDATA[スプレッドシートのREGEXREPLACE関数は、正規表現で文字列を一括置換できる関数です。電話番号のハイフン除去、不要な空白の一括削除、データの書式統一など実務パターンや、SUBSTITUTEとの違い、REGEXMATCH・REGEXEXTRACTとの使い分けまで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「電話番号のハイフンをまとめて消したい」「余分なスペースを一括で削除したい」と思ったことはありませんか？ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>なら特定の文字を置換できます。でも、「数字だけ消す」「2つ以上の連続スペースを1つにする」といったパターン指定の置換には対応できません。</p>



<p class="wp-block-paragraph">REGEXREPLACE関数を使えば、<strong>正規表現のパターンに一致する部分をまとめて置換</strong>できます。この記事ではREGEXREPLACE関数の基本から実務パターンまで丁寧に解説しますね。</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">REGEXREPLACE関数とは？正規表現で文字列を置換する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXREPLACE関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">後方参照（キャプチャグループの再利用）</a></li></ol></li><li><a href="#toc6" tabindex="0">REGEXREPLACE関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">特定の文字を削除する</a></li><li><a href="#toc8" tabindex="0">数字だけを削除する</a></li><li><a href="#toc9" tabindex="0">特定の文字を別の文字に置換する</a></li><li><a href="#toc10" tabindex="0">大文字・小文字を区別せずに置換する</a></li></ol></li><li><a href="#toc11" tabindex="0">実務で使えるパターン集</a><ol><li><a href="#toc12" tabindex="0">電話番号のハイフンを一括削除する</a></li><li><a href="#toc13" tabindex="0">余分なスペースを1つにまとめる</a></li><li><a href="#toc14" tabindex="0">数字以外をすべて削除する</a></li><li><a href="#toc15" tabindex="0">8桁の数字を日付形式に変換する</a></li><li><a href="#toc16" tabindex="0">HTMLタグを一括除去する</a></li><li><a href="#toc17" tabindex="0">ARRAYFORMULA関数と組み合わせて一括置換する</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">数値セルで#VALUE!エラーになるケース</a></li><li><a href="#toc20" tabindex="0">正規表現の特殊文字をエスケープし忘れるケース</a></li></ol></li><li><a href="#toc21" tabindex="0">SUBSTITUTE関数との違い</a><ol><li><a href="#toc22" tabindex="0">同じ処理を両方で書いてみる</a></li><li><a href="#toc23" tabindex="0">比較表</a></li><li><a href="#toc24" tabindex="0">どちらを使うべき？</a></li></ol></li><li><a href="#toc25" tabindex="0">REGEXMATCH・REGEXEXTRACTとの使い分け</a><ol><li><a href="#toc26" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc27" tabindex="0">REGEXREPLACE関数に関するよくある質問</a><ol><li><a href="#toc28" tabindex="0">複数のパターンをまとめて置換できますか？</a></li><li><a href="#toc29" tabindex="0">1番目の一致だけを置換する方法はありますか？</a></li><li><a href="#toc30" tabindex="0">日本語や全角文字にも正規表現は使えますか？</a></li><li><a href="#toc31" tabindex="0">置換結果が思ったとおりにならないときは？</a></li></ol></li><li><a href="#toc32" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">REGEXREPLACE関数とは？正規表現で文字列を置換する関数</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数は、セルの文字列から<strong>正規表現パターンに一致する部分を別の文字列に置換</strong>して返す関数です。読み方は「レジェックスリプレイス」。「Regex（正規表現）」+「Replace（置換）」が語源です。</p>



<p class="wp-block-paragraph">たとえば「03-1234-5678」に対して <code>-</code> のパターンで空文字に置換すると「0312345678」が返ります。ハイフンをまとめて除去できるわけです。</p>



<p class="wp-block-paragraph">REGEXREPLACE関数は<strong>Googleスプレッドシート独自の関数</strong>で、Excelには存在しません。Excelで同じことをするにはVBAが必要です。スプレッドシートなら関数だけで正規表現の置換ができるのが大きな強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">「正規表現」って何？</span></h3>



<p class="wp-block-paragraph">正規表現とは、文字列のパターンを記号で表すルールです。たとえば <code>[0-9]+</code> は「1文字以上の数字」を意味します。最初はとっつきにくく感じるかもしれません。でも、よく使うパターンは決まっています。この記事で紹介するパターンをコピーして使えばOKです。正規表現の記号一覧は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめていますので、そちらも参考にしてください。</p>



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



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



<pre class="wp-block-code"><code>=REGEXREPLACE(テキスト, 正規表現, 置換文字列)</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><tr><td>正規表現</td><td>必須</td><td>置換したいパターンの正規表現</td></tr><tr><td>置換文字列</td><td>必須</td><td>一致部分を置き換える文字列（空文字 <code>""</code> で削除）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は<strong>置換後の文字列</strong>です。パターンに一致する部分がなければ元の文字列がそのまま返ります。エラーにはならないのがREGEXEXTRACTとの違いです。</p>



<h3 class="wp-block-heading"><span id="toc5">後方参照（キャプチャグループの再利用）</span></h3>



<p class="wp-block-paragraph">正規表現の括弧 <code>()</code> でキャプチャした部分を、置換文字列の中で <code>$1</code>、<code>$2</code> のように参照できます。これを「後方参照」と呼びます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;20240315&quot;, &quot;(d{4})(d{2})(d{2})&quot;, &quot;$1/$2/$3&quot;)
  → &quot;2024/03/15&quot;（8桁の数字を日付形式に変換）</code></pre>



<p class="wp-block-paragraph"><code>$1</code> は1番目の括弧、<code>$2</code> は2番目の括弧に一致した部分です。この仕組みを使えば「削除」だけでなく「並べ替え」や「書式変換」もできますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc7">特定の文字を削除する</span></h3>



<p class="wp-block-paragraph">セルA2に「03-1234-5678」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;-&quot;, &quot;&quot;)   → &quot;0312345678&quot;（ハイフンを削除）</code></pre>



<p class="wp-block-paragraph">第3引数を空文字 <code>""</code> にすると、一致した部分が削除されます。REGEXREPLACE関数はパターンに一致する部分を<strong>すべて</strong>置換します。ハイフンが2つあっても、両方とも一度に消えますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">数字だけを削除する</span></h3>



<p class="wp-block-paragraph">セルA2に「ABC-123-DEF」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[0-9]&quot;, &quot;&quot;)   → &quot;ABC--DEF&quot;（数字だけ削除）
=REGEXREPLACE(A2, &quot;[0-9-]&quot;, &quot;&quot;)  → &quot;ABCDEF&quot;（数字とハイフンを削除）</code></pre>



<p class="wp-block-paragraph"><code>[0-9]</code> は「数字1文字」を意味します。角括弧の中にハイフンも入れれば、まとめて削除できます。</p>



<h3 class="wp-block-heading"><span id="toc9">特定の文字を別の文字に置換する</span></h3>



<p class="wp-block-paragraph">セルA2に「2024/03/15」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;/&quot;, &quot;-&quot;)   → &quot;2024-03-15&quot;（スラッシュをハイフンに変換）</code></pre>



<p class="wp-block-paragraph">単純な文字置換なら<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>でもできます。REGEXREPLACE関数の真価は、次のようなパターン置換にあります。</p>



<h3 class="wp-block-heading"><span id="toc10">大文字・小文字を区別せずに置換する</span></h3>



<p class="wp-block-paragraph">REGEXREPLACE関数はデフォルトで<strong>大文字と小文字を区別</strong>します。区別せずに置換したいときは <code>(?i)</code> を先頭に付けます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;Hello World&quot;, &quot;(?i)hello&quot;, &quot;Hi&quot;)
  → &quot;Hi World&quot;（大文字小文字を無視して置換）</code></pre>



<p class="wp-block-paragraph"><code>(?i)</code> は「case-insensitive（大文字小文字を無視）」のフラグです。英語データを扱うときに便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc11">実務で使えるパターン集</span></h2>



<h3 class="wp-block-heading"><span id="toc12">電話番号のハイフンを一括削除する</span></h3>



<p class="wp-block-paragraph">電話番号からハイフンやスペースを取り除いて数字だけにします。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>0312345678</td><td>ハイフンを除去</td></tr><tr><td>090 1234 5678</td><td>09012345678</td><td>スペースを除去</td></tr><tr><td>090-1234-5678</td><td>09012345678</td><td>ハイフンを除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>s</code> は「空白文字（スペース・タブなど）」を意味します。<code>[-s]</code> でハイフンと空白をまとめて指定できます。</p>



<h3 class="wp-block-heading"><span id="toc13">余分なスペースを1つにまとめる</span></h3>



<p class="wp-block-paragraph">データの中に連続スペースが混在しているとき、すべて1つのスペースに統一します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;s{2,}&quot;, &quot; &quot;)</code></pre>



<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>東京都 渋谷区</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>s{2,}</code> は「空白文字が2つ以上連続」を意味します。これを1つのスペースに置換するわけです。<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>では前後の空白しか除去できません。文中の連続スペースを整理したいならREGEXREPLACE関数が便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">数字以外をすべて削除する</span></h3>



<p class="wp-block-paragraph">住所や備考欄から数字だけを取り出したいときに使います。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[^0-9]&quot;, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>〒100-0001</td><td>1000001</td></tr><tr><td>部屋番号: 301号室</td><td>301</td></tr><tr><td>TEL: 03-1234-5678</td><td>0312345678</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>[^0-9]</code> は「数字以外の文字」を意味します。<code>^</code> が角括弧の先頭にあると「否定」になります。</p>



<h3 class="wp-block-heading"><span id="toc15">8桁の数字を日付形式に変換する</span></h3>



<p class="wp-block-paragraph">「20240315」のような8桁の数字を「2024/03/15」に変換します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;(d{4})(d{2})(d{2})&quot;, &quot;$1/$2/$3&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>20240315</td><td>2024/03/15</td></tr><tr><td>20231225</td><td>2023/12/25</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">後方参照 <code>$1/$2/$3</code> を使って、キャプチャした年・月・日をスラッシュ区切りに並べ替えています。</p>



<h3 class="wp-block-heading"><span id="toc16">HTMLタグを一括除去する</span></h3>



<p class="wp-block-paragraph">Webからコピーしたデータに混じったHTMLタグを取り除きます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;&lt;[^&gt;]+&gt;&quot;, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td><code><b>重要</b>なお知らせ</code></td><td>重要なお知らせ</td></tr><tr><td><code><a href="...">リンク</a></code></td><td>リンク</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code><[^>]+></code> は「<code><</code> で始まり <code>></code> で終わるタグ」を意味します。Webからのデータ貼り付けで重宝しますね。</p>



<h3 class="wp-block-heading"><span id="toc17">ARRAYFORMULA関数と組み合わせて一括置換する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、複数行を一括で処理できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(REGEXREPLACE(A2:A100, &quot;-&quot;, &quot;&quot;))</code></pre>



<p class="wp-block-paragraph">この数式をB2セルに1つ入れるだけで、A2からA100までのデータからハイフンを一括削除できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>テキストが数値</td><td><code>=REGEXREPLACE(TEXT(A2,"0"), "パターン", "置換")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", "", REGEXREPLACE(A2, "パターン", "置換"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr><tr><td>置換されない</td><td>パターンの大文字小文字が不一致</td><td><code>(?i)</code> を先頭に付けて大文字小文字を無視</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">数値セルで#VALUE!エラーになるケース</span></h3>



<p class="wp-block-paragraph">REGEXREPLACE関数の第1引数は<strong>文字列</strong>が必要です。セルに数値が入っている場合は#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;d&quot;, &quot;X&quot;)           → A2が数値だと #VALUE!
=REGEXREPLACE(TEXT(A2, &quot;0&quot;), &quot;d&quot;, &quot;X&quot;) → TEXT関数で文字列に変換すればOK</code></pre>



<p class="wp-block-paragraph">数値を置換したい場合は、<a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>で文字列に変換してから渡しましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">正規表現の特殊文字をエスケープし忘れるケース</span></h3>



<p class="wp-block-paragraph">ピリオド <code>.</code>、括弧 <code>()</code>、プラス <code>+</code> などは正規表現の特殊文字です。これらの文字そのものを置換したい場合は <code></code> でエスケープしてください。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;.&quot;, &quot;X&quot;)     → すべての文字がXに置換される
=REGEXREPLACE(A2, &quot;.&quot;, &quot;X&quot;)    → ピリオドだけがXに置換される</code></pre>



<h2 class="wp-block-heading"><span id="toc21">SUBSTITUTE関数との違い</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>でも文字列の置換はできます。REGEXREPLACE関数との違いを整理しましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">同じ処理を両方で書いてみる</span></h3>



<p class="wp-block-paragraph">電話番号「03-1234-5678」からハイフンを除去する場合です。</p>



<p class="wp-block-paragraph"><strong>SUBSTITUTE関数の場合:</strong></p>



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



<p class="wp-block-paragraph"><strong>REGEXREPLACE関数の場合:</strong></p>



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



<p class="wp-block-paragraph">この例では同じ結果になります。では「数字だけを削除する」場合はどうでしょう。</p>



<p class="wp-block-paragraph"><strong>SUBSTITUTE関数の場合:</strong></p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
  SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
  A2,&quot;0&quot;,&quot;&quot;),&quot;1&quot;,&quot;&quot;),&quot;2&quot;,&quot;&quot;),&quot;3&quot;,&quot;&quot;),&quot;4&quot;,&quot;&quot;),&quot;5&quot;,&quot;&quot;),&quot;6&quot;,&quot;&quot;),&quot;7&quot;,&quot;&quot;),&quot;8&quot;,&quot;&quot;),&quot;9&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>REGEXREPLACE関数の場合:</strong></p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[0-9]&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">パターン置換ではREGEXREPLACE関数が圧倒的にシンプルですね。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXREPLACE</th><th>SUBSTITUTE</th></tr></thead><tbody><tr><td>正規表現</td><td>使える</td><td>使えない</td></tr><tr><td>パターン置換</td><td>得意（1つの数式で完結）</td><td>苦手（ネストが必要）</td></tr><tr><td>大文字小文字の区別</td><td>区別する（<code>(?i)</code> で無視可）</td><td>区別する</td></tr><tr><td>一致しない場合</td><td>元の文字列を返す</td><td>元の文字列を返す</td></tr><tr><td>置換回数の指定</td><td>できない（すべて置換）</td><td>第4引数で指定可能</td></tr><tr><td>Excel互換</td><td>なし（Sheets独自）</td><td>あり</td></tr><tr><td>学習コスト</td><td>正規表現の知識が必要</td><td>低い</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>固定の文字を置換</strong>（ハイフンを消す、「株式会社」を「(株)」に変える）→ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で十分</li><li><strong>パターンで置換</strong>（数字をすべて消す、連続スペースを詰める）→ <strong>REGEXREPLACE関数</strong>一択</li><li><strong>N番目だけ置換</strong>（2つ目のハイフンだけ消す）→ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>の第4引数</li><li><strong>Excelとの互換性が必要</strong> → SUBSTITUTE関数を使う</li></ul>



<p class="wp-block-paragraph">固定文字の置換ならSUBSTITUTE、パターン置換ならREGEXREPLACEと覚えておけば迷いません。</p>



<h2 class="wp-block-heading"><span id="toc25">REGEXMATCH・REGEXEXTRACTとの使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには正規表現を使う関数が3つあります。目的で使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>戻り値</th><th>使用例</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a></td><td>パターンに<strong>一致するか判定</strong></td><td>TRUE / FALSE</td><td>入力チェック、条件分岐</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexextract-function/">REGEXEXTRACT</a></td><td>パターンに一致する部分を<strong>抽出</strong></td><td>一致した文字列</td><td>ドメイン抽出、番号取り出し</td></tr><tr><td>REGEXREPLACE</td><td>パターンに一致する部分を<strong>置換</strong></td><td>置換後の文字列</td><td>ハイフン除去、書式統一</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">具体例で比較</span></h3>



<p class="wp-block-paragraph">セルA2に「注文番号: ORD-2024-0123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;ORD-d{4}-d{4}&quot;)
  → TRUE（注文番号パターンに一致するか判定）

=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0123&quot;（注文番号部分を抽出）

=REGEXREPLACE(A2, &quot;ORD-&quot;, &quot;&quot;)
  → &quot;注文番号: 2024-0123&quot;（「ORD-」を除去）</code></pre>



<p class="wp-block-paragraph"><strong>判定</strong>は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a>、<strong>抽出</strong>は<a href="https://mashukabu.com/spreadsheet-regexextract-function/">REGEXEXTRACT</a>、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。これでREGEX3関数シリーズはすべて揃いました。</p>



<h2 class="wp-block-heading"><span id="toc27">REGEXREPLACE関数に関するよくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc28">複数のパターンをまとめて置換できますか？</span></h3>



<p class="wp-block-paragraph">1つのREGEXREPLACE関数で複数パターンを同時に置換することはできません。ただし、<code>|</code>（OR記号）を使えば「AまたはB」の置換は可能です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[.,;]&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">これで <code>.</code>・<code>,</code>・<code>;</code> をまとめて削除できます。パターンごとに異なる置換文字列を指定したい場合はネストを使います。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(REGEXREPLACE(A2, &quot;株式会社&quot;, &quot;(株)&quot;), &quot;有限会社&quot;, &quot;(有)&quot;)</code></pre>



<p class="wp-block-paragraph">内側から順に処理されます。3段以上のネストは数式が複雑になるため、<a href="https://mashukabu.com/spreadsheet-lambda-function/">LAMBDA関数</a>を使って再帰的に処理する方法や、列を分けて段階処理する方法を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc29">1番目の一致だけを置換する方法はありますか？</span></h3>



<p class="wp-block-paragraph">REGEXREPLACE関数はパターンに一致する部分を<strong>すべて</strong>置換します。「N番目だけ置換する」機能はありません。</p>



<p class="wp-block-paragraph">特定の出現位置だけを置換したい場合は、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>の第4引数を使うのが最もシンプルです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;-&quot;, &quot;&quot;, 1)   → 1番目のハイフンだけ削除
=SUBSTITUTE(A2, &quot;-&quot;, &quot;&quot;, 2)   → 2番目のハイフンだけ削除</code></pre>



<p class="wp-block-paragraph">このケースはSUBSTITUTE関数を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc30">日本語や全角文字にも正規表現は使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。REGEXREPLACE関数はUnicodeに対応しているため、日本語・全角文字・ひらがな・カタカナをパターンに含められます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[ぁ-ん]&quot;, &quot;&quot;)    → ひらがなを削除
=REGEXREPLACE(A2, &quot;[ァ-ン]&quot;, &quot;&quot;)    → カタカナを削除
=REGEXREPLACE(A2, &quot;[！-～]&quot;, &quot;&quot;)    → 全角記号・全角英数字を削除</code></pre>



<p class="wp-block-paragraph">ただし <code>d</code>（数字）は半角数字にしか対応しません。全角数字（１２３）を対象にするには <code>[０-９]</code> のようにUnicode範囲で明示的に指定するか、<a href="https://mashukabu.com/spreadsheet-asc-function/">ASC関数</a>で全角を半角に変換してからREGEXREPLACEを適用する方法もあります。</p>



<h3 class="wp-block-heading"><span id="toc31">置換結果が思ったとおりにならないときは？</span></h3>



<p class="wp-block-paragraph">以下の順番で確認してください。</p>



<ol class="wp-block-list"><li><strong><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数</a>でパターンが一致するか確認する</strong></li></ol>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;パターン&quot;)   → TRUEなら一致、FALSEなら不一致</code></pre>



<p class="wp-block-paragraph">FALSEが返るなら正規表現パターン自体が間違っています。</p>



<ol class="wp-block-list"><li><strong>特殊文字のエスケープ漏れを確認する</strong></li></ol>



<p class="wp-block-paragraph"><code>.</code>・<code>(</code>・<code>)</code>・<code>+</code>・<code>*</code>・<code>?</code>・<code>[</code>・<code>]</code> は正規表現の特殊文字です。文字そのものを指定したい場合は <code>.</code>・<code>(</code>・<code>)</code> のようにバックスラッシュを付けてください。</p>



<ol class="wp-block-list"><li><strong>大文字小文字を確認する</strong></li></ol>



<p class="wp-block-paragraph">デフォルトは大文字小文字を区別します。区別しない場合は <code>(?i)</code> を先頭に追加します。</p>



<ol class="wp-block-list"><li><strong>セルのデータ型を確認する</strong></li></ol>



<p class="wp-block-paragraph">数値セルでは#VALUE!エラーになります。<code>TEXT(A2,"0")</code> で文字列に変換してから試してください。</p>



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



<p class="wp-block-paragraph">REGEXREPLACE関数は、正規表現でパターンに一致する部分を置換できるスプレッドシート独自の関数です。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXREPLACE(テキスト, 正規表現, 置換文字列)</code> で一致部分を置換</li><li><strong>後方参照</strong>: 括弧 <code>()</code> でキャプチャした部分を <code>$1</code> <code>$2</code> で再利用できる</li><li><strong>実務活用</strong>: ハイフン除去・連続スペース整理・数字以外の削除・HTMLタグ除去に最適</li><li><strong>使い分け</strong>: 固定文字の置換はSUBSTITUTE、パターン置換はREGEXREPLACE</li><li><strong>REGEX3関数</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li></ul>



<p class="wp-block-paragraph">SUBSTITUTE関数ではカバーしきれないパターン置換が必要なとき、ぜひ活用してみてください。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめています。そちらも合わせてチェックしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexreplace-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREPLACE関数の使い方｜位置指定で文字列を置換する基本と実務テンプレ</title>
		<link>https://mashukabu.com/spreadsheet-replace-function/</link>
					<comments>https://mashukabu.com/spreadsheet-replace-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 10:41:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4386</guid>

					<description><![CDATA[スプレッドシートのREPLACE関数の使い方を基本から徹底解説。位置指定で文字列を置換する構文・実務テンプレ（市外局番差替・年度更新・伏せ字・ドメイン置換）、SUBSTITUTE/REGEXREPLACEとの違い、FIND関数との組み合わせ応用、ARRAYFORMULA連携、よくあるエラー対処までこの1記事で完結します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「3文字目から2文字だけ置き換えたい」と思ったことはありませんか。商品コードの一部だけ変更したい、電話番号の市外局番だけ差し替えたい、個人情報を一部マスクしたい。こうした場面で活躍するのが REPLACE関数 です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>は「何という文字を置き換えるか」を指定する関数ですが、REPLACE関数は「何文字目から何文字分を置き換えるか」を指定します。同じ置換系でもアプローチが正反対なので、使い分けができると業務効率がぐっと上がります。</p>



<p class="wp-block-paragraph">この記事ではスプレッドシートのREPLACE関数について、基本構文から実務テンプレ、<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>との組み合わせ応用、SUBSTITUTE・REGEXREPLACE・REPLACEBとの使い分け、エラー対処まで丁寧に解説します。</p>




  <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">スプレッドシートのREPLACE関数とは？位置指定で文字列を置換する関数</a><ol><li><a href="#toc2" tabindex="0">「位置で置換」が必要になる業務シーン</a></li><li><a href="#toc3" tabindex="0">REPLACE関数が向いていないケース</a></li></ol></li><li><a href="#toc4" tabindex="0">REPLACE関数の書き方（構文と引数）</a></li><li><a href="#toc5" tabindex="0">REPLACE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字数を0にすると「挿入」になる</a></li><li><a href="#toc7" tabindex="0">開始位置以降をすべて置換する</a></li><li><a href="#toc8" tabindex="0">結果は常に文字列型になる</a></li></ol></li><li><a href="#toc9" tabindex="0">REPLACE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 電話番号の市外局番を一括変更する</a></li><li><a href="#toc11" tabindex="0">パターン2: 管理番号の年度部分を一括更新する</a></li><li><a href="#toc12" tabindex="0">パターン3: 個人情報の伏せ字処理（マスキング）</a></li><li><a href="#toc13" tabindex="0">パターン4: 商品コードのプレフィックス変更</a></li><li><a href="#toc14" tabindex="0">パターン5: メールアドレスのユーザー名マスク</a></li><li><a href="#toc15" tabindex="0">実務での使用シーン早見表</a></li></ol></li><li><a href="#toc16" tabindex="0">FIND関数と組み合わせて動的に位置を指定する</a><ol><li><a href="#toc17" tabindex="0">メールアドレスのドメイン部分を置き換える</a></li><li><a href="#toc18" tabindex="0">区切り文字の前半だけを差し替える</a></li><li><a href="#toc19" tabindex="0">メールアドレスのユーザー名をマスクする</a></li><li><a href="#toc20" tabindex="0">FIND関数との組み合わせで注意する点</a></li></ol></li><li><a href="#toc21" tabindex="0">ARRAYFORMULAやネストでREPLACE関数を一気に適用する</a><ol><li><a href="#toc22" tabindex="0">ARRAYFORMULAで列全体に一気に適用する</a></li><li><a href="#toc23" tabindex="0">ネスト（入れ子）で複数箇所を同時置換する</a></li><li><a href="#toc24" tabindex="0">複数箇所の置換はREGEXREPLACEのほうが楽な場合もある</a></li></ol></li><li><a href="#toc25" tabindex="0">REPLACE関数とSUBSTITUTE・REGEXREPLACE・REPLACEBの使い分け</a><ol><li><a href="#toc26" tabindex="0">REPLACE vs SUBSTITUTE</a></li><li><a href="#toc27" tabindex="0">REPLACE vs REGEXREPLACE</a></li><li><a href="#toc28" tabindex="0">REPLACE vs REPLACEB</a></li><li><a href="#toc29" tabindex="0">使い分けフローチャート</a></li></ol></li><li><a href="#toc30" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc31" tabindex="0">#VALUE!エラーが出る</a></li><li><a href="#toc32" tabindex="0">文字数に負の数を指定した場合もエラー</a></li><li><a href="#toc33" tabindex="0">開始位置がテキスト長を超えている場合</a></li><li><a href="#toc34" tabindex="0">空セルを渡した場合</a></li><li><a href="#toc35" tabindex="0">エラー一覧</a></li></ol></li><li><a href="#toc36" tabindex="0">よくある質問</a><ol><li><a href="#toc37" tabindex="0">REPLACE関数とSUBSTITUTE関数はどちらを使うべきですか？</a></li><li><a href="#toc38" tabindex="0">REPLACE関数で複数箇所を一度に置換できますか？</a></li><li><a href="#toc39" tabindex="0">開始位置にテキストの文字数を超える数値を指定したらエラーになりますか？</a></li><li><a href="#toc40" tabindex="0">列全体に一気に適用したい場合はどう書きますか？</a></li><li><a href="#toc41" tabindex="0">ExcelのREPLACE関数とGoogleスプレッドシートのREPLACE関数は同じですか？</a></li><li><a href="#toc42" tabindex="0">文字を削除せずに挿入だけしたい場合はどう書きますか？</a></li><li><a href="#toc43" tabindex="0">REPLACEの結果が文字列になってしまい計算に使えません</a></li><li><a href="#toc44" tabindex="0">大文字小文字を区別した置換はできますか？</a></li></ol></li><li><a href="#toc45" tabindex="0">まとめ</a><ol><li><a href="#toc46" tabindex="0">次に読みたい関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのREPLACE関数とは？位置指定で文字列を置換する関数</span></h2>



<p class="wp-block-paragraph">REPLACE関数は、文字列の中の <strong>指定した位置から指定した文字数分を別の文字に置き換える</strong> 関数です。読み方は「リプレース」。英語の Replace（置き換える）がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">たとえば「ABCDE」の2文字目から3文字分を「XY」に置き換えると「AXYE」になります。位置と長さで置換範囲を決めるので、置き換えたい文字の内容を知らなくても使えるのが最大の特徴です。</p>



<h3 class="wp-block-heading"><span id="toc2">「位置で置換」が必要になる業務シーン</span></h3>



<p class="wp-block-paragraph">実務で位置指定の置換が必要になるのは、データに「固定フォーマット」があるときです。</p>



<ul class="wp-block-list"><li>電話番号の市外局番（先頭2〜3桁）</li><li>管理番号の年度プレフィックス（先頭4桁）</li><li>商品コードのカテゴリ部分（先頭3桁）</li><li>携帯番号の中央4桁（マスキング対象）</li><li>社員番号の所属コード（特定の位置）</li></ul>



<p class="wp-block-paragraph">これらは「内容で検索する」よりも「位置で指定する」ほうが直感的かつ確実です。SUBSTITUTEで「03を06に」と書くと、電話番号以外のセル内の「03」まで置換してしまう事故が起こり得ますが、REPLACEなら位置で指定するので副作用がありません。</p>



<h3 class="wp-block-heading"><span id="toc3">REPLACE関数が向いていないケース</span></h3>



<p class="wp-block-paragraph">逆に、データに固定フォーマットがなく、置換対象がデータごとに違う場所にある場合はREPLACEには向きません。たとえば「メールアドレスからすべての半角スペースを削除したい」のような用途は、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>や<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>のほうが適しています。</p>



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



<p class="wp-block-paragraph">REPLACE関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=REPLACE(テキスト, 開始位置, 文字数, 新しいテキスト)</code></pre>



<p class="wp-block-paragraph">引数は4つあり、すべて必須です。</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>文字列</td><td>置換対象のセルまたは文字列</td></tr><tr><td>開始位置</td><td>必須</td><td>整数</td><td>置換を始める位置（1から数える）</td></tr><tr><td>文字数</td><td>必須</td><td>整数（0以上）</td><td>置換する文字の数</td></tr><tr><td>新しいテキスト</td><td>必須</td><td>文字列</td><td>置換後の文字列</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここで覚えておきたいポイントは3つあります。</p>



<ol class="wp-block-list"><li><strong>開始位置は1始まり</strong>（0や負の数を指定すると <code>#VALUE!</code> エラー）</li><li><strong>文字数は0でもOK</strong>（0なら何も削除せず挿入として機能する）</li><li><strong>すべての引数が必須</strong>（<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>とは違って省略不可）</li></ol>



<p class="wp-block-paragraph">プログラミング言語の文字列操作は0始まりが多いですが、スプレッドシートの文字列関数は<a href="https://mashukabu.com/spreadsheet-len-function/">LEN</a>も<a href="https://mashukabu.com/spreadsheet-mid-function/">MID</a>も<a href="https://mashukabu.com/spreadsheet-find-function/">FIND</a>もすべて1始まりです。慣れるまでは「先頭文字 = 1」と意識して数えてください。</p>



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



<p class="wp-block-paragraph">セルA2に「ABCDEFG」が入っているとします。3文字目から2文字分を「XX」に置き換えてみましょう。</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>=REPLACE(A2, 3, 2, &quot;XX&quot;)  → 「ABXXEFG」</code></pre>



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



<p class="wp-block-paragraph">3文字目の「C」と4文字目の「D」が「XX」に置き換わりました。開始位置は1始まりなので、A → 1、B → 2、C → 3 と数えています。</p>



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



<h3 class="wp-block-heading"><span id="toc6">文字数を0にすると「挿入」になる</span></h3>



<p class="wp-block-paragraph">文字数に0を指定すると、元の文字を1文字も削除せずに新しいテキストを挿入できます。これはREPLACE関数の隠れた便利機能です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 3, 0, &quot;-&quot;)  → 「AB-CDEFG」</code></pre>



<p class="wp-block-paragraph">3文字目の「C」の前にハイフンが挿入されました。先頭に追加したい場合は開始位置を1にします。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 0, &quot;★&quot;)  → 「★ABCDEFG」</code></pre>



<p class="wp-block-paragraph">「セルの内容を消さずに何かを差し込みたい」ときは、わざわざ文字列連結（&#038;）を組み合わせなくてもREPLACE一発で書けます。</p>



<h3 class="wp-block-heading"><span id="toc7">開始位置以降をすべて置換する</span></h3>



<p class="wp-block-paragraph">文字数を大きめに指定すると、開始位置から末尾までを置き換えられます。文字数が残りの文字数を超えてもエラーにはなりません。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 4, 100, &quot;XYZ&quot;)  → 「ABCXYZ」</code></pre>



<p class="wp-block-paragraph">4文字目以降の「DEFG」（4文字）が「XYZ」に置き換わりました。残りが4文字なのに文字数を100にしても問題なく動きます。「この位置から後ろは全部変えたい」ときに、いちいち残り文字数を計算しなくていいテクニックです。</p>



<h3 class="wp-block-heading"><span id="toc8">結果は常に文字列型になる</span></h3>



<p class="wp-block-paragraph">REPLACE関数の戻り値は数値や日付ではなく、常に「文字列型」です。たとえば「2024」（数値）の「20」を「20」に置き換えても、結果は数値の2024ではなく文字列の &#8220;2024&#8221; になります。</p>



<pre class="wp-block-code"><code>=REPLACE(2024, 1, 2, &quot;20&quot;)  → &quot;2024&quot;（文字列）</code></pre>



<p class="wp-block-paragraph">集計や日付計算で使う場合は、後段で <a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a> や <a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a> を組み合わせて型変換してください。</p>



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



<p class="wp-block-paragraph">ここからは実務で頻出するパターンを順に紹介します。コピペで使えるよう、数式と動作例を並べて掲載します。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 電話番号の市外局番を一括変更する</span></h3>



<p class="wp-block-paragraph">拠点移転で全顧客の電話番号の市外局番を変える、というシナリオです。A2に「03-1234-5678」が入っています。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 2, &quot;06&quot;)  → 「06-1234-5678」</code></pre>



<p class="wp-block-paragraph">1文字目から2文字分（「03」）を「06」に置き換えました。市外局番の桁数が決まっているので、位置指定のREPLACEがぴったりです。</p>



<p class="wp-block-paragraph">SUBSTITUTEで <code>=SUBSTITUTE(A2, "03", "06")</code> と書くと、たまたま電話番号の中に「03」が含まれる場合（例: 「03-0312-1234」）まで置換してしまうリスクがあります。REPLACEなら開始位置が固定なので、こうした副作用が起きません。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_replace-phone.png" alt="04 result replace phone" /></figure>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 管理番号の年度部分を一括更新する</span></h3>



<p class="wp-block-paragraph">「2024-A001」のような「年度-連番」フォーマットの管理番号を翌年度に更新するケースです。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 4, &quot;2025&quot;)  → 「2025-A001」</code></pre>



<p class="wp-block-paragraph">先頭4文字の「2024」を「2025」に置き換えました。連番部分はそのままなので、年度切り替え時の一括更新が数式1つで完結します。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 個人情報の伏せ字処理（マスキング）</span></h3>



<p class="wp-block-paragraph">名前や電話番号の一部を「***」で隠す伏せ字処理にもREPLACE関数は役立ちます。A2に「09012345678」（携帯番号）が入っているとします。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 4, 4, &quot;****&quot;)  → 「090****5678」</code></pre>



<p class="wp-block-paragraph">4文字目から4文字分を「****」に置き換えました。先頭3桁と末尾4桁は残しつつ、中間をマスクできます。個人情報を含む一覧を社外配布する前のサニタイズ処理として定番です。</p>



<p class="wp-block-paragraph">名前の伏せ字にも使えます。A2に「山田太郎」が入っている場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 2, 1, &quot;○&quot;)  → 「山○太郎」</code></pre>



<p class="wp-block-paragraph">2文字目の「田」を「○」に置き換えて、苗字の一部を伏せました。プライバシー配慮が必要な公開資料で使えます。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: 商品コードのプレフィックス変更</span></h3>



<p class="wp-block-paragraph">「ABC-1234」のような「カテゴリプレフィックス-連番」形式の商品コードで、プレフィックスだけを変更したい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 3, &quot;XYZ&quot;)  → 「XYZ-1234」</code></pre>



<p class="wp-block-paragraph">先頭3文字を新カテゴリコードに差し替えました。ハイフン以降の連番はそのまま保持されます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: メールアドレスのユーザー名マスク</span></h3>



<p class="wp-block-paragraph">メールアドレスの「@」より前のユーザー名部分を伏せたいケースです。ただしユーザー名の長さはデータごとに違うので、ここはFIND関数と組み合わせます（詳しくは次のセクション）。</p>



<h3 class="wp-block-heading"><span id="toc15">実務での使用シーン早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>業務シーン</th><th>数式テンプレ</th><th>用途</th></tr></thead><tbody><tr><td>市外局番変更</td><td><code>=REPLACE(A2,1,2,"06")</code></td><td>拠点移転対応</td></tr><tr><td>年度更新</td><td><code>=REPLACE(A2,1,4,"2025")</code></td><td>年度切り替え</td></tr><tr><td>携帯番号マスク</td><td><code>=REPLACE(A2,4,4,"****")</code></td><td>個人情報配慮</td></tr><tr><td>名前伏せ字</td><td><code>=REPLACE(A2,2,1,"○")</code></td><td>プライバシー保護</td></tr><tr><td>商品コード変更</td><td><code>=REPLACE(A2,1,3,"XYZ")</code></td><td>カテゴリ再編</td></tr><tr><td>先頭への挿入</td><td><code>=REPLACE(A2,1,0,"PRE-")</code></td><td>プレフィックス追加</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">FIND関数と組み合わせて動的に位置を指定する</span></h2>



<p class="wp-block-paragraph">ここまでの例は、置き換える位置が「先頭から何文字目」と決まっているケースでした。しかし実務では、データによって位置が変わることもよくあります。</p>



<p class="wp-block-paragraph">そんなときは<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>で位置を動的に取得し、REPLACEに渡します。</p>



<h3 class="wp-block-heading"><span id="toc17">メールアドレスのドメイン部分を置き換える</span></h3>



<p class="wp-block-paragraph">A2に「user@old-domain.com」が入っています。「@」より後ろを新しいドメインに差し替えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, FIND(&quot;@&quot;, A2), LEN(A2) - FIND(&quot;@&quot;, A2) + 1, &quot;@new-domain.com&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「user@new-domain.com」です。少し複雑に見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li><code>FIND("@", A2)</code> → 「@」の位置（5）を取得</li><li><code>LEN(A2) - FIND("@", A2) + 1</code> → 「@」以降の文字数（16）を計算</li><li>REPLACEで「5文字目から16文字分」を新ドメインに置換</li></ol>



<p class="wp-block-paragraph">FIND関数が「@」の位置を自動で調べてくれるので、ユーザー名の長さがバラバラのデータ（user、yamada、a など）でも正しく動作します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_replace-find-email.png" alt="05 result replace find email" /></figure>



<h3 class="wp-block-heading"><span id="toc18">区切り文字の前半だけを差し替える</span></h3>



<p class="wp-block-paragraph">A2に「ABC-12345」が入っていて、ハイフンより前の部分を「XYZ」に変えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, FIND(&quot;-&quot;, A2) - 1, &quot;XYZ&quot;)  → 「XYZ-12345」</code></pre>



<p class="wp-block-paragraph"><code>FIND("-", A2) - 1</code> でハイフンの手前までの文字数を計算し、先頭からその分だけ置き換えています。<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>で切り出して文字列連結（&#038;）で結合する方法もありますが、REPLACEなら1つの数式で完結します。</p>



<h3 class="wp-block-heading"><span id="toc19">メールアドレスのユーザー名をマスクする</span></h3>



<p class="wp-block-paragraph">A2 に「yamada@example.com」が入っているとします。「@」より前のユーザー名部分を、文字数と同じ数の「*」で伏せたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, FIND(&quot;@&quot;, A2) - 1, REPT(&quot;*&quot;, FIND(&quot;@&quot;, A2) - 1))</code></pre>



<p class="wp-block-paragraph">結果は「<strong><em></strong></em>@example.com」になります。REPT関数でユーザー名と同じ長さの「*」を生成し、それで丸ごと置き換えています。ドメイン部分は残るので「どのドメインのアドレスか」は確認しつつ、個人特定はできない状態にできます。</p>



<h3 class="wp-block-heading"><span id="toc20">FIND関数との組み合わせで注意する点</span></h3>



<ul class="wp-block-list"><li>検索文字が見つからないと FIND は <code>#VALUE!</code> エラーを返します。<code>IFERROR</code> でラップすると安全です</li><li>同じ文字が複数あるときは FIND は最初の位置を返します。N番目を取得したい場合は <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a> と組み合わせるテクニックがあります</li><li>大文字小文字を無視して位置を取りたい場合は <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> を使います</li></ul>



<h2 class="wp-block-heading"><span id="toc21">ARRAYFORMULAやネストでREPLACE関数を一気に適用する</span></h2>



<p class="wp-block-paragraph">REPLACE関数は1回の呼び出しで「1つのテキスト」「1か所」の置換しかできません。しかし、Googleスプレッドシート特有の機能を組み合わせると、列全体への一括適用や複数箇所の同時置換も実現できます。</p>



<h3 class="wp-block-heading"><span id="toc22">ARRAYFORMULAで列全体に一気に適用する</span></h3>



<p class="wp-block-paragraph">A2:A100 の電話番号データすべてに市外局番変更を適用したい場合、1セル1セルに数式をコピーする必要はありません。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(REPLACE(A2:A100, 1, 2, &quot;06&quot;))</code></pre>



<p class="wp-block-paragraph">たった1つの数式で100行分の置換結果がスピル（自動拡張）されます。元データが増減してもメンテナンスがラクなので、運用するスプレッドシートに組み込むときに便利です。</p>



<p class="wp-block-paragraph">ARRAYFORMULAについては <a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数の詳しい使い方</a> を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc23">ネスト（入れ子）で複数箇所を同時置換する</span></h3>



<p class="wp-block-paragraph">1つのセルの中で複数箇所を置換したい場合は、REPLACEを入れ子にします。たとえば「ABCDEFG」の1〜2文字目を「XX」に、5〜6文字目を「YY」に変えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(REPLACE(A2, 5, 2, &quot;YY&quot;), 1, 2, &quot;XX&quot;)  → 「XXCDYYG」</code></pre>



<p class="wp-block-paragraph">ポイントは <strong>後ろの位置から先に置換すること</strong> です。先に前の位置を置換すると、置換結果によって後ろの位置がずれてしまう可能性があります（文字数が変わる置換の場合）。</p>



<p class="wp-block-paragraph">文字数が同じ置換（例: 2文字→2文字）であれば順序は問いませんが、安全のために「後ろから前へ」を癖にしておくと事故が減ります。</p>



<h3 class="wp-block-heading"><span id="toc24">複数箇所の置換はREGEXREPLACEのほうが楽な場合もある</span></h3>



<p class="wp-block-paragraph">3か所以上を一気に置換したい場合、REPLACEのネストは可読性が落ちます。正規表現が使える場合は <a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a> のほうが見やすい数式になります。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;AB|EF&quot;, &quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">ただし正規表現の学習コストはあるので、用途と頻度に応じて選んでください。</p>



<h2 class="wp-block-heading"><span id="toc25">REPLACE関数とSUBSTITUTE・REGEXREPLACE・REPLACEBの使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには文字列置換系の関数がいくつかあります。用途を正しく選ぶことで、シンプルで保守しやすい数式が書けます。</p>



<h3 class="wp-block-heading"><span id="toc26">REPLACE vs SUBSTITUTE</span></h3>



<p class="wp-block-paragraph">一番よく比較されるのが REPLACE と <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE</a> です。ひとことで言えば、<strong>SUBSTITUTEは「文字」で指定、REPLACEは「位置」で指定</strong> です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>SUBSTITUTE</th></tr></thead><tbody><tr><td>指定方法</td><td>位置と文字数</td><td>検索文字列</td></tr><tr><td>引数の数</td><td>4つ（すべて必須）</td><td>3〜4つ（4番目は省略可）</td></tr><tr><td>複数箇所の置換</td><td>1か所のみ（ネスト要）</td><td>標準で全置換</td></tr><tr><td>大文字/小文字</td><td>区別しない</td><td>区別する</td></tr><tr><td>挿入動作</td><td>文字数=0で可能</td><td>不可</td></tr><tr><td>向く場面</td><td>固定フォーマット・伏せ字</td><td>検索置換・全置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断基準はシンプルです。</p>



<ul class="wp-block-list"><li>置き換えたい文字の <strong>「内容」がわかっている</strong> → SUBSTITUTE</li><li>置き換えたい文字の <strong>「位置」がわかっている</strong> → REPLACE</li></ul>



<p class="wp-block-paragraph">「ハイフンを全部消したい」ならSUBSTITUTEです。「3文字目から2文字を変えたい」ならREPLACEです。実務で使う頻度はSUBSTITUTEのほうが圧倒的に高いですが、REPLACEは固定フォーマットの一部更新や伏せ字処理など、限定的だが代替の効かない場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc27">REPLACE vs REGEXREPLACE</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>は正規表現パターンで置換する関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>REGEXREPLACE</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>位置が固定</td><td>パターンマッチが必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「数字3桁の後にハイフンが来る場所」のような複雑な条件で置換したい場合は REGEXREPLACE が圧倒的に強いです。一方、位置が決まっていて単純な置換ならREPLACEが直感的で速いです。</p>



<h3 class="wp-block-heading"><span id="toc28">REPLACE vs REPLACEB</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a>は「バイト数」で位置と長さを指定する関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>REPLACEB</th></tr></thead><tbody><tr><td>単位</td><td>文字数</td><td>バイト数</td></tr><tr><td>全角の扱い</td><td>1文字 = 1</td><td>1文字 = 2</td></tr><tr><td>半角の扱い</td><td>1文字 = 1</td><td>1文字 = 1</td></tr><tr><td>向く場面</td><td>一般的な処理</td><td>レガシーシステム連携</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「全角文字を2バイトとして扱うシステムにデータを連携する」など、バイト単位の境界が必要な場面でREPLACEBを使います。日常業務では REPLACE で十分なケースがほとんどです。</p>



<h3 class="wp-block-heading"><span id="toc29">使い分けフローチャート</span></h3>



<p class="wp-block-paragraph">迷ったらこの順で考えてください。</p>



<ol class="wp-block-list"><li><strong>置換場所が正規表現で表現できるパターン</strong> → REGEXREPLACE</li><li><strong>置換場所が「特定の文字列」</strong> → SUBSTITUTE</li><li><strong>置換場所が「先頭からN文字目」</strong> → REPLACE</li><li><strong>バイト単位で処理する必要がある</strong> → REPLACEB</li></ol>



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



<h3 class="wp-block-heading"><span id="toc31">#VALUE!エラーが出る</span></h3>



<p class="wp-block-paragraph">開始位置に0以下の数値を指定するとエラーになります。REPLACE関数の開始位置は <strong>1始まり</strong> です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 0, 2, &quot;XX&quot;)  → #VALUE!エラー
=REPLACE(A2, 1, 2, &quot;XX&quot;)  → 正常動作</code></pre>



<p class="wp-block-paragraph">プログラミングに慣れている方は0始まりで考えがちですが、スプレッドシートの文字列関数は1始まりです。<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>も同じルールです。</p>



<h3 class="wp-block-heading"><span id="toc32">文字数に負の数を指定した場合もエラー</span></h3>



<p class="wp-block-paragraph">文字数（length）はゼロ以上の整数である必要があります。負の数を指定すると <code>#VALUE!</code> エラーです。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 3, -1, &quot;XX&quot;)  → #VALUE!エラー</code></pre>



<h3 class="wp-block-heading"><span id="toc33">開始位置がテキスト長を超えている場合</span></h3>



<p class="wp-block-paragraph">開始位置がテキストの文字数より大きいと、エラーにはならず <strong>末尾に新しいテキストが追加</strong> されます。</p>



<pre class="wp-block-code"><code>=REPLACE(&quot;ABC&quot;, 10, 2, &quot;XY&quot;)  → 「ABCXY」</code></pre>



<p class="wp-block-paragraph">意図しない結果になりやすいので、開始位置は元のテキストの文字数以内になっているか確認してください。LEN関数で事前チェックする方法もあります。</p>



<pre class="wp-block-code"><code>=IF(開始位置 &gt; LEN(A2), &quot;範囲外&quot;, REPLACE(A2, 開始位置, 文字数, &quot;新テキスト&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc34">空セルを渡した場合</span></h3>



<p class="wp-block-paragraph">テキストが空セルや空文字列の場合、エラーにはならず新しいテキストだけが返ります。</p>



<pre class="wp-block-code"><code>=REPLACE(&quot;&quot;, 1, 0, &quot;ABC&quot;)  → 「ABC」</code></pre>



<p class="wp-block-paragraph">元データが空なのに結果が出力される点に注意してください。空セルチェックにはIF関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, REPLACE(A2, 1, 2, &quot;XX&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc35">エラー一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>開始位置が0以下</td><td>開始位置を1以上に</td></tr><tr><td><code>#VALUE!</code></td><td>文字数が負の数</td><td>文字数を0以上に</td></tr><tr><td><code>#VALUE!</code></td><td>FINDで検索文字が見つからない</td><td><code>IFERROR</code> でラップ</td></tr><tr><td>末尾に追記される</td><td>開始位置がテキスト長超過</td><td>LEN関数で事前チェック</td></tr><tr><td>空でも結果が出る</td><td>テキストが空セル</td><td>IF関数で空判定</td></tr><tr><td>数値計算ができない</td><td>戻り値が文字列型</td><td>VALUE関数で型変換</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc37">REPLACE関数とSUBSTITUTE関数はどちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">「どこにあるかわかっている」ならREPLACE、「何という文字かわかっている」ならSUBSTITUTEです。たとえば「電話番号の先頭3桁を変えたい」なら位置が決まっているのでREPLACE。「ハイフンをすべて削除したい」なら文字が決まっているのでSUBSTITUTEが向いています。実務ではSUBSTITUTEのほうが使用頻度が高いですが、REPLACEは固定フォーマットの一部更新や伏せ字処理など、限定的だが代替の効かない場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc38">REPLACE関数で複数箇所を一度に置換できますか？</span></h3>



<p class="wp-block-paragraph">REPLACE関数は1回の呼び出しで1か所しか置換できません。複数箇所を変えたい場合は、REPLACE関数をネストするか（外側のREPLACEの内側にREPLACEを入れる）、複数の文字を一括変換したい場合は<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>や<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>を使うほうが効率的です。たとえば <code>=REPLACE(REPLACE(A1,1,2,"XX"),5,3,"YYY")</code> のように入れ子にします。</p>



<h3 class="wp-block-heading"><span id="toc39">開始位置にテキストの文字数を超える数値を指定したらエラーになりますか？</span></h3>



<p class="wp-block-paragraph">エラーにはなりません。開始位置が元のテキストの文字数を超えた場合、テキストの末尾に新しいテキストが追加されます。たとえば <code>=REPLACE("ABC",10,2,"XY")</code> の結果は「ABCXY」になります。意図しない結果になりやすいので、<a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数</a>で文字数をチェックしてから使うと安全です。</p>



<h3 class="wp-block-heading"><span id="toc40">列全体に一気に適用したい場合はどう書きますか？</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>でラップすると列全体に一括適用できます。たとえば <code>=ARRAYFORMULA(REPLACE(A2:A100, 1, 2, "06"))</code> のように書けば、A2からA100の全行に一発で適用されます。1セルずつ数式をコピーする必要がないので、運用するスプレッドシートに組み込むときに便利です。</p>



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



<p class="wp-block-paragraph">はい、機能は完全に同じです。構文・動作・エラーの挙動まですべて互換性があります。ExcelとGoogleスプレッドシート間でxlsxファイルをやり取りしても計算結果は変わりません。なお、バイト数で位置を指定する <a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a> もExcel・スプレッドシート双方にあり、全角文字の処理が必要な場面で役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc42">文字を削除せずに挿入だけしたい場合はどう書きますか？</span></h3>



<p class="wp-block-paragraph">文字数を0に指定すれば、元の文字を1文字も消さずに新しいテキストを挿入できます。<code>=REPLACE(A2, 3, 0, "-")</code> と書けば3文字目の前にハイフンが挿入されます。先頭に追加したい場合は開始位置を1にして <code>=REPLACE(A2, 1, 0, "PRE-")</code> とすればプレフィックスとして機能します。文字列連結（&#038;）を使わずに1関数で書けるので、ARRAYFORMULAとの相性も良いです。</p>



<h3 class="wp-block-heading"><span id="toc43">REPLACEの結果が文字列になってしまい計算に使えません</span></h3>



<p class="wp-block-paragraph">REPLACE関数の戻り値は常に文字列型です。数値として扱いたい場合は <a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a> でラップしてください。たとえば <code>=VALUE(REPLACE("2024", 1, 2, "20"))</code> とすれば結果が数値の2024になります。日付として扱いたい場合は <a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a> を使います。</p>



<h3 class="wp-block-heading"><span id="toc44">大文字小文字を区別した置換はできますか？</span></h3>



<p class="wp-block-paragraph">REPLACE関数は位置指定なので、大文字小文字の区別という概念がそもそもありません。「大文字のAだけを置換したい」のように内容で区別したい場合は<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>（大文字小文字を区別する）を使ってください。大文字小文字を区別せずに検索したい場合は <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> との組み合わせが選択肢になります。</p>



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



<p class="wp-block-paragraph">REPLACE関数の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=REPLACE(テキスト, 開始位置, 文字数, 新しいテキスト)</code></td></tr><tr><td>引数</td><td>4つすべて必須</td></tr><tr><td>開始位置</td><td>1始まり（0以下は <code>#VALUE!</code>）</td></tr><tr><td>文字数0</td><td>削除せず挿入として機能</td></tr><tr><td>文字数超過</td><td>エラーにならず末尾まで置換</td></tr><tr><td>位置超過</td><td>エラーにならず末尾に追記</td></tr><tr><td>戻り値</td><td>常に文字列型</td></tr><tr><td>一括適用</td><td>ARRAYFORMULAでラップ</td></tr><tr><td>複数箇所</td><td>ネストまたはREGEXREPLACE</td></tr><tr><td>SUBSTITUTEとの違い</td><td>SUBSTITUTE=文字指定、REPLACE=位置指定</td></tr><tr><td>Excel互換</td><td>完全互換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">REPLACE関数は「何文字目から何文字分」と位置で指定する置換関数です。固定フォーマットの一部変更や個人情報のマスク、年度プレフィックスの更新など、位置が決まっている場面で大活躍します。</p>



<p class="wp-block-paragraph">まずは市外局番の差し替えや伏せ字処理から試してみてください。慣れてきたら<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>と組み合わせて動的な位置指定にチャレンジし、最終的には<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>で列全体を一括処理できるようになると、業務効率が一段階上がりますよ。</p>



<h3 class="wp-block-heading"><span id="toc46">次に読みたい関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a> &#8211; 文字列指定で全置換</li><li><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a> &#8211; 正規表現で柔軟に置換</li><li><a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a> &#8211; バイト数で位置指定</li><li><a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a> &#8211; 文字列の位置を取得</li><li><a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数</a> &#8211; 文字数をカウント</li><li><a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a> &#8211; 文字列の途中を抽出</li><li><a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a> &#8211; 文字列の先頭を抽出</li><li><a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a> &#8211; 文字列の末尾を抽出</li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a> &#8211; 範囲一括処理</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-replace-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-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">スプレッドシートの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>スプレッドシートのSUBSTITUTE関数の使い方｜文字列置換の基本から応用まで</title>
		<link>https://mashukabu.com/spreadsheet-substitute-function/</link>
					<comments>https://mashukabu.com/spreadsheet-substitute-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 22:34:25 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[REGEXREPLACE]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4256</guid>

					<description><![CDATA[スプレッドシートのSUBSTITUTE関数の基本から応用まで解説。第4引数で特定番目だけ置換、ネストで複数文字列を一括置換する方法、REPLACEとの違いも丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「この文字を別の文字に置き換えたい」と思ったことはありませんか？電話番号のハイフンを消したい、データのカッコを一括で外したい。手作業で直すと時間がかかりますし、何百行もあると修正漏れが怖いですよね。</p>



<p class="wp-block-paragraph">SUBSTITUTE関数を使えば、指定した文字列をまとめて置換できます。この記事ではスプレッドシートでのSUBSTITUTE関数の基本から、複数文字の一括置換、似た関数との使い分けまで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのSUBSTITUTE関数の使い方：基本構文と引数の役割</a><ol><li><a href="#toc2" tabindex="0">4つの引数の役割</a></li><li><a href="#toc3" tabindex="0">基本的な使い方</a></li></ol></li><li><a href="#toc4" tabindex="0">SUBSTITUTE関数でよく使う実務パターン</a><ol><li><a href="#toc5" tabindex="0">スペース・改行・不要文字を削除する</a></li><li><a href="#toc6" tabindex="0">電話番号のハイフンを消す</a></li><li><a href="#toc7" tabindex="0">複数の文字列を一括置換する（ネストSUBSTITUTE）</a></li></ol></li><li><a href="#toc8" tabindex="0">第4引数で「何番目だけ」を指定する方法</a><ol><li><a href="#toc9" tabindex="0">同じ文字が複数ある場合の挙動</a></li><li><a href="#toc10" tabindex="0">実務活用例</a></li></ol></li><li><a href="#toc11" tabindex="0">SUBSTITUTE・REPLACE・REGEXREPLACEの使い分け</a><ol><li><a href="#toc12" tabindex="0">3関数の比較表</a></li></ol></li><li><a href="#toc13" tabindex="0">よくある失敗と対処法</a><ol><li><a href="#toc14" tabindex="0">大文字・小文字の区別に注意</a></li><li><a href="#toc15" tabindex="0">全角・半角の罠</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのSUBSTITUTE関数の使い方：基本構文と引数の役割</span></h2>



<p class="wp-block-paragraph">SUBSTITUTE関数は、文字列の中から<strong>指定した文字を別の文字に置き換える</strong>関数です。読み方は「サブスティテュート」。英語の「Substitute（代わりに置く）」が名前の由来です。</p>



<p class="wp-block-paragraph">たとえば「東京都渋谷区」の「渋谷」を「新宿」に置き換えて「東京都新宿区」にできます。Excelの「検索と置換」機能のように使えますが、数式なので元データを壊さずに結果を得られるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc2">4つの引数の役割</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(対象テキスト, 検索文字列, 置換文字列, [出現回数])</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><tr><td>検索文字列</td><td>必須</td><td>置き換えたい文字列</td></tr><tr><td>置換文字列</td><td>必須</td><td>置き換え後の文字列（空文字&#8221;&#8221;で削除）</td></tr><tr><td>出現回数</td><td>省略可</td><td>何番目の一致だけを置換するか（省略で全置換）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第4引数は省略するケースがほとんどです。省略すると一致する文字列を<strong>すべて</strong>置き換えます。</p>



<h3 class="wp-block-heading"><span id="toc3">基本的な使い方</span></h3>



<p class="wp-block-paragraph">セルA2に「2024/03/18」が入っているとします。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;/&quot;, &quot;-&quot;)  → 「2024-03-18」</code></pre>



<p class="wp-block-paragraph">スラッシュをハイフンに置き換えました。対象テキストに「/」が2つありますが、第4引数を省略しているので両方とも置き換わります。</p>



<p class="wp-block-paragraph">置換文字列に空文字（&#8221;&#8221;）を指定すれば、文字の<strong>削除</strong>としても使えます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;/&quot;, &quot;&quot;)  → 「20240318」</code></pre>



<p class="wp-block-paragraph">検索文字列が見つからなくてもエラーにはなりません。元テキストがそのまま返るだけなので、「置換できていない」事故に気づきにくいのです。</p>



<h2 class="wp-block-heading"><span id="toc4">SUBSTITUTE関数でよく使う実務パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc5">スペース・改行・不要文字を削除する</span></h3>



<p class="wp-block-paragraph">データのコピペで混入する余分なスペースや改行は、SUBSTITUTE関数で一掃できます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot; &quot;, &quot;&quot;)       → 半角スペースを削除
=SUBSTITUTE(A2, &quot;　&quot;, &quot;&quot;)      → 全角スペースを削除
=SUBSTITUTE(A2, CHAR(10), &quot;&quot;)  → 改行を削除</code></pre>



<p class="wp-block-paragraph">改行は目に見えないので直接入力できません。<code>CHAR(10)</code>で改行コードを指定するのがコツです。</p>



<h3 class="wp-block-heading"><span id="toc6">電話番号のハイフンを消す</span></h3>



<p class="wp-block-paragraph">電話番号を「数字だけ」にしたい場面はよくありますよね。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/02_formula_substitute-basic.png" alt="_images/spreadsheet-substitute-function/02_formula_substitute-basic.png" /></figure>



<p class="wp-block-paragraph">A2に「03-1234-5678」が入っていれば「0312345678」が返ります。ハイフンが2つあっても全置換なので1回の数式で完了です。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-substitute-function/01_data_phone-numbers.png/">_images/spreadsheet-substitute-function/01_data_phone-numbers.png</a></p>



<h3 class="wp-block-heading"><span id="toc7">複数の文字列を一括置換する（ネストSUBSTITUTE）</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数は1回の呼び出しで1種類の文字しか置換できません。複数の文字を置き換えたい場合は、SUBSTITUTE関数を入れ子（ネスト）にします。</p>



<p class="wp-block-paragraph">たとえばA2に「(株)ABC商事」が入っていて、カッコを両方消したい場合です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(A2, &quot;(&quot;, &quot;&quot;), &quot;)&quot;, &quot;&quot;)  → 「株ABC商事」</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-substitute-function/04_formula_substitute-nest.png/">_images/spreadsheet-substitute-function/04_formula_substitute-nest.png</a></p>



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



<ol class="wp-block-list"><li>内側の<code>SUBSTITUTE(A2, "(", "")</code>で「(」を削除 → 「株)ABC商事」</li><li>外側の<code>SUBSTITUTE(..., ")", "")</code>で「)」を削除 → 「株ABC商事」</li></ol>



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



<p class="wp-block-paragraph">3つ以上の文字を消したいときは、さらにネストを重ねます。</p>



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



<p class="wp-block-paragraph">ネストが深くなると読みにくくなります。3段以上になる場合は、後述するREGEXREPLACE関数のほうがすっきり書けますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">第4引数で「何番目だけ」を指定する方法</span></h2>



<h3 class="wp-block-heading"><span id="toc9">同じ文字が複数ある場合の挙動</span></h3>



<p class="wp-block-paragraph">第4引数を省略するとすべて置換されます。しかし「1番目だけ」「3番目だけ」を置き換えたい場合もありますよね。</p>



<p class="wp-block-paragraph">A2に「りんご-みかん-りんご-ぶどう」が入っています。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;)     → 「バナナ-みかん-バナナ-ぶどう」
=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;, 1)  → 「バナナ-みかん-りんご-ぶどう」
=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;, 2)  → 「りんご-みかん-バナナ-ぶどう」</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/06_result_substitute-nth.png" alt="_images/spreadsheet-substitute-function/06_result_substitute-nth.png" /></figure>



<p class="wp-block-paragraph">第4引数に「1」を指定すると、最初の「りんご」だけが置き換わります。「2」なら2番目だけです。</p>



<h3 class="wp-block-heading"><span id="toc10">実務活用例</span></h3>



<p class="wp-block-paragraph">商品コードが「A-001-A-B」のように複数のハイフンで区切られているとします。2番目のハイフンだけをスラッシュに変えたい場合です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;-&quot;, &quot;/&quot;, 2)  → 「A-001/A-B」</code></pre>



<p class="wp-block-paragraph">全体を変えずにピンポイントで置換できるのが第4引数の強みです。使う場面は限られますが、覚えておくと便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">SUBSTITUTE・REPLACE・REGEXREPLACEの使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには文字列を置換する関数が3つあります。それぞれ「何を基準に置き換えるか」が違います。</p>



<h3 class="wp-block-heading"><span id="toc12">3関数の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SUBSTITUTE</th><th>REPLACE</th><th>REGEXREPLACE</th></tr></thead><tbody><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>1か所のみ</td><td>パターン一致で全置換</td></tr><tr><td>複数種類の文字</td><td>ネストが必要</td><td>不可</td><td>1つの正規表現で対応可能</td></tr><tr><td>難易度</td><td>低い</td><td>低い</td><td>正規表現の知識が必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けの判断基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>特定の文字列を置き換えたい</strong> → SUBSTITUTE</li><li><strong>特定の位置の文字を置き換えたい</strong> → REPLACE</li><li><strong>パターンで柔軟に置き換えたい</strong> → REGEXREPLACE</li></ul>



<p class="wp-block-paragraph">たとえば「3文字目から2文字を消す」ならREPLACEです。「ハイフンを全部消す」ならSUBSTITUTEです。「数字だけ消す」「カッコと中身をまとめて消す」のようにパターンで指定したいならREGEXREPLACEの出番です。</p>



<p class="wp-block-paragraph">実務で一番使うのはSUBSTITUTEです。まずはSUBSTITUTEを覚えてください。対応できない場面が出てきたら、REPLACEやREGEXREPLACEを検討してみましょう。</p>



<h2 class="wp-block-heading"><span id="toc13">よくある失敗と対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc14">大文字・小文字の区別に注意</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数は<strong>大文字と小文字を区別</strong>します。これは<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>と同じ仕様です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(&quot;ABC&quot;, &quot;a&quot;, &quot;x&quot;)  → 「ABC」（変化なし）
=SUBSTITUTE(&quot;ABC&quot;, &quot;A&quot;, &quot;x&quot;)  → 「xBC」</code></pre>



<p class="wp-block-paragraph">小文字の「a」を検索しても、大文字の「A」にはヒットしません。エラーにはなりません。元テキストがそのまま返るだけなので、「置換できていない」事故に気づきにくいのです。</p>



<p class="wp-block-paragraph">大文字小文字を無視して置換したいときは、LOWERやUPPERで統一してから使います。</p>



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



<p class="wp-block-paragraph">ただしこの方法だと出力結果もすべて小文字になります。元の大文字小文字を保持したい場合はREGEXREPLACE関数の<code>(?i)</code>フラグを検討してください。</p>



<h3 class="wp-block-heading"><span id="toc15">全角・半角の罠</span></h3>



<p class="wp-block-paragraph">もうひとつよくあるのが、全角と半角の違いに気づかないケースです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot; &quot;, &quot;&quot;)   → 半角スペースだけ削除
=SUBSTITUTE(A2, &quot;　&quot;, &quot;&quot;)  → 全角スペースだけ削除</code></pre>



<p class="wp-block-paragraph">半角スペースと全角スペースは別の文字として扱われます。見た目がほぼ同じなので気づきにくいのがやっかいです。</p>



<p class="wp-block-paragraph">「スペースを消したはずなのに残っている」と思ったら、全角・半角の混在を疑ってください。両方消したい場合はネストで対応します。</p>



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



<p class="wp-block-paragraph">ハイフンも同様です。半角「-」と全角「ー」は別物なので注意してくださいね。</p>



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



<p class="wp-block-paragraph">SUBSTITUTE関数の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=SUBSTITUTE(対象, 検索文字列, 置換文字列, [出現回数])</code></td></tr><tr><td>全置換</td><td>第4引数を省略するとすべて置換</td></tr><tr><td>文字の削除</td><td>置換文字列に空文字（&#8221;&#8221;）を指定</td></tr><tr><td>大文字/小文字</td><td>区別する（LOWERで回避可能）</td></tr><tr><td>全角/半角</td><td>区別する（ネストで両対応）</td></tr><tr><td>見つからない場合</td><td>エラーにならず元テキストを返す</td></tr><tr><td>複数種類の置換</td><td>ネストで対応（3種以上はREGEXREPLACE推奨）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SUBSTITUTE関数は「この文字を別の文字に変えたい」というシンプルな要望に応える関数です。電話番号のハイフン削除やスペースの除去など、日常的なデータ整理で大活躍します。</p>



<p class="wp-block-paragraph">まずはハイフンやスペースの削除から試してみてください。慣れてきたらネストで複数文字の一括置換に挑戦して、データクリーニングの幅を広げていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-substitute-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelで列番号をアルファベットに変換する方法｜COLUMN・ADDRESS・SUBSTITUTEの組み合わせ技</title>
		<link>https://mashukabu.com/excel-function-howto-get-column-alphabet/</link>
					<comments>https://mashukabu.com/excel-function-howto-get-column-alphabet/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 16 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[列番号変換]]></category>
		<category><![CDATA[関数の組み合わせ]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2104</guid>

					<description><![CDATA[Excelで列番号をアルファベット（列名）に変換する数式を解説します。COLUMN・ADDRESS・SUBSTITUTEの3関数を組み合わせたコピペ用数式を、仕組みからステップごとに丁寧に説明。VBAでの実装例・よくあるエラー対処・実務応用パターンも紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「この列って何列目？」はCOLUMN関数ですぐわかります。でも「列番号をアルファベットに変換したい」となると、専用の関数がないので困りますよね。</p>



<p class="wp-block-paragraph">たとえば、マクロで列を動的に指定したいとき、数式内で列名を文字列として扱いたいとき、表ヘッダーを自動生成したいとき。こういった場面で「列番号 → A, B, AA&#8230;」の変換が必要になります。</p>



<p class="wp-block-paragraph">実はCOLUMN・ADDRESS・SUBSTITUTEの3つを組み合わせれば、たった1行の数式で列のアルファベットを取得できます。この記事ではコピペで使える数式から仕組みの解説、実務での応用パターン、VBAでの実装まで幅広く解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">コピペで使える数式2パターン</a><ol><li><a href="#toc2" tabindex="0">パターン1：数式を入力したセルの列を取得する</a></li><li><a href="#toc3" tabindex="0">パターン2：列番号を指定して変換する</a></li></ol></li><li><a href="#toc4" tabindex="0">数式の仕組みをステップごとに解説</a><ol><li><a href="#toc5" tabindex="0">ステップ1：COLUMN関数で列番号を取得する</a></li><li><a href="#toc6" tabindex="0">ステップ2：ADDRESS関数でセル番地を作る</a></li><li><a href="#toc7" tabindex="0">ステップ3：SUBSTITUTE関数で行番号を取り除く</a></li></ol></li><li><a href="#toc8" tabindex="0">実務で使える応用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：別のセルの列アルファベットを取得する</a></li><li><a href="#toc10" tabindex="0">パターン2：連番の列アルファベット一覧を作る</a></li><li><a href="#toc11" tabindex="0">パターン3：見出し行と組み合わせて列名を自動表示する</a></li><li><a href="#toc12" tabindex="0">パターン4：INDIRECTと組み合わせてセル範囲を動的に指定する</a></li><li><a href="#toc13" tabindex="0">パターン5：MATCH関数と組み合わせて列名を逆引きする</a></li></ol></li><li><a href="#toc14" tabindex="0">VBAで列番号をアルファベットに変換する</a></li><li><a href="#toc15" tabindex="0">よくあるミスと対処法</a><ol><li><a href="#toc16" tabindex="0">行番号にROW()を使うと誤置換が起きることがある</a></li><li><a href="#toc17" tabindex="0">#VALUE!エラーが出る場合</a></li><li><a href="#toc18" tabindex="0">列番号に0以下を指定した場合</a></li><li><a href="#toc19" tabindex="0">結果が数値になっている場合</a></li></ol></li><li><a href="#toc20" tabindex="0">使用する3つの関数の役割まとめ</a></li><li><a href="#toc21" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">コピペで使える数式2パターン</span></h2>



<p class="wp-block-paragraph">まず結論から。すぐに使える数式はこちらです。</p>



<h3 class="wp-block-heading"><span id="toc2">パターン1：数式を入力したセルの列を取得する</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">数式を入力したセルの列アルファベットを返します。たとえばD列のセルに入力すると「D」、AN列なら「AN」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc3">パターン2：列番号を指定して変換する</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,列番号,4),1,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">列番号を直接指定するパターンです。たとえば <code>=SUBSTITUTE(ADDRESS(1,40,4),1,"")</code> と書くと40列目の「AN」が返ります。</p>



<p class="wp-block-paragraph">セル参照で列番号を渡すこともできます。A1セルに列番号が入っている場合は次のようにします。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong><br>行番号は「1」に固定するのがポイントです。理由はこの記事の「よくあるミスと対処法」で説明しますね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">数式の仕組みをステップごとに解説</span></h2>



<p class="wp-block-paragraph">一見むずかしそうに見えますが、やっていることはシンプルです。3つの関数がそれぞれ1つずつ役割を担当しています。</p>



<h3 class="wp-block-heading"><span id="toc5">ステップ1：COLUMN関数で列番号を取得する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>は、セルの列番号を数値で返す関数です。</p>



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



<p class="wp-block-paragraph">D列のセルで実行すると「4」が返ります。引数を省略すると、数式を入力したセル自身の列番号になりますよ。</p>



<p class="wp-block-paragraph">特定のセルを参照させるときは <code>=COLUMN(G5)</code> のように書きます。G5のG列は7列目なので「7」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc6">ステップ2：ADDRESS関数でセル番地を作る</span></h3>



<p class="wp-block-paragraph">次に<a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a>を使って、列番号からセル番地の文字列を組み立てます。</p>



<pre class="wp-block-code"><code>=ADDRESS(1, 4, 4)</code></pre>



<p class="wp-block-paragraph">この数式は「1行目・4列目・相対参照」を意味します。結果は文字列「D1」です。</p>



<p class="wp-block-paragraph">ADDRESS関数の引数は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>意味</th><th>この数式での値</th></tr></thead><tbody><tr><td>行番号</td><td>セル番地の行</td><td>1（固定）</td></tr><tr><td>列番号</td><td>セル番地の列</td><td>COLUMN()の結果</td></tr><tr><td>参照の型</td><td>$記号の有無</td><td>4（相対参照＝$なし）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第3引数を「4」にするのがポイントです。「$D$1」のように$記号が付くと、あとで行番号だけを取り除くのが面倒になります。「4」を指定すれば「D1」のようにシンプルな形で返ってきますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">ステップ3：SUBSTITUTE関数で行番号を取り除く</span></h3>



<p class="wp-block-paragraph">最後に<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>で、セル番地から行番号部分を空文字に置換します。</p>



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



<p class="wp-block-paragraph">「D1」から「1」を取り除いて「D」だけが残る、という仕組みです。</p>



<p class="wp-block-paragraph">これら3つのステップをまとめると、冒頭の数式になります。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), 1, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">COLUMN()→ADDRESS()→SUBSTITUTE()の順にデータが流れていくイメージですね。</p>



<h2 class="wp-block-heading"><span id="toc8">実務で使える応用パターン</span></h2>



<p class="wp-block-paragraph">基本の数式がわかったところで、実務で役立つ応用パターンを5つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：別のセルの列アルファベットを取得する</span></h3>



<p class="wp-block-paragraph">特定のセルの列アルファベットを知りたい場合は、COLUMN関数に参照を渡します。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(G5),4),1,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">G5セルの列番号（7）をCOLUMN関数が返し、結果は「G」になります。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2：連番の列アルファベット一覧を作る</span></h3>



<p class="wp-block-paragraph">A1セルに「1」、A2に「2」&#8230;と列番号を並べておき、B列に次の数式を入れます。</p>



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



<p class="wp-block-paragraph">下方向にコピーすれば、列番号に対応するアルファベットの一覧表が完成します。26列目まで入れればA〜Z、27列目以降はAA、AB&#8230;と2文字の列名も正しく返ってきますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン3：見出し行と組み合わせて列名を自動表示する</span></h3>



<p class="wp-block-paragraph">データの1行目に項目名がある表で、「何列目が何の項目か」を確認したいケースです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;列: &quot; &amp; B1</code></pre>



<p class="wp-block-paragraph">B1セルの上に配置すれば「B列: 売上」のように、列アルファベットと項目名をまとめて表示できます。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン4：INDIRECTと組み合わせてセル範囲を動的に指定する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせると、列アルファベットを使ってセル範囲を文字列で組み立て、動的に参照できます。</p>



<pre class="wp-block-code"><code>=SUM(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;2:&quot; &amp; SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;100&quot;))</code></pre>



<p class="wp-block-paragraph">この数式は「数式を入力した列の2〜100行目を合計する」という意味です。列を増やしてもコピーするだけで自動的に集計列が切り替わるため、動的な集計表を作るときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン5：MATCH関数と組み合わせて列名を逆引きする</span></h3>



<p class="wp-block-paragraph">特定の見出し名が何列目にあるかを<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>で調べ、その列名を取得するパターンです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,MATCH(&quot;売上&quot;,1:1,0),4),1,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">1行目から「売上」という見出しを探し、その列アルファベットを返します。列の順番が変わっても自動追従するので、ダイナミックな表操作に使えます。</p>



<h2 class="wp-block-heading"><span id="toc14">VBAで列番号をアルファベットに変換する</span></h2>



<p class="wp-block-paragraph">マクロを使う場合は、<code>Cells(1, 列番号).Address(False, False)</code> で取得できます。</p>



<pre class="wp-block-code"><code>Sub GetColumnLetter()
    Dim colNum As Long
    Dim colLetter As String
    
    colNum = 5  ' E列を取得したい場合
    colLetter = Left(Cells(1, colNum).Address(False, False), _
                    Len(Cells(1, colNum).Address(False, False)) - 1)
    
    MsgBox colLetter  ' &quot;E&quot; と表示される
End Sub</code></pre>



<p class="wp-block-paragraph"><code>Cells(1, 列番号).Address(False, False)</code> は「行=相対参照、列=相対参照」のセル番地（例: E1）を返します。そこから行番号の「1」を除けば列アルファベットだけが取れます。</p>



<p class="wp-block-paragraph">もっとシンプルな方法として、Split関数を使う書き方もあります。</p>



<pre class="wp-block-code"><code>Function ColNumToLetter(colNum As Long) As String
    ColNumToLetter = Split(Cells(1, colNum).Address(True, False), &quot;$&quot;)(0)
End Function</code></pre>



<p class="wp-block-paragraph">この関数はコードの中で <code>ColNumToLetter(5)</code> のように呼び出せばいつでも使えます。</p>



<h2 class="wp-block-heading"><span id="toc15">よくあるミスと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc16">行番号にROW()を使うと誤置換が起きることがある</span></h3>



<p class="wp-block-paragraph">旧バージョンの数式 <code>=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),"")</code> には落とし穴があります。</p>



<p class="wp-block-paragraph">たとえば11行目のA列で実行してみましょう。ADDRESS関数は「A11」を返します。ここでSUBSTITUTEが「11」を空文字に置換すると、結果は「A」で正しく動きます。</p>



<p class="wp-block-paragraph">しかし問題が起きるケースがあります。行番号が変わるたびに置換対象の数値が変わるため、アルファベット部分に同じ数値が含まれる列では誤置換が起きる可能性があります。</p>



<p class="wp-block-paragraph"><strong>行番号を「1」に固定しておけば、こうした心配は一切不要です。</strong></p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">行番号1なら、末尾の「1」を消すだけで確実にアルファベットだけが残りますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">#VALUE!エラーが出る場合</span></h3>



<p class="wp-block-paragraph">COLUMN関数に無効な参照を渡すと<code>#VALUE!</code>エラーになることがあります。引数を省略するか、有効なセル参照を指定しているか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc18">列番号に0以下を指定した場合</span></h3>



<p class="wp-block-paragraph">ADDRESS関数の列番号に0以下の値を渡すと<code>#VALUE!</code>エラーになります。列番号は1以上の整数を指定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">結果が数値になっている場合</span></h3>



<p class="wp-block-paragraph">数式バー上では正しく見えるのに、セルに数値が表示されている場合は、セルの書式設定が「数値」になっていることがあります。書式を「標準」か「文字列」に変更してください。</p>



<h2 class="wp-block-heading"><span id="toc20">使用する3つの関数の役割まとめ</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>この数式での使い方</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a></td><td>列番号を取得</td><td>セルの列を数値で返す</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a></td><td>セル番地を文字列で生成</td><td>行番号1＋列番号→「A1」形式の文字列</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a></td><td>文字列を置換</td><td>セル番地から行番号「1」を除去</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">データの流れは <strong>列番号（数値）→ セル番地（文字列）→ アルファベットのみ（文字列）</strong> です。</p>



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



<p class="wp-block-paragraph"><strong>Q. XFD列（16,384列目）など、3文字の列名でも動きますか？</strong></p>



<p class="wp-block-paragraph">動きます。<code>=SUBSTITUTE(ADDRESS(1,16384,4),1,"")</code> を試すと「XFD」が返ります。Excelの最大列（XFD）まで正しく変換できますよ。</p>



<p class="wp-block-paragraph"><strong>Q. Googleスプレッドシートでも同じ数式が使えますか？</strong></p>



<p class="wp-block-paragraph">使えます。COLUMN・ADDRESS・SUBSTITUTE関数はスプレッドシートにも同名で存在するため、まったく同じ数式が動きます。</p>



<p class="wp-block-paragraph"><strong>Q. 逆変換（アルファベット → 列番号）はできますか？</strong></p>



<p class="wp-block-paragraph">できます。<code>=COLUMN(INDIRECT(アルファベット & "1"))</code> の形で、任意のアルファベットから列番号を取得できます。たとえば <code>=COLUMN(INDIRECT("D1"))</code> で「4」が返ります。<a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせるのがシンプルですよ。</p>



<p class="wp-block-paragraph"><strong>Q. CELL関数では取得できないのですか？</strong></p>



<p class="wp-block-paragraph"><code>=CELL("address", A1)</code> で「$A$1」のような絶対参照の文字列は取れますが、列アルファベットだけを取り出すにはさらにSUBSTITUTEやLEFT関数で加工が必要です。SUBSTITUTE(ADDRESS(&#8230;))の数式のほうがシンプルに書けますよ。</p>



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



<p class="wp-block-paragraph">Excelで列番号をアルファベットに変換する数式は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>数式</th></tr></thead><tbody><tr><td>自セルの列を取得</td><td><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")</code></td></tr><tr><td>列番号を指定して変換</td><td><code>=SUBSTITUTE(ADDRESS(1,列番号,4),1,"")</code></td></tr><tr><td>別セルの列を取得</td><td><code>=SUBSTITUTE(ADDRESS(1,COLUMN(セル),4),1,"")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは3つの関数の役割分担です。<a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>で列番号を取得し、<a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a>でセル番地の文字列を作り、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>で行番号を除去します。行番号は「1」に固定しておくのが安全ですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>との組み合わせでさらに柔軟な使い方もできます。列名の動的参照が必要になった場面で、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-get-column-alphabet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSUBSTITUTE関数の使い方｜文字列を置き換える方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-substitute/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-substitute/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 02 May 2022 03:02:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[テキスト操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1825</guid>

					<description><![CDATA[ExcelのSUBSTITUTE関数で特定の文字列を別の文字列に置き換える方法を解説。ハイフン除去・改行削除・複数文字の一括置換など実務例を紹介し、REPLACE関数との違いも比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">セルの中に混ざったハイフンやスペースを一括で取り除きたい。そんなとき、手作業で一つずつ修正するのは大変ですよね。SUBSTITUTE関数を使えば、指定した文字列を別の文字列にまとめて置き換えられます。この記事では基本の書き方から実務で使える置換パターンまで、まとめて紹介します。</p>



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



<ul class="wp-block-list"><li>セルの中の特定の文字を別の文字に一括で置き換えたい</li><li>電話番号のハイフンや余分なスペースをまとめて除去したい</li><li>SUBSTITUTE関数とREPLACE関数の違いが知りたい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">SUBSTITUTE関数とは？</a></li><li><a href="#toc2" tabindex="0">SUBSTITUTE関数の書き方（構文と引数）</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">SUBSTITUTE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">セル参照で文字列を置換する</a></li><li><a href="#toc7" tabindex="0">文字列を削除する（空文字で置換）</a></li><li><a href="#toc8" tabindex="0">第4引数で特定の位置だけ置換する</a></li></ol></li><li><a href="#toc9" tabindex="0">SUBSTITUTE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">ハイフン・スペースの除去（データ整形）</a></li><li><a href="#toc11" tabindex="0">改行の削除（CHAR関数との組み合わせ）</a></li><li><a href="#toc12" tabindex="0">SUBSTITUTE関数のネスト（複数文字の一括置換）</a></li><li><a href="#toc13" tabindex="0">特定の文字を別の文字に変換する</a></li></ol></li><li><a href="#toc14" tabindex="0">SUBSTITUTE関数とREPLACE関数の違い</a></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">関連記事</a></li><li><a href="#toc18" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">SUBSTITUTE（サブスティチュート）関数は、文字列の中から指定した文字を検索し、別の文字に置き換える関数です。英語の「substitute」は「代わりに置く」という意味で、まさに文字列の差し替え専用の関数です。</p>



<p class="wp-block-paragraph">たとえば「Excel」という文字を「エクセル」に置き換えたり、電話番号の「-」を消して数字だけにしたりできます。Excelの「検索と置換」機能（Ctrl+H）と似ていますが、SUBSTITUTE関数は数式なので元のデータを変更しません。別のセルに結果を出力するので安心です。</p>



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



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



<pre class="wp-block-code"><code>=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])</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><tr><td>検索文字列</td><td>必須</td><td>置き換えたい文字列（大文字・小文字を区別する）</td></tr><tr><td>置換文字列</td><td>必須</td><td>置き換え後の文字列（&#8221;&#8221;を指定すると削除になる）</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>第4引数の「置換対象」は省略するケースがほとんどです。特定の出現箇所だけを変えたいときに数値で指定します。たとえば「2」を指定すると、2番目に見つかった文字列だけが置き換わります。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">セル参照で文字列を置換する</span></h3>



<p class="wp-block-paragraph">セルA1に「Excelは事務職に必須のツールです」と入っている場合に、「Excel」を「エクセル」に置き換えてみます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A1,&quot;Excel&quot;,&quot;エクセル&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「エクセルは事務職に必須のツールです」になります。元のセルA1の値はそのまま残るので安心です。</p>



<h3 class="wp-block-heading"><span id="toc7">文字列を削除する（空文字で置換）</span></h3>



<p class="wp-block-paragraph">置換文字列に「&#8221;&#8221;」（空文字）を指定すると、該当する文字を削除できます。</p>



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



<p class="wp-block-paragraph">A1が「03-1234-5678」なら、結果は「0312345678」です。ハイフンをすべて消せるので、電話番号の整形によく使われます。</p>



<h3 class="wp-block-heading"><span id="toc8">第4引数で特定の位置だけ置換する</span></h3>



<p class="wp-block-paragraph">同じ文字列が複数回登場する場合に、指定した順番の文字だけを置き換えられます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(&quot;りんご・みかん・りんご&quot;,&quot;りんご&quot;,&quot;バナナ&quot;,2)</code></pre>



<p class="wp-block-paragraph">結果は「りんご・みかん・バナナ」です。2番目の「りんご」だけが「バナナ」に変わります。第4引数を省略するとすべての「りんご」が置換されます。</p>



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



<h3 class="wp-block-heading"><span id="toc10">ハイフン・スペースの除去（データ整形）</span></h3>



<p class="wp-block-paragraph">CSVや外部システムから取り込んだデータには、余分なハイフンやスペースが混ざりがちです。SUBSTITUTE関数で一括除去できます。</p>



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



<p class="wp-block-paragraph">郵便番号の「123-4567」を「1234567」にしたり、電話番号のハイフンを消したりする場面で使えます。半角スペースを除去したい場合は次のように書きます。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>前後の空白だけ削除したい場合は<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>が便利です。SUBSTITUTE関数は文字列内の全スペースを消す点が異なります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">改行の削除（CHAR関数との組み合わせ）</span></h3>



<p class="wp-block-paragraph">セル内改行は目に見えない文字（文字コード10）なので、直接入力できません。CHAR関数と組み合わせて削除します。</p>



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



<p class="wp-block-paragraph">Alt+Enterで入力したセル内改行がすべて消えます。改行以外の印刷できない文字も消したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>と併用するのがおすすめです。</p>



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



<p class="wp-block-paragraph">改行を半角スペースに置き換えたうえで、残りの制御文字もCLEAN関数で除去するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">SUBSTITUTE関数のネスト（複数文字の一括置換）</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数を入れ子にすると、複数の文字をまとめて置換できます。</p>



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



<p class="wp-block-paragraph">この数式は、ハイフン → 半角スペース → 全角スペースの順番に3つの文字を一括で削除します。入れ子が深くなると読みにくくなりますが、やっていることはシンプルです。外側のSUBSTITUTEから順に「前の結果を次のSUBSTITUTEに渡す」だけです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>全角・半角の変換には<a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>が使えます。SUBSTITUTEで個別に全角・半角を消すより効率的な場合があります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">特定の文字を別の文字に変換する</span></h3>



<p class="wp-block-paragraph">表記ゆれを統一する場面でも活躍します。</p>



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



<p class="wp-block-paragraph">住所録や取引先リストで「株式会社」を「(株)」に統一したいときにまとめて変換できます。</p>



<h2 class="wp-block-heading"><span id="toc14">SUBSTITUTE関数とREPLACE関数の違い</span></h2>



<p class="wp-block-paragraph">文字列を置き換える関数にはREPLACE関数もあります。名前が似ているので混同しやすいですが、使い分けのポイントは「置き換える対象の指定方法」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SUBSTITUTE関数</th><th>REPLACE関数</th></tr></thead><tbody><tr><td>置換対象の指定</td><td><strong>文字列</strong>で指定</td><td><strong>位置（何文字目）</strong>で指定</td></tr><tr><td>構文</td><td>=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])</td><td>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</td></tr><tr><td>得意な場面</td><td>特定の文字を探して置き換える</td><td>決まった位置の文字を置き換える</td></tr><tr><td>使用例</td><td>ハイフン除去・表記統一</td><td>先頭3文字を伏字にする・電話番号の市外局番だけ変更</td></tr><tr><td>大文字・小文字</td><td>区別する</td><td>関係なし（位置で指定するため）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「この文字を消したい・変えたい」ならSUBSTITUTE関数です。「何文字目から何文字を変えたい」ならREPLACE関数と覚えておくとスムーズです。</p>



<p class="wp-block-paragraph">なお、文字列の位置を取得する関数としては<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>も便利です。</p>



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



<p class="wp-block-paragraph">SUBSTITUTE関数はエラーが出にくい関数ですが、意図した結果にならないケースがあります。</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関数は大文字と小文字を区別します。「excel」と「Excel」は別の文字列として扱われるため、正確に入力してください</td></tr><tr><td>置換されない</td><td>見えない文字（空白・改行）が含まれている</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>で不要な文字を除去してから置換してください</td></tr><tr><td>全角・半角の不一致で置換されない</td><td>検索文字列と実際の文字の全角半角が異なる</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で半角に統一してからSUBSTITUTE関数を適用すると確実です</td></tr><tr><td>#VALUE!エラー</td><td>引数が不足している</td><td>第1〜第3引数はすべて必須です。省略するとエラーになります</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>SUBSTITUTE関数の大文字・小文字の区別は、英字だけでなく全角英字にも適用されます。「Ａ」と「ａ」も別の文字として扱われるので注意してください。</p></blockquote>



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



<p class="wp-block-paragraph">SUBSTITUTE関数は「セルの中の特定の文字を別の文字に置き換える」ための関数です。</p>



<ul class="wp-block-list"><li>第3引数に「&#8221;&#8221;」を指定すると、文字の削除として使える</li><li>第4引数で「n番目だけ置換」が可能</li><li>ネスト（入れ子）にすれば複数の文字を一括置換できる</li><li>REPLACE関数との違いは「文字で探すか、位置で探すか」</li></ul>



<p class="wp-block-paragraph">ハイフン除去・改行削除・表記統一など、実務のデータ整形で幅広く使える関数です。ぜひ活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc17">関連記事</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-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-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc18">関数一覧</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-substitute/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのLEN関数の使い方｜文字数カウントと実務活用テクニック</title>
		<link>https://mashukabu.com/excel-function-howto-use-len/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-len/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 21 Mar 2022 12:25:22 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LENB関数]]></category>
		<category><![CDATA[LEN関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[文字列関数]]></category>
		<category><![CDATA[文字数カウント]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1399</guid>

					<description><![CDATA[ExcelのLEN関数で文字数をカウントする方法を基本から実務まで解説。LENB関数との違い、SUBSTITUTE+LENで特定文字の出現回数カウント、固定桁数のバリデーション、ゼロ埋めの桁チェック、TRIM・ASC・JIS関数を使ったデータクレンジングなど、実践パターンとFAQをまとめて紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「この列のデータ、何文字入っているんだろう？」と気になる場面はありませんか。入力フォームの文字数チェック、SNS投稿文の長さ確認、データベース登録前の桁数チェックなど、文字数を数えたいシーンは意外と多いものです。LEN関数を使えば、セルの中の文字数を一瞬でカウントできます。この記事ではLEN関数の基本から、LENB関数との違い、SUBSTITUTE・TRIM・ASC/JIS関数との組み合わせまで、まとめて解説します。</p>



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



<ul class="wp-block-list"><li>セルの中身が何文字あるか手軽に調べたい</li><li>LEN関数とLENB関数の違いがよく分からない</li><li>特定の文字が何回出現するかカウントしたい</li><li>郵便番号や社員番号の桁数をチェックしたい</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-10" checked><label class="toc-title" for="toc-checkbox-10">目次</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><li><a href="#toc3" tabindex="0">基本構文と引数</a></li></ol></li><li><a href="#toc4" tabindex="0">LEN関数の基本的な使い方</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></ol></li><li><a href="#toc8" tabindex="0">LEN関数とLENB関数の違い</a><ol><li><a href="#toc9" tabindex="0">具体例で比較</a></li><li><a href="#toc10" tabindex="0">どちらを使うべきか</a></li></ol></li><li><a href="#toc11" tabindex="0">LEN関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">IF+LENで文字数制限をチェック</a></li><li><a href="#toc13" tabindex="0">LEN=指定桁で固定桁数のバリデーション</a></li><li><a href="#toc14" tabindex="0">SUBSTITUTE+LENで特定文字の出現回数をカウント</a></li><li><a href="#toc15" tabindex="0">TRIM+LENで余分なスペースを検出</a></li><li><a href="#toc16" tabindex="0">ASC/JIS+LENで全角・半角の統一チェック</a></li><li><a href="#toc17" tabindex="0">TEXT+LENでゼロ埋めの桁数をチェック</a></li><li><a href="#toc18" tabindex="0">SUMPRODUCT+LENで複数セルの合計文字数を取得</a></li><li><a href="#toc19" tabindex="0">CLEAN+TRIM+LENでデータクレンジング判定</a></li></ol></li><li><a href="#toc20" tabindex="0">文字列の一部を取り出すときのLEN活用</a><ol><li><a href="#toc21" tabindex="0">RIGHT+LENで末尾から可変長を取り出す</a></li><li><a href="#toc22" tabindex="0">MID+LENで途中から末尾まで取り出す</a></li><li><a href="#toc23" tabindex="0">FIND+LENで区切り文字より後ろを取り出す</a></li></ol></li><li><a href="#toc24" tabindex="0">LEN関数のよくある質問（FAQ）</a><ol><li><a href="#toc25" tabindex="0">Q. LEN関数で改行は数えられますか？</a></li><li><a href="#toc26" tabindex="0">Q. 全角と半角を別々に数えられますか？</a></li><li><a href="#toc27" tabindex="0">Q. スペースを除いた文字数を数えるには？</a></li><li><a href="#toc28" tabindex="0">Q. LENとLENBはどちらを使えばいいですか？</a></li><li><a href="#toc29" tabindex="0">Q. Googleスプレッドシートでも同じように使えますか？</a></li></ol></li><li><a href="#toc30" tabindex="0">よくあるエラーと似た関数の使い分け</a><ol><li><a href="#toc31" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc32" tabindex="0">似た関数との違い・使い分け</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ</a><ol><li><a href="#toc34" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LEN関数とは？書き方と基本ルール</span></h2>



<p class="wp-block-paragraph">LEN関数は、テキスト文字列に含まれる文字数を返す関数です。セルに入力された文字の数をそのまま数値で教えてくれます。</p>



<p class="wp-block-paragraph">たとえばセルに「Excel関数」と入っていれば、LEN関数は「7」を返します。半角でも全角でも、1文字は1文字としてカウントされるのがポイントです。</p>



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



<p class="wp-block-paragraph">LEN関数は「レン」と読みます。英語の「Length（レングス＝長さ）」の略です。文字列の「長さ」を返す関数という意味ですね。すべてのExcelバージョン（Excel 2016以前、Microsoft 365含む）で同じ書き方で使えますよ。</p>



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



<pre class="wp-block-code"><code>=LEN(文字列)</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つだけなので、とてもシンプルです。セル参照のほか、<code>=LEN("テスト")</code> のように文字列を直接指定することもできますよ。</p>



<p class="wp-block-paragraph">なお、引数に空のセル（空白セル）を渡すと「0」が返ります。エラーにはならないので安心してください。文字列を直接指定する場合はダブルクォーテーションで囲みます。<code>=LEN("Excel")</code> と書けば「5」が返りますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc5">セル参照で文字数を数える</span></h3>



<p class="wp-block-paragraph">セルA1に「Excel関数」と入っている場合に、文字数を数えてみます。</p>



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



<p class="wp-block-paragraph">結果は「7」です。半角の「Excel」が5文字、全角の「関数」が2文字なので、合計7文字になります。LEN関数では半角も全角も同じ1文字としてカウントされます。</p>



<h3 class="wp-block-heading"><span id="toc6">数値の桁数を数える</span></h3>



<p class="wp-block-paragraph">LEN関数は数値にも使えます。セルA1に「12345」と入っている場合、こう書きます。</p>



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



<p class="wp-block-paragraph">結果は「5」です。数値は文字列として扱われ、桁数がそのまま返ります。</p>



<p class="wp-block-paragraph">なお、マイナス記号や小数点も1文字としてカウントされます。「-12.5」なら、記号を含めて5文字です。数値の見た目どおりに数えられると覚えておきましょう。</p>



<p class="wp-block-paragraph">ただし日付セルには注意が必要です。日付はExcel内部でシリアル値（例: 46102）として管理されています。そのため <code>=LEN(A1)</code> はシリアル値の桁数を返します。日付の文字数を数えたいときは、<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>で表示形式を指定してからLENに渡してください。</p>



<pre class="wp-block-code"><code>=LEN(TEXT(A1,&quot;yyyy/mm/dd&quot;))</code></pre>



<p class="wp-block-paragraph">この数式なら「2026/05/27」の10文字が返りますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">スペース・改行もカウントされる</span></h3>



<p class="wp-block-paragraph">LEN関数はスペースや改行も1文字としてカウントします。</p>



<figure class="wp-block-table"><table><thead><tr><th>セルの内容</th><th>数式</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td><code>Excel 関数</code></td><td><code>=LEN(A1)</code></td><td>8</td><td>半角スペース1つを含む</td></tr><tr><td><code>A B C</code></td><td><code>=LEN(A2)</code></td><td>5</td><td>半角スペース2つを含む</td></tr><tr><td><code>テスト</code>＋改行＋<code>です</code></td><td><code>=LEN(A3)</code></td><td>6</td><td>改行（Alt+Enter）も1文字</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「文字数が合わない」と感じたときは、スペースや改行が混入していないか確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc8">LEN関数とLENB関数の違い</span></h2>



<p class="wp-block-paragraph">LEN関数とセットで覚えたいのがLENB関数です。2つの関数は文字の数え方が根本的に異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>カウント方法</th><th>全角1文字</th><th>半角1文字</th></tr></thead><tbody><tr><td>LEN</td><td>文字数</td><td>1</td><td>1</td></tr><tr><td>LENB</td><td>バイト数</td><td>2</td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LEN関数は「何文字あるか」を数えます。全角でも半角でも1文字は1文字です。一方、LENB関数は「何バイトあるか」を数えます。日本語環境では全角文字が2バイト、半角文字が1バイトとして扱われます。</p>



<p class="wp-block-paragraph">LENB関数のより詳しい使い方やバイト数管理の実例は、<a href="https://mashukabu.com/excel-function-howto-use-lenb/">LENB関数の使い方</a>の記事で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc9">具体例で比較</span></h3>



<p class="wp-block-paragraph">実際のデータでLENとLENBの結果を比べてみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>セルの内容</th><th>LEN</th><th>LENB</th><th>説明</th></tr></thead><tbody><tr><td><code>ABC</code></td><td>3</td><td>3</td><td>半角のみ → LENとLENBは同じ</td></tr><tr><td><code>あいう</code></td><td>3</td><td>6</td><td>全角のみ → LENBは2倍</td></tr><tr><td><code>ABCあいう</code></td><td>6</td><td>9</td><td>混在 → 半角3バイト＋全角6バイト</td></tr><tr><td><code>Excel関数</code></td><td>7</td><td>9</td><td>半角5バイト＋全角4バイト</td></tr><tr><td><code>ﾊﾝｶｸｶﾅ</code></td><td>6</td><td>6</td><td>半角カタカナは1バイト扱い</td></tr><tr><td><code>全角　スペース</code></td><td>7</td><td>13</td><td>全角スペースも全角扱い（2バイト）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">半角だけのデータなら結果は同じですが、全角が混ざるとLENBのほうが大きな数値になりますね。</p>



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



<p class="wp-block-paragraph">通常の文字数カウントにはLEN関数で十分です。LENB関数が必要になるのは、次のような場面に限られます。</p>



<ul class="wp-block-list"><li>入力値をバイト数で管理しているシステムへのデータ登録前チェック</li><li>固定長ファイル（CSVやフラットファイル）のフィールド幅管理</li><li>データベースのカラム定義がバイト数指定の場合</li></ul>



<p class="wp-block-paragraph">LENB関数の実用的な使い方として、バイト数制限のチェックがあります。たとえば「20バイト以内」という制限がある場合は次のように書けます。</p>



<pre class="wp-block-code"><code>=IF(LENB(A1)&gt;20,&quot;超過&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">なお、LENB関数はDBCS（日本語・中国語・韓国語など）環境でのみ全角を2バイトとして数えます。英語環境などのシングルバイト環境では、LENとLENBの結果は同じになります。海外拠点とファイルを共有する場合は、この点に注意してください。</p>



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



<p class="wp-block-paragraph">LEN関数は単体でも便利ですが、他の文字列操作関数と組み合わせるとさらに活躍の場が広がります。実務でよく使うパターンを紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc12">IF+LENで文字数制限をチェック</span></h3>



<p class="wp-block-paragraph">入力フォームやSNS投稿文の文字数上限をチェックする場面で便利です。<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と組み合わせて、20文字を超えたら「超過」と表示してみます。</p>



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



<p class="wp-block-paragraph">A1が「商品名がここに入ります」（12文字）なら「OK」と返ります。「この商品名はとても長い名前で文字数を超過しています」（24文字）なら「超過」が返ります。商品名やタイトルの入力チェックに使えますよ。</p>



<p class="wp-block-paragraph">さらに、何文字オーバーしているか表示したいときは、こう書きます。</p>



<pre class="wp-block-code"><code>=IF(LEN(A1)&gt;20,LEN(A1)-20&amp;&quot;文字超過&quot;,&quot;OK&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc13">LEN=指定桁で固定桁数のバリデーション</span></h3>



<p class="wp-block-paragraph">郵便番号や社員番号のように「必ずこの桁数」と決まっているデータでは、桁数チェックが役立ちます。郵便番号（ハイフンなし7桁）なら、こう書きます。</p>



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



<p class="wp-block-paragraph">A1が「1000001」（7桁）なら「OK」と返ります。6桁や8桁のデータには「桁数エラー」が表示されます。入力ミスや全角混入による桁数のズレを一目で発見できますよ。</p>



<p class="wp-block-paragraph">電話番号や口座番号など、桁数が固定のデータすべてに応用できます。複数の桁数を許容したい場合は、OR関数と組み合わせると便利です。</p>



<pre class="wp-block-code"><code>=IF(OR(LEN(A1)=10,LEN(A1)=11),&quot;OK&quot;,&quot;桁数エラー&quot;)</code></pre>



<p class="wp-block-paragraph">この数式なら、固定電話（10桁）と携帯電話（11桁）の両方を「OK」と判定できます。</p>



<h3 class="wp-block-heading"><span id="toc14">SUBSTITUTE+LENで特定文字の出現回数をカウント</span></h3>



<p class="wp-block-paragraph">「この文章に読点がいくつあるか知りたい」というとき、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>とLEN関数を組み合わせるとカウントできます。</p>



<pre class="wp-block-code"><code>=LEN(A1)-LEN(SUBSTITUTE(A1,&quot;、&quot;,&quot;&quot;))</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><code>Excel、Word、PowerPoint</code></td><td><code>=LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))</code></td><td>2</td></tr><tr><td><code>りんご、みかん</code></td><td><code>=LEN(A2)-LEN(SUBSTITUTE(A2,"、",""))</code></td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この考え方を応用すれば、カンマ・スペース・改行など任意の文字の出現回数をカウントできます。<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>ではセル単位のカウントしかできません。この方法ならセル内の文字を数えられるのがポイントです。</p>



<p class="wp-block-paragraph">2文字以上の文字列の出現回数を数えたい場合は、少し工夫が必要です。</p>



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



<p class="wp-block-paragraph">SUBSTITUTE後の差分をカウント対象の文字数で割ることで、正しい出現回数が返ります。</p>



<h3 class="wp-block-heading"><span id="toc15">TRIM+LENで余分なスペースを検出</span></h3>



<p class="wp-block-paragraph">データの中に余分なスペースが混ざっているかどうかを検出できます。<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で余分なスペースを除去した文字数と、元の文字数を比較します。</p>



<pre class="wp-block-code"><code>=IF(LEN(A1)&lt;&gt;LEN(TRIM(A1)),&quot;スペースあり&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">LEN(A1)とLEN(TRIM(A1))の結果が異なれば、前後や途中に余分なスペースが含まれている証拠です。データクレンジングの前に問題のあるセルを特定するのに役立ちますよ。</p>



<p class="wp-block-paragraph">さらに、余分なスペースが何文字あるか知りたいときは次のように書きます。</p>



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



<p class="wp-block-paragraph">この結果が0より大きければクレンジング対象です。大量のデータを扱う前に、この数式でフィルターをかけて問題行を洗い出すと効率的です。</p>



<h3 class="wp-block-heading"><span id="toc16">ASC/JIS+LENで全角・半角の統一チェック</span></h3>



<p class="wp-block-paragraph">データ入力のばらつきを検出するとき、<a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a>とLEN・LENBの組み合わせが役立ちます。</p>



<p class="wp-block-paragraph">全角文字が含まれているかどうかの判定は、LENとLENBの差分で分かります。</p>



<pre class="wp-block-code"><code>=IF(LEN(A1)=LENB(A1),&quot;半角のみ&quot;,&quot;全角あり&quot;)</code></pre>



<p class="wp-block-paragraph">LEN関数では全角も半角も1文字ですが、LENB関数では全角は2バイトになります。両者が等しければ、半角文字しか含まれていないということですね。</p>



<p class="wp-block-paragraph">さらに全角文字の数を数えたい場合はこう書きます。</p>



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



<p class="wp-block-paragraph">たとえば「ABCあいう」なら、LENB=9、LEN=6です。差分の3が全角文字の数になります。</p>



<p class="wp-block-paragraph">実務では「英数字は半角に統一したい」というケースがよくあります。ASC関数で半角に変換する前に、変換が必要なセルだけを特定しましょう。</p>



<pre class="wp-block-code"><code>=IF(LENB(A1)&lt;&gt;LENB(ASC(A1)),&quot;半角変換が必要&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">ASC関数は全角英数字・カタカナを半角に変換します。変換前後でLENBの結果が変われば、全角文字が含まれている証拠です。</p>



<p class="wp-block-paragraph">逆に「カタカナは全角に統一したい」場合は、JIS関数と同様の考え方で判定できます。</p>



<pre class="wp-block-code"><code>=IF(LENB(A1)&lt;&gt;LENB(JIS(A1)),&quot;全角変換が必要&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">JIS関数は半角カタカナを全角に変換します。変換前後のバイト数が変われば、半角カタカナが含まれている証拠です。</p>



<h3 class="wp-block-heading"><span id="toc17">TEXT+LENでゼロ埋めの桁数をチェック</span></h3>



<p class="wp-block-paragraph">商品コードや伝票番号は、先頭をゼロで埋めて桁を揃えることがよくあります。たとえば「5桁のコードに揃える」とき、桁が足りているかをLEN関数でチェックできます。</p>



<pre class="wp-block-code"><code>=IF(LEN(A1)&lt;5,&quot;桁不足&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">桁が足りないセルだけを洗い出せるので、ゼロ埋め前の確認に便利です。実際にゼロ埋めをするときは、<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>を使います。</p>



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



<p class="wp-block-paragraph">この数式なら「42」が「00042」になります。LEN関数で桁不足を検出し、TEXT関数で桁を揃えるという流れが、コード整形の定番パターンです。</p>



<p class="wp-block-paragraph">なお、数値の前方をゼロで埋めて表示だけ整えたい場合は、セルの表示形式を「00000」に設定する方法もあります。文字列として保存したいか、数値のまま表示だけ揃えたいかで使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc18">SUMPRODUCT+LENで複数セルの合計文字数を取得</span></h3>



<p class="wp-block-paragraph">複数セルの文字数を一度に合計したいとき、<a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a>とLEN関数を組み合わせると便利です。</p>



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



<p class="wp-block-paragraph">A1からA10の各セルの文字数を、すべて合算した結果が返ります。配列数式（Ctrl+Shift+Enter）は不要で、普通に入力するだけで動きます。アンケートの自由記述欄や、レポートの総文字数を集計するときに使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">CLEAN+TRIM+LENでデータクレンジング判定</span></h3>



<p class="wp-block-paragraph">外部システムから取り込んだデータには、目に見えない制御文字が紛れ込んでいることがあります。<a href="https://mashukabu.com/excel-function-howto-use-clean/">CLEAN関数</a>とTRIM関数を組み合わせて、クレンジングが必要なセルを一括で判定できます。</p>



<pre class="wp-block-code"><code>=IF(LEN(A1)&lt;&gt;LEN(CLEAN(TRIM(A1))),&quot;要クレンジング&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">TRIM関数で余分なスペースを除去し、CLEAN関数で印刷できない制御文字を除去します。それでもLENの結果が元と変わるなら、不要な文字が混入していたということです。</p>



<h2 class="wp-block-heading"><span id="toc20">文字列の一部を取り出すときのLEN活用</span></h2>



<p class="wp-block-paragraph">LEN関数は「文字数を数える」だけでなく、文字列の一部を取り出す関数と組み合わせると真価を発揮します。文字列の長さが一定でない場合の抽出に欠かせません。</p>



<h3 class="wp-block-heading"><span id="toc21">RIGHT+LENで末尾から可変長を取り出す</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>は末尾から指定文字数を取り出します。先頭の固定文字を除いた残り全部を取り出したいとき、LEN関数が活躍します。</p>



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



<p class="wp-block-paragraph">これはA1の先頭3文字を除いた残りを取り出す数式です。文字列の長さが行ごとに違っても、先頭3文字だけを確実に取り除けます。部署コードの接頭辞を外すときなどに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc22">MID+LENで途中から末尾まで取り出す</span></h3>



<p class="wp-block-paragraph">特定の位置から末尾までを取り出すときは、<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>とLEN関数を組み合わせます。</p>



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



<p class="wp-block-paragraph">MID関数の第3引数（取り出す文字数）に、元の文字数より大きい値を指定するとどうなるでしょう。末尾まで取り出されます。LEN(A1)を指定しておけば、末尾の位置を気にせず安全に取り出せますよ。</p>



<h3 class="wp-block-heading"><span id="toc23">FIND+LENで区切り文字より後ろを取り出す</span></h3>



<p class="wp-block-paragraph">「@より後ろ」のように区切り文字を基準に取り出すこともできます。メールアドレスのドメイン部分の抽出が代表例です。このときは<a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数</a>とLEN関数を組み合わせます。</p>



<pre class="wp-block-code"><code>=RIGHT(A1,LEN(A1)-FIND(&quot;@&quot;,A1))</code></pre>



<p class="wp-block-paragraph">FIND関数で「@」の位置を求め、全体の文字数からその位置を引きます。これで「@」より後ろの文字数が分かり、RIGHT関数で取り出せます。大文字小文字を区別せずに探したいときは、<a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数</a>に置き換えてください。</p>



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



<p class="wp-block-paragraph">LEN関数を使うとき、つまずきやすいポイントをQ&#038;A形式でまとめました。</p>



<h3 class="wp-block-heading"><span id="toc25">Q. LEN関数で改行は数えられますか？</span></h3>



<p class="wp-block-paragraph">A. はい、数えられます。セル内改行（Alt+Enter）は1文字としてカウントされます。改行の数を数えたいときは、SUBSTITUTE関数とCHAR(10)を組み合わせます。</p>



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



<p class="wp-block-paragraph">CHAR(10)はセル内改行を表します。これで1セル内の改行数（＝行数－1）が分かりますよ。</p>



<h3 class="wp-block-heading"><span id="toc26">Q. 全角と半角を別々に数えられますか？</span></h3>



<p class="wp-block-paragraph">A. はい、LENとLENBの組み合わせで計算できます。全角文字数は <code>=LENB(A1)-LEN(A1)</code>、半角文字数は <code>=LEN(A1)*2-LENB(A1)</code> で求められます。混在データの集計に便利です。</p>



<h3 class="wp-block-heading"><span id="toc27">Q. スペースを除いた文字数を数えるには？</span></h3>



<p class="wp-block-paragraph">A. SUBSTITUTE関数でスペースを削除してから数えます。半角スペースを除く場合はこう書きます。</p>



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



<p class="wp-block-paragraph">全角スペースも除きたい場合は、SUBSTITUTEを入れ子にして全角スペースも置換してください。</p>



<h3 class="wp-block-heading"><span id="toc28">Q. LENとLENBはどちらを使えばいいですか？</span></h3>



<p class="wp-block-paragraph">A. 通常の文字数カウントはLEN関数で問題ありません。LENB関数は、バイト数で文字数を管理するシステムへのデータ登録前チェックなど、特定の場面でのみ使います。迷ったらLEN関数を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc29">Q. Googleスプレッドシートでも同じように使えますか？</span></h3>



<p class="wp-block-paragraph">A. はい、GoogleスプレッドシートにもLEN関数があり、文字数のカウント方法は同じです。ただしLENB関数の挙動など細かな違いがあります。詳しくは<a href="https://mashukabu.com/spreadsheet-len-function/">スプレッドシートのLEN関数の使い方</a>を参照してください。</p>



<h2 class="wp-block-heading"><span id="toc30">よくあるエラーと似た関数の使い分け</span></h2>



<p class="wp-block-paragraph">LEN関数はシンプルな関数なので、エラーになるケースは限られます。よくある落とし穴と、混同しやすい関数をまとめて整理しますね。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>結果</th><th>対処法</th></tr></thead><tbody><tr><td>引数を省略した</td><td>#VALUE!エラー</td><td>セル参照または文字列を指定する</td></tr><tr><td>エラー値のセルを参照した</td><td>エラーがそのまま伝播</td><td><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲む</td></tr><tr><td>日付セルを参照した</td><td>シリアル値の桁数が返る</td><td>TEXT関数で表示形式を指定してから渡す</td></tr><tr><td>文字数が想定より多い</td><td>スペースや改行を含んでいる</td><td>TRIM関数やCLEAN関数で前処理する</td></tr><tr><td>数値が桁区切り表示</td><td>区切りカンマは数えない</td><td>LENは実体（数値）を数えるため見た目と異なる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「文字数が合わない」という問題は、目に見えないスペースや改行が混入していることがほとんどです。TRIM関数で余分なスペースを除去し、CLEAN関数で制御文字を除去してからLEN関数に渡してみてください。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>使いどころ</th></tr></thead><tbody><tr><td>LEN</td><td>文字数を返す</td><td>文字数カウント全般</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-lenb/">LENB関数</a></td><td>バイト数を返す</td><td>全角半角の区別が必要なとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a></td><td>文字列の一部を抽出</td><td>LENと組み合わせて末尾N文字を取得</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a></td><td>末尾から抽出</td><td>LENと組み合わせて可変長を取得</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数</a></td><td>文字の位置を返す</td><td>LENと組み合わせて区切り後を取得</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a></td><td>文字列を置換</td><td>LENと組み合わせて出現回数を数える</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a></td><td>余分なスペースを除去</td><td>LENと組み合わせて不要スペースの検出</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a></td><td>全角→半角に変換</td><td>LENBと組み合わせて半角統一チェック</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-jis/">JIS関数</a></td><td>半角→全角に変換</td><td>LENBと組み合わせて全角統一チェック</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-rept/">REPT関数</a></td><td>文字を繰り返す</td><td>LENと組み合わせて桁揃え・簡易バーグラフ</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a></td><td>条件に一致するセルを数える</td><td>セル単位のカウント（セル内の文字カウントはLEN）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特にSUBSTITUTE関数との出現回数カウント、TRIM関数とのスペース検出は実務で頻出です。セットで覚えておくと便利ですよ。</p>



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



<p class="wp-block-paragraph">LEN関数は、セルの文字数を数えるシンプルな関数です。引数は文字列1つだけなので、Excel初心者でもすぐに使いこなせます。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=LEN(A1)</code> でセルの文字数を取得</li><li><strong>LENBとの違い</strong>: LENは文字数、LENBはバイト数。通常はLENで十分</li><li><strong>文字数チェック</strong>: IF関数と組み合わせて入力制限を判定</li><li><strong>固定桁数チェック</strong>: <code>=IF(LEN(A1)=7,…)</code> で郵便番号などをバリデーション</li><li><strong>特定文字カウント</strong>: SUBSTITUTE関数と組み合わせて出現回数を取得</li><li><strong>可変長の抽出</strong>: RIGHT・MID・FIND関数と組み合わせて柔軟に取り出す</li><li><strong>全角半角判定</strong>: LENBとの差分、ASC/JIS関数との組み合わせで統一チェック</li><li><strong>データクレンジング</strong>: TRIM・CLEAN関数と組み合わせて問題セルを検出</li></ul>



<p class="wp-block-paragraph">まずは <code>=LEN(A1)</code> から試して、慣れてきたら実務パターンも活用してみてください。</p>



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



<h3 class="wp-block-heading"><span id="toc34">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-lenb/">LENB関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</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-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-rept/">REPT関数の使い方</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-jis/">JIS関数の使い方</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-sumproduct/">SUMPRODUCT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-len-function/">スプレッドシートのLEN関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-len/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
