<?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>関数の使い方 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e9%96%a2%e6%95%b0%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:53:26 +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>関数の使い方 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのREGEXEXTRACT関数の使い方｜正規表現で文字列を抽出</title>
		<link>https://mashukabu.com/spreadsheet-regexextract-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexextract-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:11 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4779</guid>

					<description><![CDATA[スプレッドシートのREGEXEXTRACT関数は、正規表現で文字列から必要な部分だけを抽出する関数です。メールアドレスからドメイン抽出、注文番号の取り出し、電話番号の分解など実務パターンや、MID+FINDとの比較、REGEXMATCH・REGEXREPLACEとの使い分けまで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「住所から都道府県だけ取り出したい」「メールアドレスの@以降を抜き出したい」と思ったことはありませんか？ <a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>と<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>を組み合わせれば文字の位置指定で抽出できます。でも、文字数がバラバラなデータには対応しきれないのが現実です。</p>



<p class="wp-block-paragraph">REGEXEXTRACT関数を使えば、<strong>正規表現のパターンに一致する部分だけ</strong>をピンポイントで抽出できます。この記事ではREGEXEXTRACT関数の基本から実務パターンまで丁寧に解説しますね。</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">REGEXEXTRACT関数とは？正規表現で文字列を抽出する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXEXTRACT関数の書き方（構文と引数）</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">REGEXEXTRACT関数の基本的な使い方</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">URLからドメイン名を抽出する</a></li><li><a href="#toc14" tabindex="0">住所から都道府県を抽出する</a></li><li><a href="#toc15" tabindex="0">電話番号からエリアコードを抽出する</a></li><li><a href="#toc16" tabindex="0">IFERROR関数と組み合わせてエラーを回避する</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">パターン不一致で#N/Aエラーになるケース</a></li></ol></li><li><a href="#toc21" tabindex="0">MID+FIND関数との比較</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・REGEXREPLACEとの使い分け</a><ol><li><a href="#toc26" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">たとえば「tanaka@example.com」から <code>@(.+)</code> のパターンで抽出すると「example.com」が返ります。@以降のドメイン部分だけを取り出せるわけです。</p>



<p class="wp-block-paragraph">REGEXEXTRACT関数は<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">REGEXEXTRACT関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(テキスト, 正規表現)</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></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は<strong>パターンに一致した文字列</strong>です。一致する部分がなければ#N/Aエラーになります。</p>



<h3 class="wp-block-heading"><span id="toc5">キャプチャグループ（括弧）の使い方</span></h3>



<p class="wp-block-paragraph">REGEXEXTRACT関数の正規表現に<strong>括弧 <code>()</code></strong> を使うと、括弧内に一致した部分だけを返します。これを「キャプチャグループ」と呼びます。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;@(.+)&quot;)
  → &quot;example.com&quot;（@の後ろだけを抽出）

=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;.+@(.+)&quot;)
  → &quot;example.com&quot;（同じ結果）

=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;(.+)@&quot;)
  → &quot;tanaka&quot;（@の前だけを抽出）</code></pre>



<p class="wp-block-paragraph">括弧なしの場合はパターン全体に一致した文字列を返します。括弧ありの場合は括弧内の部分だけを返します。この違いがポイントですよ。</p>



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



<h3 class="wp-block-heading"><span id="toc7">数字だけを抽出する</span></h3>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;[0-9]+&quot;)   → &quot;123&quot;（数字部分を抽出）
=REGEXEXTRACT(A2, &quot;[A-Z]+&quot;)   → &quot;ABC&quot;（英大文字部分を抽出）</code></pre>



<p class="wp-block-paragraph"><code>[0-9]+</code> は「1文字以上の数字」を意味します。最初に一致した部分が返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">特定のパターンを抽出する</span></h3>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0456&quot;（注文番号パターンを抽出）</code></pre>



<p class="wp-block-paragraph"><code>d{4}</code> は「数字がちょうど4桁」を意味します。パターン全体に一致する文字列がそのまま返ります。</p>



<h3 class="wp-block-heading"><span id="toc9">複数のキャプチャグループで分割抽出する</span></h3>



<p class="wp-block-paragraph">括弧を複数使うと、それぞれのグループが<strong>別々のセルに展開</strong>されます。</p>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;(.+)s(d{2,4}-d{1,4}-d{3,4})&quot;)
  → &quot;山田太郎&quot; と &quot;03-1234-5678&quot; が隣り合う2つのセルに展開</code></pre>



<p class="wp-block-paragraph">名前と電話番号を一度に分割できるのが便利ですね。複数グループの結果は横方向のセルに出力されます。</p>



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



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;Hello World&quot;, &quot;(?i)hello&quot;)
  → &quot;Hello&quot;（大文字小文字を無視してマッチ・抽出）</code></pre>



<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>=REGEXEXTRACT(A2, &quot;@(.+)&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>tanaka@example.com</td><td>example.com</td><td>@以降を抽出</td></tr><tr><td>sato@company.co.jp</td><td>company.co.jp</td><td>@以降を抽出</td></tr><tr><td>info@test.org</td><td>test.org</td><td>@以降を抽出</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ドメイン別に顧客を集計したいときに便利です。<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>と組み合わせれば、ドメイン別の件数集計もできます。</p>



<h3 class="wp-block-heading"><span id="toc13">URLからドメイン名を抽出する</span></h3>



<p class="wp-block-paragraph">Webサイトの一覧からドメイン名だけを取り出します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;https?://([^/]+)&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>https://www.example.com/page</td><td>www.example.com</td></tr><tr><td>http://blog.test.jp/article/123</td><td>blog.test.jp</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>https?://</code> は「httpまたはhttps」を意味します。<code>([^/]+)</code> は「スラッシュ以外の文字が1文字以上」です。</p>



<h3 class="wp-block-heading"><span id="toc14">住所から都道府県を抽出する</span></h3>



<p class="wp-block-paragraph">住所データから都道府県名だけを取り出します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;^(.{2,3}[都道府県])&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>東京都渋谷区神南1-2-3</td><td>東京都</td></tr><tr><td>神奈川県横浜市西区</td><td>神奈川県</td></tr><tr><td>大阪府大阪市北区</td><td>大阪府</td></tr><tr><td>北海道札幌市中央区</td><td>北海道</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>.{2,3}</code> は「任意の文字が2〜3文字」を意味します。「東京（2文字）」から「神奈川（3文字）」まで対応できます。</p>



<h3 class="wp-block-heading"><span id="toc15">電話番号からエリアコードを抽出する</span></h3>



<p class="wp-block-paragraph">電話番号の先頭部分（エリアコード）だけを取り出します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;^(0d{1,4})&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>03</td></tr><tr><td>090-1234-5678</td><td>090</td></tr><tr><td>0120-123-456</td><td>0120</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">IFERROR関数と組み合わせてエラーを回避する</span></h3>



<p class="wp-block-paragraph">REGEXEXTRACT関数はパターンに一致しないと#N/Aエラーを返します。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>で囲めばエラーを回避できます。</p>



<pre class="wp-block-code"><code>=IFERROR(REGEXEXTRACT(A2, &quot;@(.+)&quot;), &quot;ドメインなし&quot;)</code></pre>



<p class="wp-block-paragraph">パターンに一致しないセルには「ドメインなし」と表示されます。一覧表で使うときは必ずIFERRORで囲むのがおすすめですよ。</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(IFERROR(REGEXEXTRACT(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>#N/A</td><td>パターンに一致する部分がない</td><td>IFERRORで囲む。正規表現の見直しも確認</td></tr><tr><td>#VALUE!</td><td>テキストが数値</td><td><code>=REGEXEXTRACT(TEXT(A2,"0"), "パターン")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", "", REGEXEXTRACT(A2, "パターン"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr></tbody></table></figure>



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



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;d+&quot;)           → A2が数値だと #VALUE!
=REGEXEXTRACT(TEXT(A2, &quot;0&quot;), &quot;d+&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">パターン不一致で#N/Aエラーになるケース</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数</a>はパターン不一致でFALSEを返します。一方、REGEXEXTRACT関数は<strong>#N/Aエラー</strong>を返します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;abc&quot;, &quot;d+&quot;)  → #N/A（数字が含まれない）</code></pre>



<p class="wp-block-paragraph">一覧表で使うときは <code>=IFERROR(REGEXEXTRACT(A2, "パターン"), "")</code> のようにIFERRORで囲むのが定番です。</p>



<h2 class="wp-block-heading"><span id="toc21">MID+FIND関数との比較</span></h2>



<p class="wp-block-paragraph">文字列の抽出は<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>と<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>の組み合わせでもできます。REGEXEXTRACTとの違いを比較しましょう。</p>



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



<p class="wp-block-paragraph">メールアドレス「tanaka@example.com」から@以降を抽出する場合です。</p>



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



<pre class="wp-block-code"><code>=MID(A2, FIND(&quot;@&quot;, A2)+1, LEN(A2)-FIND(&quot;@&quot;, A2))</code></pre>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;@(.+)&quot;)</code></pre>



<p class="wp-block-paragraph">REGEXEXTRACT関数のほうがシンプルですね。MID+FINDは「@の位置を探す→その後ろから末尾までを取る」と2段階の計算が必要です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXEXTRACT</th><th>MID + FIND</th></tr></thead><tbody><tr><td>数式の長さ</td><td>短い</td><td>長い（3関数の組み合わせ）</td></tr><tr><td>パターン抽出</td><td>得意（正規表現で柔軟）</td><td>苦手（固定位置のみ）</td></tr><tr><td>可変長データ</td><td>対応できる</td><td>文字数計算が必要</td></tr><tr><td>複数パターン</td><td>1つの数式で対応</td><td>複数のFINDが必要</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>（左から3文字、5文字目から8文字）→ <a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>・<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>・<a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a>で十分</li><li><strong>パターンで抽出する</strong>（メールのドメイン、URLのパス）→ <strong>REGEXEXTRACT関数</strong>一択</li><li><strong>Excelとの互換性が必要</strong> → MID + FINDを使う</li></ul>



<p class="wp-block-paragraph">データの形式がバラバラなときほど、REGEXEXTRACT関数の威力を発揮します。</p>



<h2 class="wp-block-heading"><span id="toc25">REGEXMATCH・REGEXREPLACEとの使い分け</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>REGEXEXTRACT</td><td>パターンに一致する部分を<strong>抽出</strong></td><td>一致した文字列</td><td>ドメイン抽出、番号取り出し</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE</a></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>はREGEXEXTRACT、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。</p>



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



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



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXEXTRACT(テキスト, 正規表現)</code> で一致部分を返す</li><li><strong>キャプチャグループ</strong>: 括弧 <code>()</code> で囲んだ部分だけを抽出できる</li><li><strong>実務活用</strong>: ドメイン抽出・都道府県抽出・番号分解に最適</li><li><strong>エラー対策</strong>: パターン不一致は#N/Aエラー。IFERRORで囲むのが定番</li><li><strong>使い分け</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li></ul>



<p class="wp-block-paragraph">MID+FINDでは書ききれないパターン抽出が必要なとき、ぜひ活用してみてください。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめています。そちらも合わせてチェックしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexextract-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREGEXMATCH関数の使い方｜正規表現でパターン判定</title>
		<link>https://mashukabu.com/spreadsheet-regexmatch-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexmatch-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:06 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4777</guid>

					<description><![CDATA[スプレッドシートのREGEXMATCH関数は、正規表現でセルの文字列がパターンに一致するかをTRUE/FALSEで返す関数です。メールアドレス・電話番号の判定パターンや、REGEXEXTRACT・REGEXREPLACEとの使い分け、SEARCH/FINDとの違いまで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートでデータの入力チェックをしたいことはありませんか？「メールアドレスの形式になっているか」「電話番号が正しいパターンか」を確認したい場面は多いですよね。<a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>では単純な文字検索しかできません。複雑なパターンには対応しきれないのが現実です。</p>



<p class="wp-block-paragraph">REGEXMATCH関数を使えば、<strong>正規表現</strong>で文字列のパターンを判定できます。この記事ではREGEXMATCH関数の基本から実務パターンまで丁寧に解説します。REGEXEXTRACT・REGEXREPLACEとの使い分けもカバーしますね。</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">REGEXMATCH関数とは？正規表現でパターン判定する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXMATCH関数の書き方（構文と引数）</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">基本的な使い方</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></ol></li><li><a href="#toc10" tabindex="0">実務で使えるパターン集</a><ol><li><a href="#toc11" tabindex="0">メールアドレスの形式チェック</a></li><li><a href="#toc12" tabindex="0">電話番号の形式チェック</a></li><li><a href="#toc13" tabindex="0">郵便番号の形式チェック</a></li><li><a href="#toc14" tabindex="0">IF関数と組み合わせてラベルを付ける</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">数値セルで#VALUE!エラーになるケース</a></li><li><a href="#toc17" tabindex="0">正規表現の特殊文字をエスケープし忘れるケース</a></li></ol></li><li><a href="#toc18" tabindex="0">REGEXEXTRACT・REGEXREPLACEとの使い分け</a><ol><li><a href="#toc19" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc20" tabindex="0">SEARCH・FIND関数との違い</a><ol><li><a href="#toc21" tabindex="0">どれを使うべき？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">REGEXMATCH関数とは？正規表現でパターン判定する関数</span></h2>



<p class="wp-block-paragraph">REGEXMATCH関数は、セルの文字列が<strong>指定した正規表現パターンに一致するか</strong>をTRUE/FALSEで返す関数です。読み方は「レジェックスマッチ」。「Regex（正規表現）」+「Match（一致）」が語源です。</p>



<p class="wp-block-paragraph">たとえば「tanaka@example.com」というセルに対して、メールアドレスのパターンで検索すればTRUEが返ります。「tanaka」のように@がない文字列ならFALSEです。</p>



<p class="wp-block-paragraph">REGEXMATCH関数は<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です。</p>



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



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



<pre class="wp-block-code"><code>=REGEXMATCH(テキスト, 正規表現)</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></tbody></table></figure>



<p class="wp-block-paragraph">戻り値はTRUEまたはFALSEです。テキストの中にパターンと一致する部分が<strong>1箇所でもあればTRUE</strong>を返します。なければFALSEです。</p>



<h3 class="wp-block-heading"><span id="toc5">正規表現の基本記号</span></h3>



<p class="wp-block-paragraph">REGEXMATCH関数で使う正規表現の記号を押さえておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>例</th><th>マッチする文字列</th></tr></thead><tbody><tr><td><code>.</code></td><td>任意の1文字</td><td><code>a.c</code></td><td>abc, aXc, a1c</td></tr><tr><td><code>*</code></td><td>直前の文字が0回以上</td><td><code>ab*c</code></td><td>ac, abc, abbc</td></tr><tr><td><code>+</code></td><td>直前の文字が1回以上</td><td><code>ab+c</code></td><td>abc, abbc（acは不可）</td></tr><tr><td><code>?</code></td><td>直前の文字が0回か1回</td><td><code>ab?c</code></td><td>ac, abc</td></tr><tr><td><code>^</code></td><td>文字列の先頭</td><td><code>^東京</code></td><td>東京都、東京タワー</td></tr><tr><td><code>$</code></td><td>文字列の末尾</td><td><code>.com$</code></td><td>example.com</td></tr><tr><td><code>[abc]</code></td><td>いずれか1文字</td><td><code>[abc]</code></td><td>a, b, c</td></tr><tr><td><code>[0-9]</code></td><td>数字1文字</td><td><code>[0-9]+</code></td><td>123, 45</td></tr><tr><td><code>[a-zA-Z]</code></td><td>英字1文字</td><td><code>[a-zA-Z]+</code></td><td>Hello, abc</td></tr><tr><td><code>d</code></td><td>数字（[0-9]と同じ）</td><td><code>d{3}</code></td><td>123, 456</td></tr><tr><td><code>{n}</code></td><td>ちょうどn回</td><td><code>d{3}</code></td><td>123（12は不可）</td></tr><tr><td><code>{n,m}</code></td><td>n回以上m回以下</td><td><code>d{2,4}</code></td><td>12, 123, 1234</td></tr><tr><td>`</td><td>`</td><td>または</td><td>`東京</td><td>大阪`</td><td>東京、大阪</td></tr><tr><td><code>()</code></td><td>グループ化</td><td><code>(ab)+</code></td><td>ab, abab</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ピリオド <code>.</code> やプラス <code>+</code> など、正規表現で特別な意味を持つ文字があります。これらをそのまま検索したい場合は、前にバックスラッシュ <code></code> を付けてください。たとえばピリオドそのものを探すなら <code>.</code> と書きます。</p>



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



<h3 class="wp-block-heading"><span id="toc7">特定の文字列が含まれるかを判定する</span></h3>



<p class="wp-block-paragraph">セルA2に「東京都渋谷区」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;東京&quot;)   → TRUE（「東京」が含まれる）
=REGEXMATCH(A2, &quot;大阪&quot;)   → FALSE（「大阪」は含まれない）
=REGEXMATCH(A2, &quot;渋谷|新宿&quot;)  → TRUE（「渋谷」が含まれる）</code></pre>



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



<h3 class="wp-block-heading"><span id="toc8">数字が含まれるかを判定する</span></h3>



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



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;[0-9]&quot;)     → TRUE（数字が含まれる）
=REGEXMATCH(A2, &quot;^[0-9]+$&quot;)  → FALSE（全体が数字ではない）</code></pre>



<p class="wp-block-paragraph"><code>[0-9]</code> は「数字が1文字でもあるか」の判定です。<code>^[0-9]+$</code> にすると「すべて数字か」の判定になります。<code>^</code>（先頭）と <code>$</code>（末尾）で全体を囲むのがポイントですよ。</p>



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



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



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;tokyo&quot;)      → FALSE（小文字のtokyoは不一致）
=REGEXMATCH(A2, &quot;(?i)tokyo&quot;)  → TRUE（大文字小文字を無視してマッチ）</code></pre>



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



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



<h3 class="wp-block-heading"><span id="toc11">メールアドレスの形式チェック</span></h3>



<p class="wp-block-paragraph">入力されたデータがメールアドレスの形式になっているかを判定します。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$&quot;)</code></pre>



<p class="wp-block-paragraph">この正規表現は「英数字@英数字.英字2文字以上」のパターンです。完璧な検証ではありませんが、入力ミスの検出には十分使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td>tanaka@example.com</td><td>TRUE</td><td>正しい形式</td></tr><tr><td>tanaka@example</td><td>FALSE</td><td>ドメインにピリオドがない</td></tr><tr><td>tanaka.example.com</td><td>FALSE</td><td>@がない</td></tr><tr><td>@example.com</td><td>FALSE</td><td>ローカル部分がない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">電話番号の形式チェック</span></h3>



<p class="wp-block-paragraph">日本の電話番号パターン（ハイフンあり・なし両対応）を判定します。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;^0d{1,4}-?d{1,4}-?d{3,4}$&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>TRUE</td><td>固定電話（ハイフンあり）</td></tr><tr><td>09012345678</td><td>TRUE</td><td>携帯電話（ハイフンなし）</td></tr><tr><td>090-1234-5678</td><td>TRUE</td><td>携帯電話（ハイフンあり）</td></tr><tr><td>1234-5678</td><td>FALSE</td><td>先頭が0でない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">郵便番号の形式チェック</span></h3>



<p class="wp-block-paragraph">「123-4567」または「1234567」の形式を判定します。</p>



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



<p class="wp-block-paragraph"><code>-?</code> は「ハイフンが0回か1回」を意味します。ハイフンあり・なしの両方に対応できるのが便利ですね。</p>



<h3 class="wp-block-heading"><span id="toc14">IF関数と組み合わせてラベルを付ける</span></h3>



<p class="wp-block-paragraph">REGEXMATCH関数はTRUE/FALSEを返します。<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせれば条件分岐に使えます。</p>



<pre class="wp-block-code"><code>=IF(REGEXMATCH(A2, &quot;@&quot;), &quot;メールアドレス&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>と組み合わせれば、パターンに合致する行だけの抽出も可能です。</p>



<pre class="wp-block-code"><code>=FILTER(A2:B10, REGEXMATCH(A2:A10, &quot;東京|大阪&quot;))</code></pre>



<p class="wp-block-paragraph">この数式は、A列に「東京」または「大阪」を含む行だけをA:B列から抽出します。</p>



<h2 class="wp-block-heading"><span id="toc15">よくあるエラーと対処法</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>=REGEXMATCH(TEXT(A2,"0"), "パターン")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", FALSE, REGEXMATCH(A2, "パターン"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr><tr><td>期待と逆の結果</td><td>部分一致と完全一致の混同</td><td>完全一致なら <code>^パターン$</code> で囲む</td></tr></tbody></table></figure>



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



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



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;d+&quot;)           → A2が数値だと #VALUE!
=REGEXMATCH(TEXT(A2, &quot;0&quot;), &quot;d+&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="toc17">正規表現の特殊文字をエスケープし忘れるケース</span></h3>



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



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;.&quot;)     → 任意の1文字にマッチ（ほぼ常にTRUE）
=REGEXMATCH(A2, &quot;.&quot;)    → ピリオドそのものにマッチ</code></pre>



<h2 class="wp-block-heading"><span id="toc18">REGEXEXTRACT・REGEXREPLACEとの使い分け</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>REGEXMATCH</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><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE</a></td><td>パターンに一致する部分を<strong>置換</strong></td><td>置換後の文字列</td><td>電話番号のハイフン除去</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">具体例で比較</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>はREGEXMATCH、<strong>抽出</strong>はREGEXEXTRACT、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc20">SEARCH・FIND関数との違い</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>でも文字列検索はできます。REGEXMATCH関数との違いを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXMATCH</th><th>SEARCH</th><th>FIND</th></tr></thead><tbody><tr><td>戻り値</td><td>TRUE/FALSE</td><td>文字位置（数値）</td><td>文字位置（数値）</td></tr><tr><td>正規表現</td><td>使える</td><td>使えない</td><td>使えない</td></tr><tr><td>ワイルドカード</td><td>不要（正規表現で代替）</td><td><code>*</code> <code>?</code> が使える</td><td>使えない</td></tr><tr><td>大文字小文字</td><td>区別する（<code>(?i)</code> で無視可）</td><td>区別しない</td><td>区別する</td></tr><tr><td>不一致時</td><td>FALSE</td><td>#VALUE!エラー</td><td>#VALUE!エラー</td></tr><tr><td>Excel互換</td><td>なし（Sheets独自）</td><td>あり</td><td>あり</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>単純な文字検索</strong>（「東京」が含まれるか）→ <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> + ISNUMBER で十分</li><li><strong>パターン検索</strong>（「数字3桁-数字4桁」の形式か）→ <strong>REGEXMATCH関数</strong>一択</li><li><strong>大文字小文字を厳密に区別した検索</strong> → <a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a></li></ul>



<p class="wp-block-paragraph">正規表現が使えるかどうかが最大の違いです。「特定の文字があるか」だけならSEARCH/FINDで十分です。「パターンに合致するか」を判定したいならREGEXMATCH関数を選びましょう。</p>



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



<p class="wp-block-paragraph">REGEXMATCH関数は、正規表現でパターン判定ができるスプレッドシート独自の関数です。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXMATCH(テキスト, 正規表現)</code> でTRUE/FALSEを返す</li><li><strong>実務活用</strong>: メールアドレス・電話番号・郵便番号の入力チェックに最適</li><li><strong>使い分け</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li><li><strong>注意点</strong>: 数値セルはTEXT関数で文字列に変換してから渡す</li></ul>



<p class="wp-block-paragraph">SEARCH/FIND関数では対応できないパターン判定が必要なとき、ぜひ活用してみてください。正規表現は最初はとっつきにくいかもしれません。でも、この記事のパターンをコピーして使うだけでも業務効率がぐっと上がりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexmatch-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-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">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-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">スプレッドシートの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>スプレッドシートのSEARCH関数｜大文字小文字を無視して検索</title>
		<link>https://mashukabu.com/spreadsheet-search-function/</link>
					<comments>https://mashukabu.com/spreadsheet-search-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:29:36 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[ISNUMBER]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[ワイルドカード]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4283</guid>

					<description><![CDATA[スプレッドシートのSEARCH関数は、大文字と小文字を区別せずに文字の位置を返す関数です。ワイルドカード（*/?）が使えるのがFINDとの大きな違い。ISNUMBER+SEARCHでのフラグ立てや、LEFT・MIDとの組み合わせ実務パターンを解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで英語混じりのデータを扱っていると、表記のバラつきに悩みませんか？大文字・小文字が入り混じって、検索しづらいと感じたことはありませんか？手作業で目視チェックするのは非効率ですし、データが多いほどミスも増えますよね。</p>



<p class="wp-block-paragraph">SEARCH関数を使えば、大文字・小文字を気にせず文字の位置を検索できます。この記事ではスプレッドシートのSEARCH関数を基本から丁寧に解説します。ワイルドカード検索・実務での活用パターン・エラー対処法までカバーしますね。</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">SEARCH関数とは？大文字小文字を無視して文字位置を検索する関数</a><ol><li><a href="#toc2" tabindex="0">FINDとの違いをひとことで言うと</a></li></ol></li><li><a href="#toc3" tabindex="0">SEARCH関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">第3引数（開始位置）の使いどころ</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">英語混じりのデータで大文字小文字を無視して検索する</a></li><li><a href="#toc8" tabindex="0">開始位置を指定して2回目以降の出現位置を探す</a></li></ol></li><li><a href="#toc9" tabindex="0">SEARCH関数とFIND関数の違い</a><ol><li><a href="#toc10" tabindex="0">比較表（大文字小文字の区別・ワイルドカード・エラー時の挙動）</a></li><li><a href="#toc11" tabindex="0">どちらを使うか迷ったときの判断基準</a></li></ol></li><li><a href="#toc12" tabindex="0">ワイルドカードの使い方（*と?）</a><ol><li><a href="#toc13" tabindex="0">*（アスタリスク）で0文字以上の任意文字列にマッチ</a></li><li><a href="#toc14" tabindex="0">?（クエスチョン）で1文字だけにマッチ</a></li><li><a href="#toc15" tabindex="0">実務例：商品名のパターン検索</a></li></ol></li><li><a href="#toc16" tabindex="0">実務での活用例</a><ol><li><a href="#toc17" tabindex="0">ISNUMBER+SEARCHでキーワード含有フラグを立てる</a></li><li><a href="#toc18" tabindex="0">MID+SEARCHで特定区切り文字以降を取り出す</a></li><li><a href="#toc19" tabindex="0">IF+IFERRORで「含む／含まない」を安全に判定する</a></li></ol></li><li><a href="#toc20" tabindex="0">エラー（#VALUE!）の原因と対処法</a><ol><li><a href="#toc21" tabindex="0">エラーの原因</a></li><li><a href="#toc22" tabindex="0">IFERRORで安全に処理する</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">SEARCH関数とは？大文字小文字を無視して文字位置を検索する関数</span></h2>



<p class="wp-block-paragraph">SEARCH関数は、文字列の中から<strong>特定の文字が何文字目にあるかを返す</strong>関数です。読み方は「サーチ」。英語の「Search（検索する）」がそのまま名前になっています。</p>



<p class="wp-block-paragraph">たとえば「Apple」という文字列に対して「apple」で検索しても、ちゃんと1文字目と判定してくれます。<strong>大文字と小文字を区別しない</strong>のがSEARCH関数の最大の特徴です。</p>



<p class="wp-block-paragraph">さらに、ワイルドカード（<code>*</code> や <code>?</code>）を使った曖昧検索にも対応しています。「パターンに合う文字列がどこにあるか」を調べられるのは、SEARCH関数だけの強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">FINDとの違いをひとことで言うと</span></h3>



<p class="wp-block-paragraph">スプレッドシートには文字位置を調べる関数がもう1つあります。<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>です。</p>



<p class="wp-block-paragraph">違いはシンプルで、<strong>FINDは大文字小文字を区別する</strong>のに対し、<strong>SEARCHは区別しない</strong>という点です。さらにSEARCHはワイルドカードが使えます。詳しい比較は後のセクションで解説しますね。</p>



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



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



<pre class="wp-block-code"><code>=SEARCH(検索文字列, 対象テキスト, [開始位置])</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>何文字目から検索を始めるか（省略時は1）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は「検索文字列が最初に見つかった位置」の数値です。1文字目が「1」なので、0始まりではありません。</p>



<h3 class="wp-block-heading"><span id="toc5">第3引数（開始位置）の使いどころ</span></h3>



<p class="wp-block-paragraph">開始位置を指定すると、途中から検索を開始できます。同じ文字が複数回出てくるテキストで「2番目の出現位置」を調べたいときに便利です。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;-&quot;, &quot;ABC-001-RED&quot;)      → 4（最初のハイフン）
=SEARCH(&quot;-&quot;, &quot;ABC-001-RED&quot;, 5)   → 8（2番目のハイフン）</code></pre>



<p class="wp-block-paragraph">1回目のSEARCHで最初のハイフン位置（4）を取得します。その次の位置（5）から検索を再開する仕組みです。区切り文字が複数あるデータを処理するときに活躍しますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc7">英語混じりのデータで大文字小文字を無視して検索する</span></h3>



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



<pre class="wp-block-code"><code>=SEARCH(&quot;apple&quot;, A2)   → 1（大文字Aでも小文字aでもマッチ）
=SEARCH(&quot;JUICE&quot;, A2)   → 7（大文字で検索してもヒットする）
=SEARCH(&quot;e&quot;, A2)       → 5（最初のeは5文字目）</code></pre>



<p class="wp-block-paragraph">「apple」で検索しても「Apple」にマッチするのがポイントです。ユーザーが入力した表記がバラバラでも、SEARCH関数なら問題なく位置を取得できます。</p>



<p class="wp-block-paragraph">ただし<strong>全角と半角は区別される</strong>点に注意してください。全角の「Ａ」と半角の「A」は別の文字として扱われます。</p>



<h3 class="wp-block-heading"><span id="toc8">開始位置を指定して2回目以降の出現位置を探す</span></h3>



<p class="wp-block-paragraph">セルA2に「tanaka@example.com」が入っています。「a」が複数回出てくるデータで、2番目の「a」の位置を調べてみましょう。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;a&quot;, A2)       → 2（1番目のa）
=SEARCH(&quot;a&quot;, A2, 3)    → 4（2番目のa：3文字目以降で最初に見つかるa）
=SEARCH(&quot;a&quot;, A2, 5)    → 6（3番目のa：5文字目以降で最初に見つかるa）</code></pre>



<p class="wp-block-paragraph">開始位置を変えるだけで、同じ文字の出現位置を順番に取得できます。<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>と組み合わせれば、区切り文字間のテキスト抽出にも応用できますよ。</p>



<h2 class="wp-block-heading"><span id="toc9">SEARCH関数とFIND関数の違い</span></h2>



<h3 class="wp-block-heading"><span id="toc10">比較表（大文字小文字の区別・ワイルドカード・エラー時の挙動）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SEARCH</th><th>FIND</th></tr></thead><tbody><tr><td>大文字/小文字</td><td><strong>区別しない</strong></td><td>区別する</td></tr><tr><td>ワイルドカード</td><td><code>*</code>（任意の文字列）<code>?</code>（任意の1文字）が使える</td><td>使えない</td></tr><tr><td>見つからない場合</td><td>#VALUE!エラー</td><td>#VALUE!エラー</td></tr><tr><td>構文</td><td><code>=SEARCH(検索文字列, 対象テキスト, [開始位置])</code></td><td><code>=FIND(検索文字列, テキスト, [開始位置])</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラー時の挙動は同じです。どちらもIFERROR（エラー時に代替値を返す関数）で対処できます。</p>



<h3 class="wp-block-heading"><span id="toc11">どちらを使うか迷ったときの判断基準</span></h3>



<p class="wp-block-paragraph">使い分けのポイントは3つだけです。</p>



<ul class="wp-block-list"><li><strong>大文字小文字を区別したい</strong> → <a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a></li><li><strong>区別しなくてよい</strong> → SEARCH関数</li><li><strong>ワイルドカードで曖昧検索したい</strong> → SEARCH関数</li></ul>



<p class="wp-block-paragraph">実務では「@」「/」「-」のような記号の位置を調べる場面が多いです。記号には大文字小文字がないので、FINDでもSEARCHでも同じ結果になります。</p>



<p class="wp-block-paragraph">迷ったらSEARCHを選んでおくのがおすすめです。大文字小文字の違いでエラーになるリスクを避けられますよ。</p>



<h2 class="wp-block-heading"><span id="toc12">ワイルドカードの使い方（*と?）</span></h2>



<p class="wp-block-paragraph">SEARCH関数だけが使える機能がワイルドカードです。<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>ではワイルドカードは使えません。</p>



<h3 class="wp-block-heading"><span id="toc13">*（アスタリスク）で0文字以上の任意文字列にマッチ</span></h3>



<p class="wp-block-paragraph"><code>*</code> は「何文字でもOK（0文字以上）」を意味します。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;A*Z&quot;, &quot;A123Z-test&quot;)   → 1（AではじまりZで終わるパターンにマッチ）
=SEARCH(&quot;re*t&quot;, &quot;report&quot;)      → 1（reではじまりtで終わるパターン）</code></pre>



<p class="wp-block-paragraph">「A*Z」は「Aで始まってZで終わる任意の文字列」です。間に何文字あってもマッチします。</p>



<h3 class="wp-block-heading"><span id="toc14">?（クエスチョン）で1文字だけにマッチ</span></h3>



<p class="wp-block-paragraph"><code>?</code> は「ちょうど1文字」を意味します。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;A?C&quot;, &quot;ABC-test&quot;)    → 1（AとCの間に1文字あるパターン）
=SEARCH(&quot;A??C&quot;, &quot;AB1C-test&quot;)  → 1（AとCの間に2文字あるパターン）</code></pre>



<p class="wp-block-paragraph"><code>?</code> を並べた数だけ、任意の文字にマッチします。文字数が決まっている場合に便利です。</p>



<p class="wp-block-paragraph">なお、リテラルの <code><em></code> や <code>?</code> そのものを検索したいときは、チルダ（<code>~</code>）でエスケープします。<code>~</em></code> で「*という文字自体」を検索できますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">実務例：商品名のパターン検索</span></h3>



<p class="wp-block-paragraph">商品コードが「先頭2文字がカテゴリ＋数字3桁」のような形式で、パターンにマッチするか調べたい場面を考えてみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>EL-001 電子部品</td><td><code>=ISNUMBER(SEARCH("EL-???", A2))</code></td><td>TRUE</td></tr><tr><td>EL-12 電子部品</td><td><code>=ISNUMBER(SEARCH("EL-???", A3))</code></td><td>FALSE</td></tr><tr><td>MK-500 機械部品</td><td><code>=ISNUMBER(SEARCH("EL-???", A4))</code></td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ISNUMBER（値が数値かどうか判定する関数）でSEARCHを囲むと、TRUE / FALSEで判定できます。「EL-???」は「EL-の後ろにちょうど3文字」を意味するので、「EL-12」のように2文字だとFALSEになります。</p>



<h2 class="wp-block-heading"><span id="toc16">実務での活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc17">ISNUMBER+SEARCHでキーワード含有フラグを立てる</span></h3>



<p class="wp-block-paragraph">データの中に特定のキーワードが含まれるかどうか判定するパターンです。分類やフラグ付けに使えます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(SEARCH(&quot;東京&quot;, A2)), &quot;含む&quot;, &quot;含まない&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（住所）</th><th>結果</th></tr></thead><tbody><tr><td>東京都新宿区</td><td>含む</td></tr><tr><td>大阪府大阪市</td><td>含まない</td></tr><tr><td>東京都渋谷区</td><td>含む</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEARCH関数は文字列が見つかると位置（数値）を返します。ISNUMBERで「数値が返ったか」を判定すれば、含む・含まないの振り分けができます。大文字小文字を気にしないので、英語キーワードの判定にも安心して使えますよ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/01_result_isnumber-search.png" alt="01 result isnumber search" /></figure>



<h3 class="wp-block-heading"><span id="toc18">MID+SEARCHで特定区切り文字以降を取り出す</span></h3>



<p class="wp-block-paragraph">セルA2に「tanaka@example.com」が入っています。@より後ろの「example.com」を取り出してみましょう。</p>



<pre class="wp-block-code"><code>=MID(A2, SEARCH(&quot;@&quot;, A2)+1, LEN(A2))</code></pre>



<ol class="wp-block-list"><li><code>SEARCH("@", A2)</code> → @は7文字目</li><li>7 + 1 = 8（@の次の位置）</li><li><code>LEN(A2)</code> → 19（十分大きい文字数を指定）</li><li><code>MID(A2, 8, 19)</code> → 8文字目から末尾までで「example.com」</li></ol>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-search-function/02_result_mid-search.png/">_images/spreadsheet-search-function/02_result_mid-search.png</a></p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>の第3引数にLEN（文字数を返す関数）で全体の長さを渡しておくと、区切り文字以降すべてを取得できます。</p>



<p class="wp-block-paragraph">逆に@より前を取り出すなら、<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>を使います。</p>



<pre class="wp-block-code"><code>=LEFT(A2, SEARCH(&quot;@&quot;, A2)-1)  → 「tanaka」</code></pre>



<h3 class="wp-block-heading"><span id="toc19">IF+IFERRORで「含む／含まない」を安全に判定する</span></h3>



<p class="wp-block-paragraph">SEARCH関数は文字列が見つからないと#VALUE!エラーを返します。エラーを想定してIFERRORで囲むのが実務の定番です。</p>



<pre class="wp-block-code"><code>=IF(IFERROR(SEARCH(&quot;pdf&quot;, A2), 0) &gt; 0, &quot;PDF&quot;, &quot;その他&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（ファイル名）</th><th>結果</th></tr></thead><tbody><tr><td>report.pdf</td><td>PDF</td></tr><tr><td>data.xlsx</td><td>その他</td></tr><tr><td>manual.PDF</td><td>PDF</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEARCH関数は大文字小文字を区別しないので、「pdf」で検索しても「.PDF」にマッチします。拡張子の表記ゆれを気にせず判定できるのがうれしいポイントですよ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/03_result_iferror-search.png" alt="03 result iferror search" /></figure>



<h2 class="wp-block-heading"><span id="toc20">エラー（#VALUE!）の原因と対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc21">エラーの原因</span></h3>



<p class="wp-block-paragraph">SEARCH関数で#VALUE!エラーが出る原因は主に2つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>検索文字列が見つからない</td><td><code>=SEARCH("@", "tanaka")</code></td><td>テキストに@が存在しない</td></tr><tr><td>開始位置がテキスト長を超えている</td><td><code>=SEARCH("a", "abc", 10)</code></td><td>3文字しかないのに10文字目から検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>と違い、大文字小文字の不一致ではエラーになりません。しかし、そもそも検索文字列がテキスト内に存在しないケースは起こり得ます。</p>



<h3 class="wp-block-heading"><span id="toc22">IFERRORで安全に処理する</span></h3>



<p class="wp-block-paragraph">IFERRORでラップしておけば、エラーの代わりに任意の値を返せます。</p>



<pre class="wp-block-code"><code>=IFERROR(SEARCH(&quot;@&quot;, A2), 0)</code></pre>



<p class="wp-block-paragraph">@が見つかればその位置を、見つからなければ0を返します。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>との組み合わせでも同じパターンが使えます。</p>



<pre class="wp-block-code"><code>=IFERROR(MID(A2, SEARCH(&quot;@&quot;, A2)+1, LEN(A2)), &quot;メールアドレスではありません&quot;)</code></pre>



<p class="wp-block-paragraph">実務データは書式がバラバラなことも多いです。SEARCH関数を使うときはIFERRORとセットで覚えておくと安心ですよ。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=SEARCH(検索文字列, 対象テキスト, [開始位置])</code></td></tr><tr><td>戻り値</td><td>検索文字列が最初に見つかった位置（1始まり）</td></tr><tr><td>大文字/小文字</td><td>区別しない（FINDは区別する）</td></tr><tr><td>ワイルドカード</td><td><code>*</code>（任意の文字列）<code>?</code>（任意の1文字）が使える</td></tr><tr><td>全角/半角</td><td>区別する（全角「Ａ」と半角「A」は別文字）</td></tr><tr><td>見つからない場合</td><td>#VALUE!エラー（IFERRORで対処）</td></tr><tr><td>開始位置省略</td><td>先頭（1文字目）から検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEARCH関数は、大文字小文字を気にせず検索できるのが最大の強みです。英語混じりのデータやユーザー入力のように表記ゆれが多いデータには、<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>よりSEARCHが向いています。</p>



<p class="wp-block-paragraph">さらにワイルドカードを使えば、パターンマッチングにも対応できます。まずは「ISNUMBER+SEARCHで含有チェック」というお手軽パターンから試してみてください。慣れてきたらワイルドカード検索や<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>との組み合わせにも挑戦してみましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-search-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-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">スプレッドシートの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>スプレッドシートのMID関数の使い方｜途中の文字を取り出す方法</title>
		<link>https://mashukabu.com/spreadsheet-mid-function/</link>
					<comments>https://mashukabu.com/spreadsheet-mid-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 14:38:12 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[LEFT関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[RIGHT関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4244</guid>

					<description><![CDATA[スプレッドシートのMID関数で、文字列の途中から指定した文字数を取り出す方法を解説。商品コードや日付の分割など実務例も紹介。LEFT・RIGHTとの使い分けもわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートのMID関数の使い方で悩んでいませんか？商品コードの中間部分だけ、日付の月や日だけを取り出したい場面はよくありますよね。</p>



<p class="wp-block-paragraph">でも、文字列の途中を手作業で切り出すのは大変です。データ件数が増えるほど、時間もミスも増えていきます。</p>



<p class="wp-block-paragraph">MID関数を使えばこの作業が一瞬で完了します。この記事では基本構文から実務での活用例、エラー対処法まで丁寧に解説します。</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">MID関数とは？スプレッドシートで途中の文字を取り出す基本構文</a><ol><li><a href="#toc2" tabindex="0">書き方（構文）と引数の意味</a></li><li><a href="#toc3" tabindex="0">基本的な使用例</a></li></ol></li><li><a href="#toc4" tabindex="0">実務でよく使うMID関数の活用例</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">FIND関数と組み合わせて可変長の切り出しをする（応用）</a><ol><li><a href="#toc9" tabindex="0">メールアドレスからドメインを取り出す</a></li><li><a href="#toc10" tabindex="0">2つの区切り文字の間を取り出す</a></li><li><a href="#toc11" tabindex="0">IFERRORでエラーを防ぐ</a></li></ol></li><li><a href="#toc12" tabindex="0">LEFT・RIGHT・MIDの違いと使い分け</a><ol><li><a href="#toc13" tabindex="0">3関数の比較一覧</a></li><li><a href="#toc14" tabindex="0">どれを使うか迷ったときの判断フレーム</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">開始位置に0やマイナスを指定すると#VALUE!エラー</a></li><li><a href="#toc17" tabindex="0">文字数にマイナスを指定すると#VALUE!エラー</a></li><li><a href="#toc18" tabindex="0">開始位置が文字列の長さを超えると空文字列</a></li><li><a href="#toc19" tabindex="0">文字数が残りの文字数を超えても大丈夫</a></li><li><a href="#toc20" tabindex="0">結果が文字列になる（数値として使えない）</a></li></ol></li><li><a href="#toc21" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MID関数とは？スプレッドシートで途中の文字を取り出す基本構文</span></h2>



<p class="wp-block-paragraph">MID関数は、セルの文字列を<strong>任意の位置から指定した文字数だけ取り出す</strong>関数です。先頭でも末尾でもなく「途中」から切り出せるのが特徴ですよ。</p>



<p class="wp-block-paragraph">「MID（ミッド）」は英語の「middle（中間）」が語源です。文字列の中間部分を取り出す動作を表しています。ExcelとGoogleスプレッドシートで完全互換なので、どちらでも使えます。</p>



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



<pre class="wp-block-code"><code>=MID(文字列, 開始位置, 文字数)</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>取り出しを始める位置（先頭が1）</td></tr><tr><td>文字数</td><td>必須</td><td>取り出す文字数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LEFT関数やRIGHT関数と違い、3つの引数はすべて必須です。省略するとエラーになるので注意してください。</p>



<p class="wp-block-paragraph">開始位置は先頭の文字を「1」として数えます。たとえば「ABCDE」の「C」は3文字目なので、開始位置は<code>3</code>です。</p>



<p class="wp-block-paragraph">全角・半角は関係ありません。どちらも1文字=1文字としてカウントされます。バイト数で計算したい場合はMIDB関数を使いましょう。</p>



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



<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>



<p class="wp-block-paragraph">セルA1に「東京都新宿区西新宿」と入力されているとします。</p>



<pre class="wp-block-code"><code>=MID(A1, 4, 3)  → 「新宿区」
=MID(A1, 1, 3)  → 「東京都」（先頭からならLEFTでもOK）
=MID(A1, 7, 3)  → 「西新宿」</code></pre>



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



<p class="wp-block-paragraph">何文字目から何文字取り出すかを指定するだけです。シンプルですね。</p>



<h2 class="wp-block-heading"><span id="toc4">実務でよく使うMID関数の活用例</span></h2>



<p class="wp-block-paragraph">MID関数が実際の業務でどう役立つか、よく使うパターンを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">商品コードの中間部分を取り出す</span></h3>



<p class="wp-block-paragraph">「A-1234-BK」のような商品コードで、中央の数字部分だけ取り出したい場面です。</p>



<pre class="wp-block-code"><code>=MID(A2, 3, 4)  → 「1234」</code></pre>



<p class="wp-block-paragraph">3文字目から4文字を取り出しています。コードの形式が決まっていれば、これだけで完了です。</p>



<p class="wp-block-paragraph">取り出した数字を計算に使いたい場合はVALUE関数で変換しましょう。MID関数の結果は常に文字列として返ります。</p>



<pre class="wp-block-code"><code>=VALUE(MID(A2, 3, 4))  → 1234（数値）</code></pre>



<h3 class="wp-block-heading"><span id="toc6">日付文字列から月や日を取り出す</span></h3>



<p class="wp-block-paragraph">「2026-03-18」のような日付文字列から、月や日だけを取り出す例です。</p>



<pre class="wp-block-code"><code>=MID(A2, 6, 2)  → 「03」（月の部分）
=MID(A2, 9, 2)  → 「18」（日の部分）</code></pre>



<p class="wp-block-paragraph">年はLEFT関数、日はRIGHT関数でも取れます。でも月のように「途中にある文字」はMID関数の出番ですね。</p>



<h3 class="wp-block-heading"><span id="toc7">電話番号の市内局番を取り出す</span></h3>



<p class="wp-block-paragraph">「03-1234-5678」のような電話番号から市内局番を取り出す例です。</p>



<pre class="wp-block-code"><code>=MID(A2, 4, 4)  → 「1234」</code></pre>



<p class="wp-block-paragraph">4文字目から4文字を取り出しています。ハイフン位置が固定の場合はシンプルに書けますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ハイフンの位置が固定でない場合は、SUBSTITUTE関数でハイフンを除去してからMIDで取り出すと確実です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">FIND関数と組み合わせて可変長の切り出しをする（応用）</span></h2>



<p class="wp-block-paragraph">MID関数は開始位置と文字数を固定で指定します。でも「区切り文字の位置がデータによって違う」ケースもありますよね。</p>



<p class="wp-block-paragraph">そこで便利なのがFIND関数との組み合わせです。FINDは指定した文字が何文字目にあるかを返します。大文字と小文字を区別して検索する関数です。区別が不要な場合はSEARCH関数を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc9">メールアドレスからドメインを取り出す</span></h3>



<p class="wp-block-paragraph">メールアドレスの<code>@</code>より後ろのドメイン部分を取り出す例です。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、分解すると簡単です。</p>



<ol class="wp-block-list"><li><code>FIND("@", A1)</code> で <code>@</code> が何文字目かを取得する</li><li>そこに1を足して「@の次の文字位置」を計算する</li><li>文字数にLEN(A1)で全体の長さを指定する</li></ol>



<p class="wp-block-paragraph">文字数を大きめに指定しても、末尾までの文字が返るだけです。エラーにはなりません。</p>



<p class="wp-block-paragraph">「tanaka@example.com」なら<code>@</code>は7文字目です。8文字目から残り全部を取り出すので、結果は「example.com」になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LEFT関数を使えば、逆に@より前（ユーザー名）を取り出せます。詳しくは「<a href="https://mashukabu.com/spreadsheet-left-function/">スプレッドシートのLEFT関数の使い方｜左から文字取得</a>」で解説しています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">2つの区切り文字の間を取り出す</span></h3>



<p class="wp-block-paragraph">「営業部-田中太郎-東京」のようなデータがあるとします。1つ目と2つ目のハイフンの間にある「田中太郎」を取り出してみましょう。</p>



<pre class="wp-block-code"><code>=MID(A1, FIND(&quot;-&quot;,A1)+1, FIND(&quot;-&quot;,A1,FIND(&quot;-&quot;,A1)+1)-FIND(&quot;-&quot;,A1)-1)</code></pre>



<p class="wp-block-paragraph">数式が長く見えますが、やっていることは3ステップです。</p>



<ol class="wp-block-list"><li>1つ目の<code>-</code>の位置を取得する</li><li>2つ目の<code>-</code>の位置を取得する（第3引数で検索開始位置を指定）</li><li>2つの位置の差から取り出す文字数を計算する</li></ol>



<p class="wp-block-paragraph">これはMID関数ならではの使い方です。LEFT関数やRIGHT関数では対応できません。</p>



<h3 class="wp-block-heading"><span id="toc11">IFERRORでエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">対象セルに区切り文字がない場合、FINDはエラーを返します。エラーを防ぐにはIFERRORでラップしましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(MID(A1, FIND(&quot;-&quot;,A1)+1, LEN(A1)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">区切り文字があれば結果を、なければ「該当なし」を返します。実務データは必ずしもきれいとは限りません。IFERRORパターンは覚えておくと安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc12">LEFT・RIGHT・MIDの違いと使い分け</span></h2>



<p class="wp-block-paragraph">文字列を取り出す関数にはMID以外に「LEFT」と「RIGHT」があります。どれも文字列の一部を切り出す関数ですが、取り出す位置が異なります。</p>



<h3 class="wp-block-heading"><span id="toc13">3関数の比較一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>取り出す位置</th><th>構文</th><th>使用例</th></tr></thead><tbody><tr><td>LEFT</td><td>左端（先頭）から</td><td><code>=LEFT(文字列, 文字数)</code></td><td>都道府県名、カテゴリコード</td></tr><tr><td>RIGHT</td><td>右端（末尾）から</td><td><code>=RIGHT(文字列, 文字数)</code></td><td>電話番号末尾4桁、拡張子</td></tr><tr><td>MID</td><td>任意の開始位置から</td><td><code>=MID(文字列, 開始位置, 文字数)</code></td><td>商品コードの中間部分、日付の月</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数の数が違う点に注意してください。LEFTとRIGHTは2引数（文字数は省略可）ですが、MIDは3引数すべて必須です。</p>



<h3 class="wp-block-heading"><span id="toc14">どれを使うか迷ったときの判断フレーム</span></h3>



<p class="wp-block-paragraph">取り出したい文字がどこにあるかで選べます。</p>



<ul class="wp-block-list"><li><strong>先頭から数えたほうが早い</strong> → <a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a></li><li><strong>末尾から数えたほうが早い</strong> → <a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a></li><li><strong>真ん中あたりにある</strong> → MID関数</li></ul>



<p class="wp-block-paragraph">「2026-03-18」から年を取りたいなら先頭4文字なのでLEFTです。日だけなら末尾2文字なのでRIGHTになります。月は途中にあるのでMIDの出番ですね。</p>



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



<p class="wp-block-paragraph">MID関数で思ったとおりに動かないときのパターンを解説します。</p>



<h3 class="wp-block-heading"><span id="toc16">開始位置に0やマイナスを指定すると#VALUE!エラー</span></h3>



<p class="wp-block-paragraph">開始位置は1以上の整数を指定する必要があります。0やマイナスの値は受け付けません。</p>



<pre class="wp-block-code"><code>=MID(A1, 0, 3)   → #VALUE!エラー
=MID(A1, -1, 3)  → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph">LEFT関数は<code>LEFT(A1, 0)</code>で空文字を返します。でもMIDは開始位置に0を指定できません。この違いに注意してください。</p>



<h3 class="wp-block-heading"><span id="toc17">文字数にマイナスを指定すると#VALUE!エラー</span></h3>



<p class="wp-block-paragraph">文字数もマイナスの値は指定できません。0は指定できますが、空文字列が返ります。</p>



<pre class="wp-block-code"><code>=MID(A1, 2, -1)  → #VALUE!エラー
=MID(A1, 2, 0)   → &quot;&quot;（空文字列）</code></pre>



<h3 class="wp-block-heading"><span id="toc18">開始位置が文字列の長さを超えると空文字列</span></h3>



<p class="wp-block-paragraph">開始位置が文字列の文字数より大きい場合は空文字列が返ります。エラーにはなりません。</p>



<pre class="wp-block-code"><code>=MID(&quot;Hello&quot;, 10, 3)  → &quot;&quot;（空文字列）</code></pre>



<h3 class="wp-block-heading"><span id="toc19">文字数が残りの文字数を超えても大丈夫</span></h3>



<p class="wp-block-paragraph">文字数を大きく指定しても、末尾までの文字が返るだけです。エラーにはなりません。</p>



<pre class="wp-block-code"><code>=MID(&quot;Hello&quot;, 3, 100)  → 「llo」</code></pre>



<p class="wp-block-paragraph">この仕様はFIND関数との組み合わせで活用します。末尾までの正確な文字数がわからなくても、LEN関数で全体の長さを指定すれば確実です。</p>



<h3 class="wp-block-heading"><span id="toc20">結果が文字列になる（数値として使えない）</span></h3>



<p class="wp-block-paragraph">MID関数の結果は常に文字列型です。数字を取り出しても、そのままでは計算に使えません。</p>



<pre class="wp-block-code"><code>=MID(&quot;A-1234-BK&quot;, 3, 4)      → 「1234」（文字列）
=VALUE(MID(&quot;A-1234-BK&quot;, 3, 4)) → 1234（数値）</code></pre>



<p class="wp-block-paragraph">合計や比較に使うときはVALUE関数で変換してくださいね。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=MID(文字列, 開始位置, 文字数)</code></td></tr><tr><td>引数</td><td>3つすべて必須（LEFT/RIGHTと異なり省略不可）</td></tr><tr><td>開始位置</td><td>先頭の文字が1（0はエラー）</td></tr><tr><td>文字数超過</td><td>末尾までの文字を返す（エラーにならない）</td></tr><tr><td>開始位置超過</td><td>空文字列を返す（エラーにならない）</td></tr><tr><td>全角・半角</td><td>どちらも1文字としてカウント</td></tr><tr><td>結果の型</td><td>常に文字列（数値にはVALUE関数で変換）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">MID関数は文字列操作の三本柱の1つです。まずは「何文字目から何文字取り出す」というシンプルな使い方から試してみてください。</p>



<p class="wp-block-paragraph">慣れてきたらFIND関数との組み合わせにも挑戦しましょう。区切り文字の位置に応じた柔軟な切り出しができるようになると、実務でのデータ整理の幅が一気に広がりますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数（先頭から切り出し）</a>や<a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数（末尾から切り出し）</a>と合わせて、文字列操作の三本柱として活用してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-mid-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのFIND関数の使い方｜文字位置を検索する方法</title>
		<link>https://mashukabu.com/spreadsheet-find-function/</link>
					<comments>https://mashukabu.com/spreadsheet-find-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 14:38:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[LEFT関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[RIGHT関数]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4242</guid>

					<description><![CDATA[スプレッドシートのFIND関数で、文字列内の特定の文字位置を検索する方法を解説。SEARCHとの違い（大文字小文字区別）やMID・LEFTとの組み合わせ、#VALUE!エラーの対処法もわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「@マークは何文字目にある？」「スラッシュの位置を調べたい」と思ったことはありませんか？文字列から特定の文字の位置を手作業で数えるのは面倒ですし、データが何百行もあると現実的ではないですよね。</p>



<p class="wp-block-paragraph">FIND関数を使えば、特定の文字が何文字目にあるかを一発で調べられます。この記事ではスプレッドシートでのFIND関数の基本から、LEFT・MID関数との組み合わせ応用、エラー対処法まで丁寧に解説します。</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">FIND関数とは？スプレッドシートで文字の位置を検索する関数</a></li><li><a href="#toc2" tabindex="0">FIND関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">第3引数（開始位置）の使いどころ</a></li></ol></li><li><a href="#toc5" tabindex="0">基本的な使い方</a></li><li><a href="#toc6" tabindex="0">FIND関数とSEARCH関数の違い</a><ol><li><a href="#toc7" tabindex="0">比較表</a></li><li><a href="#toc8" tabindex="0">どちらを使うか迷ったときの判断基準</a></li></ol></li><li><a href="#toc9" tabindex="0">実務での活用例（LEFT・MID・RIGHTとの組み合わせ）</a><ol><li><a href="#toc10" tabindex="0">メールアドレスの@より前を取り出す（LEFT + FIND）</a></li><li><a href="#toc11" tabindex="0">スラッシュ区切りの日付から年月日を分離する（MID + FIND）</a></li><li><a href="#toc12" tabindex="0">ファイル名から拡張子を取り出す（RIGHT + LEN + FIND）</a></li></ol></li><li><a href="#toc13" tabindex="0">エラー（#VALUE!）の原因と対処法</a><ol><li><a href="#toc14" tabindex="0">エラーの原因</a></li><li><a href="#toc15" tabindex="0">IFERRORで安全に処理する</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">FIND関数は、文字列の中から<strong>特定の文字が何文字目にあるかを返す</strong>関数です。読み方は「ファインド」。英語の「Find（見つける）」がそのまま名前になっています。</p>



<p class="wp-block-paragraph">たとえば「tanaka@example.com」の中で「@」は7文字目にあります。FIND関数はこの「7」という数値を返してくれます。</p>



<p class="wp-block-paragraph">最大の特徴は<strong>大文字と小文字を区別する</strong>ことです。「A」と「a」を別の文字として扱います。区別しない検索にはSEARCH関数を使います。この違いについては後ほど詳しく解説しますね。</p>



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



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



<pre class="wp-block-code"><code>=FIND(検索文字列, テキスト, [開始位置])</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>何文字目から検索を始めるか（省略時は1）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は「検索文字列が最初に見つかった位置」の数値です。1文字目が「1」なので、0始まりではありません。</p>



<h3 class="wp-block-heading"><span id="toc4">第3引数（開始位置）の使いどころ</span></h3>



<p class="wp-block-paragraph">開始位置を指定すると、途中から検索を開始できます。同じ文字が複数回出てくるテキストで「2番目の出現位置」を調べたいときに使います。</p>



<pre class="wp-block-code"><code>=FIND(&quot;-&quot;, &quot;ABC-001-RED&quot;)      → 4（最初のハイフン）
=FIND(&quot;-&quot;, &quot;ABC-001-RED&quot;, 5)   → 8（2番目のハイフン）</code></pre>



<p class="wp-block-paragraph">1回目のFINDで最初のハイフン位置（4）を取得し、その次の位置（5）から検索を再開する仕組みです。<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>との組み合わせで区切り文字間の文字を取り出すときに活躍しますよ。</p>



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



<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>



<p class="wp-block-paragraph">セルA2に「tanaka@example.com」が入っているとします。</p>



<pre class="wp-block-code"><code>=FIND(&quot;@&quot;, A2)        → 7（@は7文字目）
=FIND(&quot;example&quot;, A2)  → 8（&quot;example&quot;は8文字目から始まる）
=FIND(&quot;a&quot;, A2)        → 2（最初の小文字&quot;a&quot;は2文字目）</code></pre>



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



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



<p class="wp-block-paragraph">検索文字列は1文字でも複数文字でもOKです。複数文字の場合は先頭文字の位置を返します。</p>



<p class="wp-block-paragraph">大文字小文字を区別するので、<code>=FIND("T", A2)</code> は「T」が存在しないため#VALUE!エラーになります。先頭は小文字の「t」だからです。</p>



<h2 class="wp-block-heading"><span id="toc6">FIND関数とSEARCH関数の違い</span></h2>



<p class="wp-block-paragraph">スプレッドシートには文字位置を調べる関数が2つあります。FINDとSEARCHです。用途に合わせて使い分けましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>FIND</th><th>SEARCH</th></tr></thead><tbody><tr><td>大文字/小文字</td><td><strong>区別する</strong></td><td>区別しない</td></tr><tr><td>ワイルドカード</td><td>使えない</td><td><code>*</code>（任意の文字列）<code>?</code>（任意の1文字）が使える</td></tr><tr><td>用途</td><td>完全一致で正確に検索</td><td>あいまい検索・大文字小文字を気にしない場合</td></tr><tr><td>構文</td><td><code>=FIND(検索文字列, テキスト, [開始位置])</code></td><td><code>=SEARCH(検索文字列, テキスト, [開始位置])</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">どちらを使うか迷ったときの判断基準</span></h3>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>大文字小文字を区別したい</strong> → FIND</li><li><strong>区別しなくてよい</strong> → SEARCH</li><li><strong>ワイルドカードで曖昧検索したい</strong> → SEARCH</li></ul>



<p class="wp-block-paragraph">実務では「@」「/」「-」のような記号の位置を調べる場面が多いです。記号には大文字小文字がないので、FINDでもSEARCHでも同じ結果になります。どちらを使っても大丈夫ですよ。</p>



<p class="wp-block-paragraph">一方、「CSV」と「csv」を区別して検索したい場面ではFIND一択です。</p>



<h2 class="wp-block-heading"><span id="toc9">実務での活用例（LEFT・MID・RIGHTとの組み合わせ）</span></h2>



<p class="wp-block-paragraph">FIND関数の真価は、他の文字列関数と組み合わせたときに発揮されます。FIND関数で「位置」を調べて、<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>や<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>で「文字を取り出す」のが定番パターンです。</p>



<h3 class="wp-block-heading"><span id="toc10">メールアドレスの@より前を取り出す（LEFT + FIND）</span></h3>



<p class="wp-block-paragraph">A2に「tanaka@example.com」が入っています。@より前の「tanaka」を取り出してみましょう。</p>



<pre class="wp-block-code"><code>=LEFT(A2, FIND(&quot;@&quot;, A2)-1)  → 「tanaka」</code></pre>



<p class="wp-block-paragraph">分解して見ていきます。</p>



<ol class="wp-block-list"><li><code>FIND("@", A2)</code> → @は7文字目</li><li>7 &#8211; 1 = 6（@の直前の位置）</li><li><code>LEFT(A2, 6)</code> → 先頭から6文字で「tanaka」</li></ol>



<p class="wp-block-paragraph">FINDで位置を調べて、LEFTの文字数に渡すだけです。メールアドレスの長さが人ごとに違っても正しく取り出せますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc11">スラッシュ区切りの日付から年月日を分離する（MID + FIND）</span></h3>



<p class="wp-block-paragraph">A2に「2024/03/18」が入っています。年・月・日をそれぞれ取り出してみましょう。</p>



<pre class="wp-block-code"><code>年: =LEFT(A2, FIND(&quot;/&quot;, A2)-1)                → 「2024」
月: =MID(A2, FIND(&quot;/&quot;, A2)+1, FIND(&quot;/&quot;, A2, FIND(&quot;/&quot;, A2)+1)-FIND(&quot;/&quot;, A2)-1)  → 「03」
日: =MID(A2, FIND(&quot;/&quot;, A2, FIND(&quot;/&quot;, A2)+1)+1, LEN(A2))  → 「18」</code></pre>



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



<ul class="wp-block-list"><li><strong>年</strong>: 最初の「/」より前をLEFTで取得</li><li><strong>月</strong>: 1番目の「/」と2番目の「/」の間をMIDで取得</li><li><strong>日</strong>: 2番目の「/」より後ろをMIDで取得</li></ul>



<p class="wp-block-paragraph">2番目の「/」を見つけるには、FIND関数の第3引数を使います。<code>FIND("/", A2, FIND("/", A2)+1)</code> で「1番目の/の次の位置から検索」を実行しています。</p>



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



<h3 class="wp-block-heading"><span id="toc12">ファイル名から拡張子を取り出す（RIGHT + LEN + FIND）</span></h3>



<p class="wp-block-paragraph">A2に「report.pdf」が入っています。ピリオド以降の「pdf」を取り出す例です。</p>



<pre class="wp-block-code"><code>=RIGHT(A2, LEN(A2)-FIND(&quot;.&quot;, A2))  → 「pdf」</code></pre>



<ol class="wp-block-list"><li><code>FIND(".", A2)</code> → ピリオドは7文字目</li><li><code>LEN(A2)</code> → 全体は10文字</li><li>10 &#8211; 7 = 3</li><li><code>RIGHT(A2, 3)</code> → 末尾3文字で「pdf」</li></ol>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a>とLEN関数（文字列全体の文字数を返す関数）を組み合わせると「特定の文字より後ろ全部」を取得できます。拡張子が「xlsx」のように4文字でも正しく動きますよ。</p>



<h2 class="wp-block-heading"><span id="toc13">エラー（#VALUE!）の原因と対処法</span></h2>



<p class="wp-block-paragraph">FIND関数で最も多いのが#VALUE!エラーです。原因は大きく2つあります。</p>



<h3 class="wp-block-heading"><span id="toc14">エラーの原因</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>検索文字列が見つからない</td><td><code>=FIND("@", "tanaka")</code></td><td>テキストに@が存在しない</td></tr><tr><td>開始位置がテキスト長を超えている</td><td><code>=FIND("a", "abc", 10)</code></td><td>3文字しかないのに10文字目から検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">大文字小文字を区別するFINDでは、「A」を検索しているのにテキスト内には「a」しかない場合もエラーになります。意図しないエラーの原因になりやすいので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc15">IFERRORで安全に処理する</span></h3>



<p class="wp-block-paragraph">検索対象が見つからないケースを想定して、IFERRORでラップするのが実務の定番です。</p>



<pre class="wp-block-code"><code>=IFERROR(FIND(&quot;@&quot;, A2), 0)</code></pre>



<p class="wp-block-paragraph">@が見つかればその位置を、見つからなければ0を返します。</p>



<p class="wp-block-paragraph">LEFT関数との組み合わせでも同じパターンが使えます。</p>



<pre class="wp-block-code"><code>=IFERROR(LEFT(A2, FIND(&quot;@&quot;, A2)-1), &quot;メールアドレスではありません&quot;)</code></pre>



<p class="wp-block-paragraph">実務データは書式がバラバラなことも多いです。FIND関数を使うときはIFERRORとセットで覚えておくと安心ですよ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/06_error_value.png" alt="06 error value" /></figure>



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



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



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=FIND(検索文字列, テキスト, [開始位置])</code></td></tr><tr><td>戻り値</td><td>検索文字列が最初に見つかった位置（1始まり）</td></tr><tr><td>大文字/小文字</td><td>区別する（SEARCHは区別しない）</td></tr><tr><td>ワイルドカード</td><td>使えない（SEARCHは使える）</td></tr><tr><td>見つからない場合</td><td>#VALUE!エラー（IFERRORで対処）</td></tr><tr><td>開始位置省略</td><td>先頭（1文字目）から検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">FIND関数は単体では「位置を調べる」だけの関数です。でも<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>・<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>・<a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a>と組み合わせると、文字列を自在に分割できる強力なツールになります。</p>



<p class="wp-block-paragraph">まずは「@の位置を調べる」「/の位置を調べる」というシンプルな使い方から試してみてください。慣れてきたらLEFT+FINDやMID+FINDの組み合わせに挑戦して、文字列操作の幅を広げていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-find-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのLEFT関数の使い方｜文字の左から取り出す実務5パターン</title>
		<link>https://mashukabu.com/spreadsheet-left-function/</link>
					<comments>https://mashukabu.com/spreadsheet-left-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:26:55 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[LEFT関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[RIGHT関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4114</guid>

					<description><![CDATA[Googleスプレッドシートの LEFT 関数で文字列の左から n 文字を取り出す方法を、住所・郵便番号・商品コード・メールアドレス・ファイル名の実務5パターンで解説。FIND関数との可変長切り出しや4文字都道府県対応、RIGHT・MIDとの使い分け、Excelとの違いまで網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートのLEFT関数を使えば、住所から都道府県だけ、商品コードの先頭2文字だけを一瞬で取り出せます。手作業で文字を切り出すと時間もミスも増えますが、LEFT関数なら数式一つで大量データを一括処理できますよ。</p>



<p class="wp-block-paragraph">この記事では基本構文から実務で即使える5つの活用パターン、FIND関数と組み合わせた応用技までを丁寧に解説します。4文字都道府県への対応やRIGHT・MIDとの使い分けまで網羅しますよ。</p>




  <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">LEFT関数とは？スプレッドシートで左から文字を取り出す基本構文</a><ol><li><a href="#toc2" tabindex="0">書き方（構文）と引数の意味</a></li><li><a href="#toc3" tabindex="0">基本的な使用例</a></li></ol></li><li><a href="#toc4" tabindex="0">LEFT関数の実務で使える5つの活用パターン</a><ol><li><a href="#toc5" tabindex="0">パターン1: 住所から都道府県名を抽出する</a></li><li><a href="#toc6" tabindex="0">パターン2: 郵便番号の上3桁（地域コード）を取り出す</a></li><li><a href="#toc7" tabindex="0">パターン3: 商品コード・社員番号で分類する</a></li><li><a href="#toc8" tabindex="0">パターン4: 日付文字列から年を取り出す</a></li><li><a href="#toc9" tabindex="0">パターン5: ファイル名から拡張子を除いた部分を抽出</a></li></ol></li><li><a href="#toc10" tabindex="0">FIND関数と組み合わせて可変長の文字列を取り出す（応用）</a><ol><li><a href="#toc11" tabindex="0">メールアドレスからユーザー名を取り出す</a></li><li><a href="#toc12" tabindex="0">「姓 名」形式から姓だけを取り出す</a></li><li><a href="#toc13" tabindex="0">IFERRORでエラーを防ぐ</a></li></ol></li><li><a href="#toc14" tabindex="0">4文字の都道府県に対応する方法</a><ol><li><a href="#toc15" tabindex="0">IF関数との組み合わせパターン</a></li><li><a href="#toc16" tabindex="0">REGEXEXTRACT関数を使うスマートな方法</a></li></ol></li><li><a href="#toc17" tabindex="0">LEFT・RIGHT・MIDの違いと使い分け（文字列操作9関数比較）</a><ol><li><a href="#toc18" tabindex="0">切り出し位置による使い分け</a></li><li><a href="#toc19" tabindex="0">文字列操作9関数の全体比較</a></li></ol></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">数値セルに使うとうまくいかない</a></li><li><a href="#toc22" tabindex="0">マイナスの文字数で#VALUE!エラー</a></li><li><a href="#toc23" tabindex="0">文字数を超えて指定しても大丈夫？</a></li><li><a href="#toc24" tabindex="0">エラー早見表</a></li><li><a href="#toc25" tabindex="0">ARRAYFORMULAで複数行一括処理</a></li></ol></li><li><a href="#toc26" tabindex="0">ExcelのLEFT関数との違い・LEFTBとの違い</a><ol><li><a href="#toc27" tabindex="0">ExcelのLEFT関数との比較</a></li><li><a href="#toc28" tabindex="0">LEFT関数とLEFTB関数の違い</a></li></ol></li><li><a href="#toc29" tabindex="0">関連記事</a></li><li><a href="#toc30" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LEFT関数とは？スプレッドシートで左から文字を取り出す基本構文</span></h2>



<p class="wp-block-paragraph">LEFT関数は、文字列の<strong>左端（先頭）から指定した文字数だけ取り出す</strong>関数です。Googleスプレッドシートの文字列操作では最もよく使う関数の一つですよ。</p>



<p class="wp-block-paragraph">「LEFT（レフト）」は英語で「左」を意味します。ExcelとGoogleスプレッドシートで完全に互換性があるため、両方の環境で同じように動きます。</p>



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



<pre class="wp-block-code"><code>=LEFT(文字列, [文字数])</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>取り出す文字数（0以上の整数）。省略時は1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>文字数</code>は省略できます。省略時は先頭1文字だけを返します。</p>



<p class="wp-block-paragraph">全角・半角は関係なく、どちらも1文字=1文字としてカウントされます。バイト数で計算したい場合はLEFTB関数を使いますが、通常のテキスト処理ではLEFTで十分です。</p>



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



<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>=LEFT(A1, 3)  → 「東京都」
=LEFT(A1, 1)  → 「東」
=LEFT(A1)     → 「東」（文字数省略時も1文字を返す）</code></pre>



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



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



<p class="wp-block-paragraph">先頭から何文字取り出すかを指定するだけです。とてもシンプルですね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LEFT関数の文字カウントは「見た目の1文字」単位です。「あ」も「a」も同じ1文字として扱われます。バイト数で処理したい場合（DBの桁制限チェックなど）はLEFTB関数を使ってください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">LEFT関数の実務で使える5つの活用パターン</span></h2>



<p class="wp-block-paragraph">LEFT関数が実際の業務でどう役立つか、よく使う5つのパターンを紹介します。どれも現場でそのまま使える実践的な例ですよ。</p>



<h3 class="wp-block-heading"><span id="toc5">パターン1: 住所から都道府県名を抽出する</span></h3>



<p class="wp-block-paragraph">住所一覧から都道府県名だけを取り出したいときの定番パターンです。</p>



<p class="wp-block-paragraph">日本の都道府県47のうち、43都道府県が「〜都」「〜道」「〜府」「〜県」の3文字です。全体の91.5%を占めるので、まずは3文字パターンで考えましょう。</p>



<pre class="wp-block-code"><code>=LEFT(A2, 3)  → 「東京都」「大阪府」「愛知県」</code></pre>



<p class="wp-block-paragraph">3文字抽出するだけでほとんどの住所に対応できます。</p>



<h3 class="wp-block-heading"><span id="toc6">パターン2: 郵便番号の上3桁（地域コード）を取り出す</span></h3>



<p class="wp-block-paragraph">「123-4567」形式の郵便番号から、上3桁の地域コードを取り出すパターンです。</p>



<pre class="wp-block-code"><code>=LEFT(A2, 3)  → 「123」</code></pre>



<p class="wp-block-paragraph">日本の郵便番号は7桁で、先頭3桁が政令指定都市や都道府県単位の地域コードになっています。地域別の集計や配送エリア分類でよく使います。</p>



<p class="wp-block-paragraph">ハイフンの位置を気にする必要はありません。先頭から3文字を切り出すだけでOKです。</p>



<h3 class="wp-block-heading"><span id="toc7">パターン3: 商品コード・社員番号で分類する</span></h3>



<p class="wp-block-paragraph">「AB-001」「CD-002」のような商品コードで、先頭2文字がカテゴリを表すケースです。</p>



<pre class="wp-block-code"><code>=LEFT(A2, 2)  → 「AB」「CD」など</code></pre>



<p class="wp-block-paragraph">取り出した2文字をキーにして、VLOOKUP関数で分類マスターを引く定番パターンにつなげられます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(LEFT(A2, 2), カテゴリ表!A:B, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">LEFT関数は「他の関数のインプットを作る」役割でもよく使われますよ。社員番号の先頭1〜2文字で部署コードを表すパターンも同じ考え方で対応できます。</p>



<h3 class="wp-block-heading"><span id="toc8">パターン4: 日付文字列から年を取り出す</span></h3>



<p class="wp-block-paragraph">「2024-03-18」のような日付文字列から、年の4文字だけを取り出すパターンです。</p>



<pre class="wp-block-code"><code>=LEFT(A2, 4)  → 「2024」</code></pre>



<p class="wp-block-paragraph">CSVファイルから取り込んだ日付文字列を年度別に集計したいときによく使います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>日付型（シリアル値）のセルに直接LEFTを使うと、シリアル値（44915など）から切り出されてしまいます。表示通りに切り出したい場合はTEXT関数でラップしてください。</p><p><code>=LEFT(TEXT(A2, "YYYY-MM-DD"), 4)</code></p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">パターン5: ファイル名から拡張子を除いた部分を抽出</span></h3>



<p class="wp-block-paragraph">「report.xlsx」のようなファイル名から、拡張子を除いた本体部分を取り出すパターンです。拡張子の文字数が固定なら単純に文字数指定でOKです。</p>



<pre class="wp-block-code"><code>=LEFT(A2, LEN(A2)-5)  → 「report」（「.xlsx」5文字を除く）</code></pre>



<p class="wp-block-paragraph">LEN関数で全体の文字数を取得し、そこから拡張子の文字数を引いています。ちょっとむずかしく見えますが、やっていることはシンプルですよ。</p>



<p class="wp-block-paragraph">拡張子の文字数が可変（.xlsx / .pdf など混在）の場合は、次のFIND関数との組み合わせが便利です。</p>



<h2 class="wp-block-heading"><span id="toc10">FIND関数と組み合わせて可変長の文字列を取り出す（応用）</span></h2>



<p class="wp-block-paragraph">LEFT関数は文字数を固定して切り出します。でも「何文字か分からないけど、ある文字の手前まで取り出したい」というケースもよくありますよね。</p>



<p class="wp-block-paragraph">そこで便利なのがFIND関数との組み合わせです。FIND関数は指定した文字が何文字目にあるかを返します。</p>



<h3 class="wp-block-heading"><span id="toc11">メールアドレスからユーザー名を取り出す</span></h3>



<p class="wp-block-paragraph">メールアドレスの <code>@</code> より前の部分を取り出す例です。</p>



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



<p class="wp-block-paragraph">分解すると簡単です。</p>



<ol class="wp-block-list"><li><code>FIND("@", A1)</code> で <code>@</code> が何文字目かを数値で取得する</li><li>そこから1を引いて「@の直前の文字位置」を計算する</li><li>その数値をLEFTの文字数として渡す</li></ol>



<p class="wp-block-paragraph">「tanaka@example.com」なら <code>@</code> は7文字目です。7-1=6なので <code>LEFT(A1, 6)</code> と同じ動作になり、結果は「tanaka」になります。</p>



<h3 class="wp-block-heading"><span id="toc12">「姓 名」形式から姓だけを取り出す</span></h3>



<p class="wp-block-paragraph">「田中 太郎」のような姓名の間にスペースがあるデータから、姓だけを取り出すパターンです。</p>



<pre class="wp-block-code"><code>=LEFT(A1, FIND(&quot; &quot;, A1)-1)  → 「田中」（半角スペース区切り）
=LEFT(A1, FIND(&quot;　&quot;, A1)-1) → 「田中」（全角スペース区切り）</code></pre>



<p class="wp-block-paragraph">スペースが全角・半角混在している場合は、両方を試す書き方もできます。</p>



<pre class="wp-block-code"><code>=LEFT(A1, MIN(IFERROR(FIND(&quot; &quot;, A1), LEN(A1)+1), IFERROR(FIND(&quot;　&quot;, A1), LEN(A1)+1))-1)</code></pre>



<p class="wp-block-paragraph">少し長いですが、全角スペースと半角スペースのどちらか先に見つかった方で切り出します。</p>



<h3 class="wp-block-heading"><span id="toc13">IFERRORでエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">対象セルに <code>@</code> やスペースがない場合、FIND関数はエラーを返します。エラーを防ぐにはIFERRORでラップしましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(LEFT(A1, FIND(&quot;@&quot;, A1)-1), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><code>@</code> があればユーザー名を、なければ「該当なし」を返します。実務データは必ずしもきれいとは限りません。このIFERRORパターンは覚えておくと役立ちますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>大文字・小文字を区別せずに検索したい場合はSEARCH関数を使います。FIND関数は区別する、SEARCH関数は区別しないという違いだけで、使い方は同じです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc14">4文字の都道府県に対応する方法</span></h2>



<p class="wp-block-paragraph">都道府県抽出で注意したいのが、4文字の都道府県です。「神奈川県」「和歌山県」「鹿児島県」の3県は4文字あります。単純な <code>LEFT(A2, 3)</code> だと「神奈川」「和歌山」「鹿児島」になってしまいます。</p>



<h3 class="wp-block-heading"><span id="toc15">IF関数との組み合わせパターン</span></h3>



<p class="wp-block-paragraph">4文字の都道府県かどうかを判定してから切り出す方法です。</p>



<pre class="wp-block-code"><code>=IF(OR(LEFT(A1,4)={&quot;神奈川県&quot;,&quot;和歌山県&quot;,&quot;鹿児島県&quot;}), LEFT(A1,4), LEFT(A1,3))</code></pre>



<p class="wp-block-paragraph">先頭4文字が「神奈川県」「和歌山県」「鹿児島県」のいずれかなら4文字を返し、それ以外は3文字を返します。</p>



<h3 class="wp-block-heading"><span id="toc16">REGEXEXTRACT関数を使うスマートな方法</span></h3>



<p class="wp-block-paragraph">Googleスプレッドシート固有の正規表現関数 <code>REGEXEXTRACT</code> を使うと、より簡潔に書けます。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A1, &quot;^(.+?[都道府県])&quot;)</code></pre>



<p class="wp-block-paragraph">「最初に現れる『都』『道』『府』『県』までを取り出す」という意味です。3文字でも4文字でも自動的に対応できるため、保守が楽です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>REGEXEXTRACT関数はGoogleスプレッドシートの固有関数で、Excelにはありません（Excel 365のREGEXEXTRACTは2024年以降に追加されました）。Excel・Sheets両方で使う数式にはIF+OR方式が安全です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">LEFT・RIGHT・MIDの違いと使い分け（文字列操作9関数比較）</span></h2>



<p class="wp-block-paragraph">文字列を操作する関数はLEFT以外にもたくさんあります。どれを使うか迷ったときの判断基準を整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc18">切り出し位置による使い分け</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>取り出す位置</th><th>構文</th><th>使用例</th></tr></thead><tbody><tr><td>LEFT</td><td>左端（先頭）から</td><td><code>=LEFT(文字列, 文字数)</code></td><td>都道府県名、カテゴリコード</td></tr><tr><td>RIGHT</td><td>右端（末尾）から</td><td><code>=RIGHT(文字列, 文字数)</code></td><td>年号の下2桁、ファイル拡張子</td></tr><tr><td>MID</td><td>任意の開始位置から</td><td><code>=MID(文字列, 開始位置, 文字数)</code></td><td>電話番号の市外局番、コードの中間部分</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断フレームはシンプルです。</p>



<ul class="wp-block-list"><li><strong>先頭から数えたほうが早い</strong> → LEFT</li><li><strong>末尾から数えたほうが早い</strong> → RIGHT</li><li><strong>真ん中あたりにある</strong> → MID</li></ul>



<p class="wp-block-paragraph">「2024-03-18」から年を取りたいなら、先頭4文字なので <code>LEFT(A1, 4)</code> です。日だけなら末尾2文字なので <code>RIGHT(A1, 2)</code> になります。</p>



<h3 class="wp-block-heading"><span id="toc19">文字列操作9関数の全体比較</span></h3>



<p class="wp-block-paragraph">文字列を扱う主要関数を一覧にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>典型的な用途</th></tr></thead><tbody><tr><td>LEFT</td><td>左から文字数指定で抽出</td><td>都道府県、先頭コード</td></tr><tr><td>RIGHT</td><td>右から文字数指定で抽出</td><td>拡張子、末尾コード</td></tr><tr><td>MID</td><td>途中から文字数指定で抽出</td><td>電話の市外局番</td></tr><tr><td>FIND</td><td>文字の位置を返す（大小区別あり）</td><td>区切り文字検索</td></tr><tr><td>SEARCH</td><td>文字の位置を返す（大小区別なし）</td><td>大小文字問わない検索</td></tr><tr><td>LEN</td><td>文字列の長さを返す</td><td>文字数カウント</td></tr><tr><td>SUBSTITUTE</td><td>指定文字を置換</td><td>スペース削除、全角半角統一</td></tr><tr><td>REPLACE</td><td>位置指定で文字を置換</td><td>特定位置のマスキング</td></tr><tr><td>REGEXEXTRACT</td><td>正規表現で抽出（Sheets固有）</td><td>柔軟なパターンマッチ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LEFT関数は他の文字列関数と組み合わせると威力が増します。FIND関数で可変長の抽出、SUBSTITUTE関数で条件付き加工ができるようになりますよ。</p>



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



<p class="wp-block-paragraph">LEFT関数で思ったとおりに動かないときのパターンをまとめます。</p>



<h3 class="wp-block-heading"><span id="toc21">数値セルに使うとうまくいかない</span></h3>



<p class="wp-block-paragraph">LEFT関数は<strong>文字列</strong>を扱う関数です。数値セルや日付セルに使うと意図しない結果になる場合があります。</p>



<p class="wp-block-paragraph">A1に数値 <code>1234567</code> が入っている場合、通常の整数ならこれで動きます。</p>



<pre class="wp-block-code"><code>=LEFT(A1, 3)  → 「123」</code></pre>



<p class="wp-block-paragraph">ただし日付や通貨形式など、書式が設定されている場合は注意が必要です。表示値ではなく内部のシリアル値から切り出されることがあります。</p>



<p class="wp-block-paragraph">確実に表示通りに切り出したいときは、TEXT関数で文字列に変換してからLEFTを使いましょう。</p>



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



<p class="wp-block-paragraph">TEXT関数で数値を文字列に変換して、それをLEFTで切り出しているだけですよ。</p>



<h3 class="wp-block-heading"><span id="toc22">マイナスの文字数で#VALUE!エラー</span></h3>



<p class="wp-block-paragraph">文字数にマイナスを指定すると <code>#VALUE!</code> エラーになります。</p>



<pre class="wp-block-code"><code>=LEFT(A1, -1)  → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph">LEN関数との組み合わせで計算した文字数がマイナスになるケースで発生しやすいエラーです。たとえば <code>LEN(A1)-10</code> は A1 が10文字未満のときにマイナスになります。IFで0未満を回避するか、MAX関数でラップして対応しましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc23">文字数を超えて指定しても大丈夫？</span></h3>



<p class="wp-block-paragraph">「5文字しかないテキストに <code>LEFT(A1, 100)</code> と指定したら？」という疑問を持つ方もいますよね。</p>



<p class="wp-block-paragraph">答えは「エラーにならず、テキスト全体を返す」です。</p>



<pre class="wp-block-code"><code>=LEFT(&quot;Hello&quot;, 100)  → 「Hello」（はみ出した分は無視）</code></pre>



<p class="wp-block-paragraph">安心して使ってください。文字数に0を指定すると空文字列（<code>""</code>）が返ります。これもエラーではありません。</p>



<h3 class="wp-block-heading"><span id="toc24">エラー早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>文字数がマイナス</td><td>MAX関数で0以下にならないようラップ</td></tr><tr><td>表示と結果が違う</td><td>日付・通貨書式のセル</td><td>TEXT関数で文字列化してから切り出す</td></tr><tr><td>FIND組み合わせで#VALUE!</td><td>検索文字が存在しない</td><td>IFERRORでラップ</td></tr><tr><td>複数行で動かない</td><td>配列処理未対応</td><td>ARRAYFORMULAでラップ</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc25">ARRAYFORMULAで複数行一括処理</span></h3>



<p class="wp-block-paragraph">複数行に一括でLEFTを適用したい場合は <code>ARRAYFORMULA</code> を使います。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(LEFT(A2:A100, 3))</code></pre>



<p class="wp-block-paragraph">1セルに数式を書くだけで A2〜A100 の全行に結果が反映されます。下方向にコピーする手間が不要で、データが増えても自動で対応するメリットがありますよ。</p>



<h2 class="wp-block-heading"><span id="toc26">ExcelのLEFT関数との違い・LEFTBとの違い</span></h2>



<p class="wp-block-paragraph">LEFT関数はExcelとGoogleスプレッドシートで基本動作が同一です。ただし細かな違いと、LEFTB関数との使い分けは押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc27">ExcelのLEFT関数との比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>スプレッドシート</th><th>Excel</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=LEFT(文字列, 文字数)</code></td><td>同じ</td></tr><tr><td>引数仕様</td><td>文字数省略時は1</td><td>同じ</td></tr><tr><td>エラー挙動</td><td>マイナスで#VALUE!</td><td>同じ</td></tr><tr><td>ARRAYFORMULA</td><td><code>=ARRAYFORMULA(LEFT(...))</code></td><td>SPILL機能で自動配列化</td></tr><tr><td>REGEXEXTRACT</td><td>使える（固有関数）</td><td>Excel 365の新機能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">どちらの環境でもLEFT関数は同じ動作をします。ExcelとSheets両方で使うシートでも安心して使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc28">LEFT関数とLEFTB関数の違い</span></h3>



<p class="wp-block-paragraph">LEFTB関数は<strong>バイト数</strong>で文字を切り出す関数です。全角=2バイト、半角=1バイトとしてカウントします。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>カウント単位</th><th>使用例</th></tr></thead><tbody><tr><td>LEFT</td><td>文字数（全角・半角とも1）</td><td>「あいう」→ 3文字</td></tr><tr><td>LEFTB</td><td>バイト数（全角2・半角1）</td><td>「あいう」→ 6バイト</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=LEFT(&quot;あいうえお&quot;, 3)   → 「あいう」
=LEFTB(&quot;あいうえお&quot;, 3)  → 「あ」（全角1文字=2バイト、残り1バイトは切り捨て）</code></pre>



<p class="wp-block-paragraph">通常のデータ処理ではLEFT関数で十分です。DBの桁制限チェックや固定長ファイル処理などバイト数を厳密に扱う場面でのみLEFTBを使います。</p>



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



<p class="wp-block-paragraph">LEFT関数と組み合わせて使うことの多い文字列操作関数の記事もあわせてご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-right-function/">スプレッドシートのRIGHT関数の使い方｜右から文字取得</a></li><li><a href="https://mashukabu.com/spreadsheet-mid-function/">スプレッドシートのMID関数の使い方｜途中の文字を取り出す方法</a></li><li><a href="https://mashukabu.com/spreadsheet-find-function/">スプレッドシートのFIND関数の使い方｜文字位置を検索する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-search-function/">スプレッドシートのSEARCH関数｜大文字小文字を無視して検索</a></li></ul>



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



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



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=LEFT(文字列, 文字数)</code></td></tr><tr><td>文字数省略</td><td>省略すると1文字を返す</td></tr><tr><td>文字数超過</td><td>エラーにならずテキスト全体を返す</td></tr><tr><td>マイナス指定</td><td><code>#VALUE!</code>エラーになる</td></tr><tr><td>ゼロ指定</td><td>空文字列（<code>""</code>）を返す</td></tr><tr><td>全角・半角</td><td>どちらも1文字としてカウント</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">LEFT関数は文字列操作の基本中の基本です。5つの活用パターンから自分の業務に近いものを1つ選んで試してみてください。</p>



<p class="wp-block-paragraph">FIND関数やLEN関数と組み合わせて可変長の切り出しができるようになると、実務でのデータ整理の幅が一気に広がりますよ。Googleスプレッドシート固有のREGEXEXTRACT関数も合わせて使えると、正規表現で柔軟な抽出が可能になります。</p>



<p class="wp-block-paragraph">RIGHT関数（末尾から切り出し）やMID関数（任意の位置から切り出し）もLEFTと同じ感覚で使える関数です。文字列操作シリーズとして、ぜひ合わせて習得してください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-left-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのRIGHT関数の使い方｜右から文字取得</title>
		<link>https://mashukabu.com/spreadsheet-right-function/</link>
					<comments>https://mashukabu.com/spreadsheet-right-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:26:46 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LEFT関数]]></category>
		<category><![CDATA[LEN関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[RIGHT関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4109</guid>

					<description><![CDATA[スプレッドシートのRIGHT関数で、右から（末尾から）指定した文字数を切り出す方法を解説。電話番号末尾4桁・拡張子取得など実務例も紹介。LEFT・MIDとの使い分けもわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートのRIGHT関数の使い方で悩んでいませんか？電話番号の末尾4桁だけ、ファイル名の拡張子だけを取り出したい場面はよくありますよね。</p>



<p class="wp-block-paragraph">でも、文字列の末尾を手作業で切り出すのは大変です。データ件数が増えるほど、時間もミスも増えていきます。</p>



<p class="wp-block-paragraph">RIGHT関数を使えばこの作業が一瞬で完了します。この記事では基本構文から実務での活用例、エラー対処法まで丁寧に解説します。</p>




  <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">RIGHT関数とは？スプレッドシートで右から文字を取り出す基本構文</a><ol><li><a href="#toc2" tabindex="0">書き方（構文）と引数の意味</a></li><li><a href="#toc3" tabindex="0">基本的な使用例</a></li></ol></li><li><a href="#toc4" tabindex="0">実務でよく使うRIGHT関数の活用例</a><ol><li><a href="#toc5" tabindex="0">電話番号の末尾4桁を取り出す</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関数と組み合わせて先頭を除外する（応用）</a><ol><li><a href="#toc9" tabindex="0">「先頭N文字を除いた残り」を取得する仕組み</a></li><li><a href="#toc10" tabindex="0">IFERRORでエラーを防ぐ</a></li></ol></li><li><a href="#toc11" tabindex="0">LEFT・RIGHT・MIDの違いと使い分け</a><ol><li><a href="#toc12" tabindex="0">3関数の比較一覧</a></li><li><a href="#toc13" tabindex="0">どれを使うか迷ったときの判断フレーム</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">数値セルに使うとうまくいかない（TEXT関数との組み合わせ）</a></li><li><a href="#toc16" tabindex="0">文字数を超えて指定しても大丈夫？</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">RIGHT関数とは？スプレッドシートで右から文字を取り出す基本構文</span></h2>



<p class="wp-block-paragraph">RIGHT関数は、セルの文字列を<strong>右端（末尾）から指定した文字数だけ取り出す</strong>関数です。一度覚えれば様々な場面で使えますよ。</p>



<p class="wp-block-paragraph">「RIGHT（ライト）」は英語で「右」を意味します。文字列の右側（末尾）から切り出す動作を表しています。ExcelとGoogleスプレッドシートで完全に互換性があるので、両方で使えます。</p>



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



<pre class="wp-block-code"><code>=RIGHT(文字列, [文字数])</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>取り出す文字数（省略時は1文字を返す）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>文字数</code>は省略できます。省略すると末尾の1文字だけが返されます。</p>



<p class="wp-block-paragraph">全角・半角は関係ありません。どちらも1文字=1文字としてカウントされます。バイト数で計算したい場合はRIGHTB関数を使いましょう。</p>



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



<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>



<p class="wp-block-paragraph">セルA1に「東京都渋谷区」と入力されているとします。</p>



<pre class="wp-block-code"><code>=RIGHT(A1, 3)  → 「渋谷区」
=RIGHT(A1, 1)  → 「区」
=RIGHT(A1)     → 「区」（文字数省略時も1文字を返す）</code></pre>



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



<p class="wp-block-paragraph">末尾から何文字取り出すか指定するだけです。とてもシンプルですね。</p>



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



<h2 class="wp-block-heading"><span id="toc4">実務でよく使うRIGHT関数の活用例</span></h2>



<p class="wp-block-paragraph">RIGHT関数が実際の業務でどう役立つか、よく使うパターンを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">電話番号の末尾4桁を取り出す</span></h3>



<p class="wp-block-paragraph">顧客リストの電話番号から末尾4桁だけを取り出す例です。本人確認で「下4桁を教えてください」と聞く場面で使えます。</p>



<pre class="wp-block-code"><code>=RIGHT(A2, 4)  → 「4567」（&quot;090-1234-4567&quot;の場合）</code></pre>



<p class="wp-block-paragraph">末尾から4文字を取るだけです。ハイフンの位置を気にする必要はありません。</p>



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



<h3 class="wp-block-heading"><span id="toc6">ファイル名から拡張子を取り出す（固定長）</span></h3>



<p class="wp-block-paragraph">「report.pdf」「data.csv」のような固定長の拡張子を取り出す例です。</p>



<pre class="wp-block-code"><code>=RIGHT(A2, 3)  → 「pdf」「csv」「jpg」</code></pre>



<p class="wp-block-paragraph">3文字の拡張子なら<code>RIGHT(A2, 3)</code>で十分です。ただし「xlsx」のような4文字拡張子が混在する場合は、FIND関数との組み合わせが必要になります。</p>



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



<h3 class="wp-block-heading"><span id="toc7">商品コードの末尾分類コードを取り出す</span></h3>



<p class="wp-block-paragraph">「PRD-A001-BK」のような商品コードで、末尾2文字がカラーコードを表している場合です。</p>



<pre class="wp-block-code"><code>=RIGHT(A2, 2)  → 「BK」「WH」「RD」など</code></pre>



<p class="wp-block-paragraph">取り出した2文字をキーにして、VLOOKUPやIF関数で色名に変換できます。RIGHT関数は「他の関数のインプットを作る」役割でもよく使われますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">LEN関数と組み合わせて先頭を除外する（応用）</span></h2>



<p class="wp-block-paragraph">RIGHT関数は末尾から取り出す関数です。でも「先頭N文字を除いた残り全部がほしい」というケースもありますよね。</p>



<p class="wp-block-paragraph">そこで便利なのがLEN関数との組み合わせです。LENは文字列の全文字数を返す関数です。</p>



<h3 class="wp-block-heading"><span id="toc9">「先頭N文字を除いた残り」を取得する仕組み</span></h3>



<p class="wp-block-paragraph">仕組みはシンプルです。全体の文字数から除きたい文字数を引いて、その分だけRIGHTで取り出します。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、分解すると簡単です。</p>



<ol class="wp-block-list"><li><code>LEN(A1)</code> で文字列全体の文字数を取得する</li><li>そこからN（除きたい文字数）を引く</li><li>その数値をRIGHTの文字数として渡す</li></ol>



<p class="wp-block-paragraph">「東京都渋谷区」から都道府県名（先頭3文字）を除きたい場合です。</p>



<pre class="wp-block-code"><code>=RIGHT(A1, LEN(A1)-3)  → 「渋谷区」</code></pre>



<p class="wp-block-paragraph"><code>LEN("東京都渋谷区")</code>は6です。6-3=3なので<code>RIGHT(A1, 3)</code>と同じ動作になります。</p>



<p class="wp-block-paragraph">LEFT関数の応用でFIND関数との組み合わせを紹介しましたが、RIGHT+LENも文字列操作の定番パターンです。覚えておくと役立ちますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LEFT関数を使った先頭からの切り出しについては「<a href="https://mashukabu.com/spreadsheet-left-function/">スプレッドシートのLEFT関数の使い方｜左から文字取得</a>」で詳しく解説しています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">IFERRORでエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">Nの値が文字列の長さより大きいと、LEN(A1)-Nがマイナスになります。RIGHTにマイナスの文字数を渡すとエラーです。</p>



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



<p class="wp-block-paragraph">エラーが起きたら空文字を返す、というシンプルな防御策です。実務データは長さがバラバラなので、IFERRORでラップしておくと安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">LEFT・RIGHT・MIDの違いと使い分け</span></h2>



<p class="wp-block-paragraph">文字列を取り出す関数にはRIGHT以外に「LEFT」と「MID」があります。どれも文字列の一部を切り出す関数ですが、取り出す位置が異なります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>取り出す位置</th><th>構文</th><th>使用例</th></tr></thead><tbody><tr><td>LEFT</td><td>左端（先頭）から</td><td><code>=LEFT(文字列, 文字数)</code></td><td>都道府県名、カテゴリコード</td></tr><tr><td>RIGHT</td><td>右端（末尾）から</td><td><code>=RIGHT(文字列, 文字数)</code></td><td>電話番号末尾4桁、拡張子</td></tr><tr><td>MID</td><td>任意の開始位置から</td><td><code>=MID(文字列, 開始位置, 文字数)</code></td><td>電話番号の市外局番、コードの中間部分</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">どれを使うか迷ったときの判断フレーム</span></h3>



<p class="wp-block-paragraph">取り出したい文字がどこにあるかで選べます。</p>



<ul class="wp-block-list"><li><strong>先頭から数えたほうが早い</strong> → LEFT</li><li><strong>末尾から数えたほうが早い</strong> → RIGHT</li><li><strong>真ん中あたりにある</strong> → MID</li></ul>



<p class="wp-block-paragraph">「2024-03-18」から年を取りたいなら、先頭4文字なので<code>LEFT(A1, 4)</code>です。日だけなら末尾2文字なので<code>RIGHT(A1, 2)</code>になります。</p>



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



<p class="wp-block-paragraph">RIGHT関数で思ったとおりに動かないときのパターンを解説します。</p>



<h3 class="wp-block-heading"><span id="toc15">数値セルに使うとうまくいかない（TEXT関数との組み合わせ）</span></h3>



<p class="wp-block-paragraph">RIGHT関数は<strong>文字列</strong>を扱う関数です。数値セルに使うと意図しない結果になる場合があります。</p>



<p class="wp-block-paragraph">A1に数値<code>1234567</code>が入っている場合、通常の整数なら動きます。</p>



<pre class="wp-block-code"><code>=RIGHT(A1, 4)  → 「4567」（一見うまくいく）</code></pre>



<p class="wp-block-paragraph">ただし日付や通貨形式の場合は要注意です。表示値ではなくシリアル値から切り出されることがあります。</p>



<p class="wp-block-paragraph">確実に表示どおりに切り出すにはTEXT関数を使いましょう。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。TEXT関数で数値を文字列に変えて、それをRIGHTで切り出しているだけですよ。</p>



<h3 class="wp-block-heading"><span id="toc16">文字数を超えて指定しても大丈夫？</span></h3>



<p class="wp-block-paragraph">「5文字のテキストに<code>RIGHT(A1, 100)</code>と指定したら？」という疑問もありますよね。</p>



<p class="wp-block-paragraph">答えは「エラーにならず、テキスト全体を返す」です。</p>



<pre class="wp-block-code"><code>=RIGHT(&quot;Hello&quot;, 100)  → 「Hello」（はみ出した分は無視）</code></pre>



<p class="wp-block-paragraph">安心して使ってください。ただしマイナスの文字数を指定すると<code>#VALUE!</code>エラーになります。</p>



<pre class="wp-block-code"><code>=RIGHT(A1, -1)  → #VALUE!エラー</code></pre>



<p class="wp-block-paragraph">文字数に0を指定すると空文字列（<code>""</code>）が返ります。これはエラーではありません。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=RIGHT(文字列, 文字数)</code></td></tr><tr><td>文字数省略</td><td>省略すると1文字を返す</td></tr><tr><td>文字数超過</td><td>エラーにならずテキスト全体を返す</td></tr><tr><td>マイナス指定</td><td><code>#VALUE!</code>エラーになる</td></tr><tr><td>ゼロ指定</td><td>空文字列（<code>""</code>）を返す</td></tr><tr><td>全角・半角</td><td>どちらも1文字としてカウント</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">RIGHT関数は文字列操作の基本です。まずは「末尾から何文字取り出す」というシンプルな使い方から試してみてください。</p>



<p class="wp-block-paragraph">慣れてきたらLEN関数との組み合わせにも挑戦してみましょう。「先頭を除いた残り全部」が取り出せるようになると、実務でのデータ整理の幅が一気に広がりますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数（先頭から切り出し）</a>やMID関数（任意の位置から切り出し）と合わせて、文字列操作の三本柱として活用してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-right-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
