<?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>SEARCH関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/search%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:52:37 +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>SEARCH関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのSEARCH関数の使い方｜大文字小文字を区別しない文字列検索</title>
		<link>https://mashukabu.com/excel-function-howto-use-search/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-search/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:35 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[LEFT関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[RIGHT関数]]></category>
		<category><![CDATA[SEARCHB関数]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[ワイルドカード]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5778</guid>

					<description><![CDATA[ExcelのSEARCH関数で大文字小文字を区別せずに文字列の位置を検索する方法を解説。FIND関数との違い、ワイルドカードの活用、SEARCHB関数との比較、MID・LEFTとの組み合わせなど実務例も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「この文字列の中に特定の文字が何文字目にあるか調べたい」と思ったことはありませんか？ しかもデータに大文字・小文字が混在していて、「Excel」も「EXCEL」も同じように見つけたい場面は意外と多いですよね。 手作業で目視チェックするのは、データ量が増えるほど現実的ではありません。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>SEARCH関数</strong> です。 大文字・小文字を区別しないで文字列の位置を返してくれるので、表記ゆれがあるデータでも安心して検索できますよ。 この記事では、SEARCH関数の基本構文からワイルドカード活用、LEFT・MID関数との組み合わせまで、実務に使える知識を順を追って解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対象バージョン:</strong> Excel 2016 / 2019 / 2021 / Microsoft 365（Windows・Mac共通）</p></blockquote>




  <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">SEARCH関数とは？大文字小文字を区別しない文字列検索</a></li><li><a href="#toc2" tabindex="0">SEARCH関数の書き方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">戻り値は「先頭からの文字位置」</a></li><li><a href="#toc5" tabindex="0">見つからない場合は#VALUE!エラー</a></li></ol></li><li><a href="#toc6" tabindex="0">SEARCH関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">特定の文字が何番目にあるか調べる</a></li><li><a href="#toc8" tabindex="0">大文字小文字を区別しない検索</a></li><li><a href="#toc9" tabindex="0">開始位置を指定して2つ目の文字を探す</a></li></ol></li><li><a href="#toc10" tabindex="0">SEARCH関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">パターン1: LEFT関数と組み合わせて区切り文字の手前を取り出す</a></li><li><a href="#toc12" tabindex="0">パターン2: MID関数と組み合わせて区切り文字の後ろを取り出す</a></li><li><a href="#toc13" tabindex="0">パターン3: RIGHT関数と組み合わせてファイル拡張子を取り出す</a></li><li><a href="#toc14" tabindex="0">パターン4: ワイルドカードであいまい検索する</a></li><li><a href="#toc15" tabindex="0">パターン5: IF関数と組み合わせてカテゴリ分類する</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a><ol><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></ol></li><li><a href="#toc20" tabindex="0">SEARCH関数とSEARCHB関数の違い</a></li><li><a href="#toc21" tabindex="0">SEARCH関数とFIND関数の使い分け</a></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">SEARCH関数とは？大文字小文字を区別しない文字列検索</span></h2>



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



<p class="wp-block-paragraph">最大の特徴は <strong>大文字と小文字を区別しない</strong> ことです。 たとえば「Excel」というセルに対してSEARCH(&#8220;excel&#8221;, A1)と書いても、ちゃんと1が返ります。</p>



<p class="wp-block-paragraph">もう1つの特徴は <strong>ワイルドカードが使える</strong> ことです。 <code>?</code>（任意の1文字）や <code>*</code>（任意の文字列）を検索文字に指定でき、あいまい検索ができます。</p>



<p class="wp-block-paragraph">SEARCH関数とよく比較されるFIND関数との違いを、まず一覧で確認しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SEARCH関数</th><th>FIND関数</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">「大文字小文字を気にせず探したい」「パターンであいまい検索したい」ならSEARCH関数、「完全に一致する文字だけ探したい」ならFIND関数、と覚えておけばOKです。</p>



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



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



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



<pre class="wp-block-code"><code>=SEARCH(検索文字列, 対象, [開始位置])</code></pre>



<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>検索文字列</td><td>必須</td><td>探したい文字列（ワイルドカード使用可）</td><td>&#8220;abc&#8221;, &#8220;?-*&#8221;</td></tr><tr><td>対象</td><td>必須</td><td>検索対象のセルまたは文字列</td><td>A1, &#8220;Hello World&#8221;</td></tr><tr><td>開始位置</td><td>省略可</td><td>検索を開始する位置（省略時は1）</td><td>5 → 5文字目から検索</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">戻り値は「先頭からの文字位置」</span></h3>



<p class="wp-block-paragraph">SEARCH関数が返すのは、<strong>検索文字列が見つかった先頭位置</strong>（1から始まる番号）です。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;World&quot;, &quot;Hello World&quot;)
→ 結果: 7</code></pre>



<p class="wp-block-paragraph">「Hello World」の中で「World」は7文字目から始まっているので、7が返ります。</p>



<h3 class="wp-block-heading"><span id="toc5">見つからない場合は#VALUE!エラー</span></h3>



<p class="wp-block-paragraph">検索文字列が対象の中に存在しないと、<code>#VALUE!</code> エラーになります。 エラーを回避するには<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲むのが定番です。</p>



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



<p class="wp-block-paragraph">見つからないときに0を返す設定にしておけば、後続の処理でエラーが波及しません。</p>



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



<h3 class="wp-block-heading"><span id="toc7">特定の文字が何番目にあるか調べる</span></h3>



<p class="wp-block-paragraph">セルA1に「PRD-001-BK」が入っている場合、最初のハイフンの位置を調べてみましょう。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;-&quot;, A1)
→ 結果: 4</code></pre>



<p class="wp-block-paragraph">ハイフンは4文字目にあるので、4が返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">大文字小文字を区別しない検索</span></h3>



<p class="wp-block-paragraph">SEARCH関数の真骨頂です。 セルA1に「Microsoft Excel」が入っている場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;excel&quot;, A1)
→ 結果: 11</code></pre>



<p class="wp-block-paragraph">検索文字列を小文字の「excel」にしていますが、対象の「Excel」（先頭大文字）もちゃんとマッチします。 FIND関数では同じ式が <code>#VALUE!</code> エラーになるので、ここがSEARCH関数の強みですね。</p>



<h3 class="wp-block-heading"><span id="toc9">開始位置を指定して2つ目の文字を探す</span></h3>



<p class="wp-block-paragraph">セルA1に「PRD-001-BK」が入っているとき、2つ目のハイフンの位置を取得する方法です。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;-&quot;, A1, SEARCH(&quot;-&quot;, A1) + 1)
→ 結果: 8</code></pre>



<p class="wp-block-paragraph">この式を分解すると、次のとおりです。</p>



<ol class="wp-block-list"><li>内側のSEARCH(&#8220;-&#8220;, A1) → 最初のハイフンの位置（4）を取得</li><li>+1 → その次の文字（5文字目）から検索を再開</li><li>外側のSEARCH → 2つ目のハイフンの位置（8）を取得</li></ol>



<p class="wp-block-paragraph">開始位置をうまく活用すれば、同じ文字が複数ある場合でもピンポイントで探せますよ。</p>



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



<p class="wp-block-paragraph">ここからは、実務でよく使う活用パターンを紹介します。 SEARCH関数は単体よりも <strong>他の関数と組み合わせて使う</strong> ことが多い関数です。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン1: LEFT関数と組み合わせて区切り文字の手前を取り出す</span></h3>



<p class="wp-block-paragraph">「田中 太郎」からスペースの手前「田中」を取り出す定番パターンです。</p>



<pre class="wp-block-code"><code>=LEFT(A1, SEARCH(&quot; &quot;, A1) - 1)
→ 結果: &quot;田中&quot;</code></pre>



<p class="wp-block-paragraph">この式の流れはこうです。</p>



<ol class="wp-block-list"><li>SEARCH(&#8221; &#8220;, A1) → スペースの位置（3）を取得</li><li>&#8211; 1 → スペースの1つ手前まで（2文字）</li><li><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数</a>で先頭から2文字を取り出す</li></ol>



<p class="wp-block-paragraph">全角スペースにも対応するので、氏名データの分割に重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン2: MID関数と組み合わせて区切り文字の後ろを取り出す</span></h3>



<p class="wp-block-paragraph">今度は「田中 太郎」から名前「太郎」を取り出すパターンです。</p>



<pre class="wp-block-code"><code>=MID(A1, SEARCH(&quot; &quot;, A1) + 1, LEN(A1))
→ 結果: &quot;太郎&quot;</code></pre>



<ol class="wp-block-list"><li>SEARCH(&#8221; &#8220;, A1) → スペースの位置（3）</li><li>+1 → スペースの次の文字（4文字目）から開始</li><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>で4文字目から末尾まで取り出す（文字数を大きめに指定すれば末尾まで取れます）</li></ol>



<p class="wp-block-paragraph">LEFT＋SEARCHで「前半」、MID＋SEARCHで「後半」と覚えておくと便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン3: RIGHT関数と組み合わせてファイル拡張子を取り出す</span></h3>



<p class="wp-block-paragraph">「report_2026.xlsx」からピリオド以降の拡張子を取り出す例です。</p>



<pre class="wp-block-code"><code>=RIGHT(A1, LEN(A1) - SEARCH(&quot;.&quot;, A1))
→ 結果: &quot;xlsx&quot;</code></pre>



<ol class="wp-block-list"><li>SEARCH(&#8220;.&#8221;, A1) → ピリオドの位置（12）</li><li>LEN(A1) &#8211; 12 → ピリオドより後ろの文字数（4）</li><li><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>で末尾から4文字を取り出す</li></ol>



<p class="wp-block-paragraph">ファイル名の一覧から拡張子だけ抜き出してフィルタリングしたいときに使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン4: ワイルドカードであいまい検索する</span></h3>



<p class="wp-block-paragraph">SEARCH関数ならではの機能がワイルドカード検索です。 <code>?</code> は任意の1文字、<code>*</code> は0文字以上の任意の文字列にマッチします。</p>



<p class="wp-block-paragraph"><strong>例1: パターンマッチで商品コードを検索する</strong></p>



<p class="wp-block-paragraph">「X」で始まり「Z」で終わる3文字のコードがあるかチェックする場合です。</p>



<pre class="wp-block-code"><code>=IFERROR(SEARCH(&quot;X?Z&quot;, A1), 0)</code></pre>



<p class="wp-block-paragraph">A1が「AX9Z-100」なら、「X9Z」にマッチして2が返ります。 A1が「ABC-100」なら見つからず0が返ります。</p>



<p class="wp-block-paragraph"><strong>例2: 特定の文字を含むかどうかを判定する</strong></p>



<p class="wp-block-paragraph">セルの中に「Excel」という単語が含まれるかどうかを TRUE / FALSE で判定する方法です。</p>



<pre class="wp-block-code"><code>=ISNUMBER(SEARCH(&quot;excel&quot;, A1))
→ 結果: TRUE または FALSE</code></pre>



<p class="wp-block-paragraph">SEARCH関数が数値を返せばISNUMBER関数がTRUEになり、<code>#VALUE!</code> エラーならFALSEになります。 大文字小文字を無視して含有チェックできるので、データの振り分けに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン5: IF関数と組み合わせてカテゴリ分類する</span></h3>



<p class="wp-block-paragraph">商品名にキーワードが含まれるかで分類するパターンです。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(SEARCH(&quot;premium&quot;, A1)), &quot;上位モデル&quot;, &quot;通常モデル&quot;)</code></pre>



<p class="wp-block-paragraph">「Premium」「PREMIUM」「premium」のどの表記でもヒットするので、表記ゆれがあるデータでも正確に分類できます。</p>



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



<p class="wp-block-paragraph">SEARCH関数で「あれ？」となるケースをまとめました。</p>



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



<p class="wp-block-paragraph">#VALUE! エラーの原因は主に2つです。</p>



<ul class="wp-block-list"><li><strong>検索文字列が対象に含まれていない</strong></li><li><strong>開始位置が対象の文字数を超えている</strong></li></ul>



<pre class="wp-block-code"><code>=SEARCH(&quot;xyz&quot;, &quot;Hello&quot;)
→ #VALUE! エラー（見つからない）

=SEARCH(&quot;H&quot;, &quot;Hello&quot;, 100)
→ #VALUE! エラー（開始位置が範囲外）</code></pre>



<p class="wp-block-paragraph">どちらも<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で対処するのが定番です。</p>



<pre class="wp-block-code"><code>=IFERROR(SEARCH(&quot;xyz&quot;, A1), &quot;見つかりません&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc18">ワイルドカード文字そのものを検索したいとき</span></h3>



<p class="wp-block-paragraph"><code>?</code> や <code>*</code> をワイルドカードではなく、文字として検索したい場合は <strong>チルダ（~）</strong> を前に付けます。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;~?&quot;, A1)
→ 「?」という文字そのものの位置を返す

=SEARCH(&quot;~*&quot;, A1)
→ 「*」という文字そのものの位置を返す</code></pre>



<p class="wp-block-paragraph">チルダ自体を検索したい場合は <code>~~</code> と2つ重ねます。 ワイルドカードが予期せずマッチしてしまうときは、この方法を思い出してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc19">意図しない位置がマッチするケース</span></h3>



<p class="wp-block-paragraph">SEARCH関数は <strong>最初に見つかった位置</strong> を返します。 2番目以降の位置が欲しい場合は、開始位置の引数を活用しましょう（基本的な使い方のセクションで解説しました）。</p>



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



<p class="wp-block-paragraph">SEARCH関数にはバイト単位で動作する <strong>SEARCHB関数</strong> があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SEARCH関数</th><th>SEARCHB関数</th></tr></thead><tbody><tr><td>カウント基準</td><td>文字数（1文字=1）</td><td>バイト数（全角=2、半角=1）</td></tr><tr><td>「エクセル」の中の「セル」</td><td>3</td><td>5</td></tr><tr><td>主な用途</td><td>一般的な文字位置検索</td><td>固定バイト長データの処理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SEARCHB関数の構文はSEARCH関数と同じです。</p>



<pre class="wp-block-code"><code>=SEARCHB(検索文字列, 対象, [開始位置])</code></pre>



<p class="wp-block-paragraph">具体例を見てみましょう。 「エクセル関数」の中から「関数」を探す場合です。</p>



<pre class="wp-block-code"><code>=SEARCH(&quot;関数&quot;, &quot;エクセル関数&quot;)
→ 結果: 5（5文字目）

=SEARCHB(&quot;関数&quot;, &quot;エクセル関数&quot;)
→ 結果: 9（9バイト目）</code></pre>



<p class="wp-block-paragraph">SEARCHB関数は全角文字を2バイトとしてカウントするので、位置がずれます。</p>



<p class="wp-block-paragraph">通常の業務では <strong>SEARCH関数を使えば問題ありません</strong>。 SEARCHB関数が必要になるのは、レガシーシステムから出力された固定バイト長データを扱う場合など、限られた場面だけです。</p>



<h2 class="wp-block-heading"><span id="toc21">SEARCH関数とFIND関数の使い分け</span></h2>



<p class="wp-block-paragraph">SEARCH関数とFIND関数は構文が同じなので、どちらを使うか迷いがちです。 判断基準をもう少し掘り下げましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>使うべき場面</th><th>選ぶ関数</th><th>理由</th></tr></thead><tbody><tr><td>大文字小文字の区別が不要</td><td>SEARCH</td><td>表記ゆれを無視できる</td></tr><tr><td>ワイルドカードで柔軟に検索したい</td><td>SEARCH</td><td>?, * が使える</td></tr><tr><td>大文字小文字を厳密に区別したい</td><td>FIND</td><td>「abc」と「ABC」を別扱いにできる</td></tr><tr><td>ワイルドカード文字を文字として扱いたい</td><td>FIND</td><td>チルダ不要でシンプル</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>実務でのおすすめ</strong>: 迷ったらまずSEARCH関数を使ってみてください。 大文字小文字を区別しないほうが使い勝手がよい場面がほとんどです。 「厳密に区別する必要がある」と分かったときだけFIND関数に切り替えれば十分ですよ。</p>



<p class="wp-block-paragraph">SEARCH関数とFIND関数はどちらも、<a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>と組み合わせるパターンで使います。 文字列操作のレパートリーを増やしたい方は、あわせてチェックしてみてくださいね。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのSEARCH関数の使い方を基本から実務活用まで解説しました。 最後にポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li>SEARCH関数は <code>=SEARCH(検索文字列, 対象, [開始位置])</code> で文字列の位置を返す</li><li><strong>大文字・小文字を区別しない</strong> のが最大の特徴</li><li><strong>ワイルドカード（?, *）</strong> が使え、あいまい検索ができる</li><li>見つからない場合は <code>#VALUE!</code> エラーになるので、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲むのが定番</li><li><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT</a>・<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID</a>・<a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT</a>関数と組み合わせて文字列の抽出に活用できる</li><li>FIND関数との違いは「大文字小文字の区別」と「ワイルドカード対応」の2点</li><li>SEARCHB関数はバイト単位版で、通常業務ではSEARCHで十分</li></ul>



<p class="wp-block-paragraph">SEARCH関数は文字列操作の中でも使用頻度が高い関数です。 まずは「特定の文字が何番目にあるか」を調べるシンプルな使い方から始めてみてください。 LEFT・MID関数と組み合わせるテクニックに慣れれば、データ整理の幅がぐっと広がりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-search/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのISNUMBER関数の使い方｜数値判定</title>
		<link>https://mashukabu.com/spreadsheet-isnumber-function/</link>
					<comments>https://mashukabu.com/spreadsheet-isnumber-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:33:47 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IF関数]]></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=4833</guid>

					<description><![CDATA[GoogleスプレッドシートのISNUMBER関数の使い方を初心者向けに解説。数値かどうかをTRUE/FALSEで判定する基本から、SEARCH/FIND関数との組み合わせで部分一致検索を行うパターンまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「このセルに入っているのは数値？それとも文字列？」と確認したくなったことはありませんか？</p>



<p class="wp-block-paragraph">データの集計や計算の前に、数値かどうかをチェックしたい場面は実務でよくありますよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのがISNUMBER関数です。セルの値が数値かどうかをTRUE/FALSEで判定してくれます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方からSEARCH関数・FIND関数との組み合わせによる部分一致検索パターンまで紹介します。</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">ISNUMBER関数とは？</a></li><li><a href="#toc2" tabindex="0">ISNUMBER関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">ISNUMBER関数がTRUE/FALSEを返すパターン</a></li></ol></li><li><a href="#toc6" tabindex="0">ISNUMBER関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">セルが数値かどうかを判定する</a></li><li><a href="#toc8" tabindex="0">IF関数と組み合わせて表示を切り替える</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">ISNUMBER関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">ISNUMBER + SEARCHで部分一致検索（最重要パターン）</a></li><li><a href="#toc13" tabindex="0">ISNUMBER + FINDで大文字・小文字を区別する部分一致検索</a></li><li><a href="#toc14" tabindex="0">IF + ISNUMBER + SEARCHで条件分岐</a></li><li><a href="#toc15" tabindex="0">データ入力チェックで文字列混入を検出する</a></li><li><a href="#toc16" tabindex="0">条件付き書式で数値以外のセルをハイライト</a></li><li><a href="#toc17" tabindex="0">ArrayFormulaで全行一括判定</a></li><li><a href="#toc18" tabindex="0">FILTER関数と組み合わせて数値セルだけ抽出する</a></li><li><a href="#toc19" tabindex="0">SUMPRODUCT関数と組み合わせて数値セルの個数を数える</a></li></ol></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">「数値に見えるのにFALSE」の見分け方</a></li></ol></li><li><a href="#toc22" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc23" tabindex="0">ISNUMBERとISTEXTの違い</a></li><li><a href="#toc24" tabindex="0">ISNUMBERとTYPE関数の使い分け</a></li><li><a href="#toc25" tabindex="0">ISNUMBERと他のIS系関数</a></li></ol></li><li><a href="#toc26" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc27" tabindex="0">Q1. 日付セルがTRUEになるのはなぜですか？</a></li><li><a href="#toc28" tabindex="0">Q2.「123」のように数値に見えるセルがFALSEになるのはなぜですか？</a></li><li><a href="#toc29" tabindex="0">Q3. ExcelのISNUMBER関数と互換性はありますか？</a></li><li><a href="#toc30" tabindex="0">Q4. 配列（範囲）に対してISNUMBERは使えますか？</a></li><li><a href="#toc31" tabindex="0">Q5. COUNTIF関数とISNUMBER+SUMPRODUCTはどう使い分けますか？</a></li></ol></li><li><a href="#toc32" tabindex="0">まとめ</a><ol><li><a href="#toc33" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">ISNUMBER関数（読み方: イズナンバー関数）は、<strong>指定した値が数値かどうかを判定する関数</strong>です。</p>



<p class="wp-block-paragraph">名前はIS（〜かどうか）+ NUMBER（数値）が由来です。</p>



<p class="wp-block-paragraph">A1が数値なら <code>=ISNUMBER(A1)</code> はTRUEを返します。</p>



<p class="wp-block-paragraph">引数はチェックしたい値の1つだけです。結果はTRUEかFALSEの2択なので、とてもシンプルですね。</p>



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



<ul class="wp-block-list"><li>セルの値が数値かどうかをTRUE/FALSEで判定する</li><li>IF関数と組み合わせて数値・文字列で処理を分岐する</li><li>SEARCH関数やFIND関数と組み合わせて部分一致検索の判定を行う</li><li>データ入力チェックや集計前のバリデーションに使う</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ISNUMBER関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。</p></blockquote>



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



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



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



<p class="wp-block-paragraph">カッコの中に数値かどうかを判定したいセルや値を指定するだけです。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>数値かどうかを確認したいセル参照や値（例: A1）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけです。値が数値ならTRUE、数値以外ならFALSEを返します。</p>



<h3 class="wp-block-heading"><span id="toc5">ISNUMBER関数がTRUE/FALSEを返すパターン</span></h3>



<p class="wp-block-paragraph">どんな値がTRUE（数値）と判定されるかを一覧にしました。</p>



<figure class="wp-block-table"><table><thead><tr><th>データの種類</th><th>判定結果</th></tr></thead><tbody><tr><td>整数（1、100、-5など）</td><td>TRUE（数値）</td></tr><tr><td>小数（3.14、0.5など）</td><td>TRUE（数値）</td></tr><tr><td>日付・時刻</td><td>TRUE（数値）</td></tr><tr><td>数式の結果が数値</td><td>TRUE（数値）</td></tr><tr><td>文字列（&#8221;abc&#8221;、&#8221;123&#8243;など）</td><td>FALSE</td></tr><tr><td>論理値（TRUE/FALSE）</td><td>FALSE</td></tr><tr><td>エラー値（#N/Aなど）</td><td>FALSE</td></tr><tr><td>空白セル</td><td>FALSE</td></tr><tr><td>数値を文字列として入力（&#8217;100）</td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいポイントが2つあります。</p>



<p class="wp-block-paragraph">まず、日付と時刻はTRUEになります。スプレッドシートでは日付・時刻を内部的に数値（シリアル値）として扱うためです。</p>



<p class="wp-block-paragraph">もうひとつは「見た目は数値なのにFALSE」になるケースです。</p>



<p class="wp-block-paragraph">セルの先頭にアポストロフィ（<code>'</code>）を付けて入力すると、文字列扱いになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「123」と入力したのにISNUMBER関数がFALSEを返す場合、セルの書式が「書式なしテキスト」になっている可能性があります。「表示形式」→「数値」→「自動」に変更してみてください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">セルが数値かどうかを判定する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな使い方です。A1が数値かどうかを確認します。</p>



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



<p class="wp-block-paragraph">A1に数値が入っていればTRUE、文字列や空白ならFALSEが返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">IF関数と組み合わせて表示を切り替える</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数はIF関数と組み合わせることが多いです。数値のときと文字列のときで表示を変えます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(B2), &quot;数値&quot;, &quot;数値以外&quot;)</code></pre>



<p class="wp-block-paragraph">B2が数値なら「数値」、それ以外なら「数値以外」と表示します。</p>



<h3 class="wp-block-heading"><span id="toc9">数値のときだけ計算を実行する</span></h3>



<p class="wp-block-paragraph">文字列が混在するデータで、数値のセルだけ計算したいときに使えます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(B2), B2*1.1, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">B2が数値なら1.1倍した値を表示します。数値以外なら空欄のままです。</p>



<h3 class="wp-block-heading"><span id="toc10">複数セルの数値チェック</span></h3>



<p class="wp-block-paragraph">複数のセルがすべて数値かどうかを確認するパターンです。</p>



<pre class="wp-block-code"><code>=AND(ISNUMBER(A2), ISNUMBER(B2), ISNUMBER(C2))</code></pre>



<p class="wp-block-paragraph">A2・B2・C2がすべて数値ならTRUEです。1つでも数値以外があればFALSEになります。</p>



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



<h3 class="wp-block-heading"><span id="toc12">ISNUMBER + SEARCHで部分一致検索（最重要パターン）</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数の実務でもっとも活躍する使い方が、SEARCH関数との組み合わせです。</p>



<p class="wp-block-paragraph">セルに特定の文字列が含まれるかどうかをTRUE/FALSEで判定できます。</p>



<pre class="wp-block-code"><code>=ISNUMBER(SEARCH(&quot;東京&quot;, A2))</code></pre>



<p class="wp-block-paragraph">A2に「東京」が含まれていればTRUEです。含まれていなければFALSEになります。</p>



<p class="wp-block-paragraph">仕組みを説明します。SEARCH関数は文字列が見つかると位置（数値）を返します。見つからないと#VALUE!エラーです。</p>



<p class="wp-block-paragraph">ISNUMBER関数は数値ならTRUE、エラーならFALSEを返します。そのため「含むかどうか」の判定ができるわけです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SEARCH関数は大文字・小文字を区別しません。「tokyo」で検索しても「TOKYO」や「Tokyo」がヒットします。大文字・小文字を区別したい場合はFIND関数を使ってください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">ISNUMBER + FINDで大文字・小文字を区別する部分一致検索</span></h3>



<p class="wp-block-paragraph">大文字・小文字を厳密に区別したい場合は、SEARCH関数の代わりにFIND関数を使います。</p>



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



<p class="wp-block-paragraph">A2に大文字の「ABC」が含まれていればTRUEです。「abc」や「Abc」ではFALSEになります。</p>



<p class="wp-block-paragraph">SEARCH関数とFIND関数の使い分けは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>組み合わせ</th><th>大文字・小文字</th><th>ワイルドカード</th><th>使いどころ</th></tr></thead><tbody><tr><td>ISNUMBER + SEARCH</td><td>区別しない</td><td>使える</td><td>一般的な部分一致検索</td></tr><tr><td>ISNUMBER + FIND</td><td>区別する</td><td>使えない</td><td>型番・コード検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったらSEARCH関数のほうが使いやすいです。型番やIDなど厳密な検索が必要なときだけFIND関数を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc14">IF + ISNUMBER + SEARCHで条件分岐</span></h3>



<p class="wp-block-paragraph">部分一致の結果に応じて表示を切り替えるパターンです。実務でもっともよく使う形になります。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(SEARCH(&quot;合格&quot;, C2)), &quot;○&quot;, &quot;×&quot;)</code></pre>



<p class="wp-block-paragraph">C2に「合格」が含まれていれば「○」、含まれていなければ「×」を表示します。</p>



<p class="wp-block-paragraph">応用として、複数キーワードのいずれかが含まれるかを判定することもできます。</p>



<pre class="wp-block-code"><code>=IF(OR(ISNUMBER(SEARCH(&quot;東京&quot;, A2)), ISNUMBER(SEARCH(&quot;大阪&quot;, A2))), &quot;対象&quot;, &quot;対象外&quot;)</code></pre>



<p class="wp-block-paragraph">A2に「東京」または「大阪」が含まれていれば「対象」と表示します。</p>



<h3 class="wp-block-heading"><span id="toc15">データ入力チェックで文字列混入を検出する</span></h3>



<p class="wp-block-paragraph">数値を入力すべき列に文字列が混入していないかをチェックできます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(B2), &quot;OK&quot;, &quot;数値を入力してください&quot;)</code></pre>



<p class="wp-block-paragraph">B2が数値なら「OK」と表示します。文字列や空白なら入力を促すメッセージを出します。</p>



<h3 class="wp-block-heading"><span id="toc16">条件付き書式で数値以外のセルをハイライト</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数を条件付き書式のカスタム数式に使うと、数値以外のセルを色付けできます。</p>



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



<ol class="wp-block-list"><li>チェックしたい範囲（例: B2:B20）を選択する</li><li>「表示形式」→「条件付き書式」を開く</li><li>「カスタム数式」を選び、次の数式を入力する</li></ol>



<pre class="wp-block-code"><code>=NOT(ISNUMBER(B2))</code></pre>



<ol class="wp-block-list"><li>書式スタイルで背景色を赤やオレンジに設定する</li></ol>



<p class="wp-block-paragraph">これで数値以外のセルがひと目でわかります。データ入力後のチェックに便利です。</p>



<h3 class="wp-block-heading"><span id="toc17">ArrayFormulaで全行一括判定</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数をARRAYFORMULA関数と組み合わせると、1つの数式で全行分を処理できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(A2:A=&quot;&quot;, &quot;&quot;, IF(ISNUMBER(SEARCH(&quot;東京&quot;, A2:A)), &quot;対象&quot;, &quot;対象外&quot;)))</code></pre>



<p class="wp-block-paragraph">A列にデータがある行だけを対象に、「東京」が含まれるかどうかを一括判定します。</p>



<p class="wp-block-paragraph">ARRAYFORMULA関数を使えば数式を下方向にコピーする必要がなくなるので、行が追加されても自動対応です。</p>



<h3 class="wp-block-heading"><span id="toc18">FILTER関数と組み合わせて数値セルだけ抽出する</span></h3>



<p class="wp-block-paragraph">数値が入っている行だけを別の場所に一覧化したいときは、FILTER関数との組み合わせが便利です。</p>



<p class="wp-block-paragraph">たとえばA列に商品名、B列に価格が入っていて、価格が未入力の行が混ざっているとします。</p>



<p class="wp-block-paragraph">「価格が入力済みの行だけ取り出したい」というケースで次の数式を使います。</p>



<pre class="wp-block-code"><code>=FILTER(A2:B20, ISNUMBER(A2:A20))</code></pre>



<p class="wp-block-paragraph">A2:A20が数値の行だけを残し、A列とB列をまとめて抽出します。</p>



<p class="wp-block-paragraph">仕組みはシンプルです。<code>ISNUMBER(A2:A20)</code> がTRUE/FALSEの並び（配列）を返し、FILTER関数がTRUEの行だけを表示します。</p>



<p class="wp-block-paragraph">価格欄が空白だったり「未定」のような文字列だったりする行は、自動的に除外されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>抽出結果は元データと連動します。元のセルに数値を入力すると、FILTERの結果にもその行が自動で追加されます。集計用の作業シートを作るときに重宝します。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc19">SUMPRODUCT関数と組み合わせて数値セルの個数を数える</span></h3>



<p class="wp-block-paragraph">範囲の中に数値セルがいくつあるかを数えたいときは、SUMPRODUCT関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(A2:A20)*1)</code></pre>



<p class="wp-block-paragraph">A2:A20の中で数値が入っているセルの個数を返します。</p>



<p class="wp-block-paragraph"><code>ISNUMBER(A2:A20)</code> がTRUE/FALSEの配列を返し、<code>*1</code> でTRUEを1・FALSEを0に変換します。それをSUMPRODUCT関数が合計するので、数値セルの個数になるわけです。</p>



<p class="wp-block-paragraph">ここで「COUNTIFでも数えられるのでは？」と思うかもしれません。次の数式と比べてみましょう。</p>



<pre class="wp-block-code"><code>=COUNTIF(A2:A20,&quot;&lt;&gt;&quot;&amp;&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は「空白でないセル」の個数を数えます。つまり文字列も日付もカウント対象です。</p>



<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>SUMPRODUCT + ISNUMBER</td><td>数値セルだけ</td><td>含まない</td></tr><tr><td>COUNTIF(範囲,&#8221;<>&#8220;&#038;&#8221;&#8221;)</td><td>空白以外のすべて</td><td>含む</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「純粋に数値が入っているセルだけ数えたい」ならSUMPRODUCT + ISNUMBERが正確です。「入力済みのセル数を知りたい」だけならCOUNTIFで十分でしょう。</p>



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



<p class="wp-block-paragraph">ISNUMBER関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数値なのにFALSEになる</td><td>セルの書式が「書式なしテキスト」</td><td>書式を「自動」に変更し、値を再入力する</td></tr><tr><td>数値なのにFALSEになる</td><td>先頭にアポストロフィ（<code>'</code>）がある</td><td>アポストロフィを削除して再入力する</td></tr><tr><td>日付がTRUEになる</td><td>日付はシリアル値（数値）として扱われる</td><td>日付を除外するなら <code>=AND(ISNUMBER(A1), NOT(ISDATE(A1)))</code></td></tr><tr><td>空白セルをTRUEにしたい</td><td>ISNUMBER関数は空白をFALSEと判定する</td><td><code>=OR(ISNUMBER(A1), ISBLANK(A1))</code> で判定する</td></tr><tr><td>SEARCH組み合わせでFALSEになる</td><td>検索文字列が見つからない</td><td>全角・半角の違い、スペースの有無を確認する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">「数値に見えるのにFALSE」の見分け方</span></h3>



<p class="wp-block-paragraph">セルが数値に見えるのにFALSEになる場合、文字列として保存されている可能性があります。確認方法は次のとおりです。</p>



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



<p class="wp-block-paragraph">結果が1なら数値、2なら文字列です。</p>



<p class="wp-block-paragraph">文字列になっている数値を数値に変換するには、VALUE関数を使います。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「データ」メニュー → 「データクリーンアップ」で、文字列として保存されている数値を一括変換することもできます。</p></blockquote>



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



<p class="wp-block-paragraph">ISNUMBER関数と関連する関数をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定対象</th><th>戻り値</th><th>用途</th></tr></thead><tbody><tr><td><strong>ISNUMBER</strong></td><td><strong>数値かどうか</strong></td><td><strong>TRUE/FALSE</strong></td><td><strong>セルごとの数値チェック</strong></td></tr><tr><td>ISTEXT</td><td>文字列かどうか</td><td>TRUE/FALSE</td><td>セルごとの文字列チェック</td></tr><tr><td>VALUE</td><td>文字列を数値に変換</td><td>数値 or エラー</td><td>データ変換</td></tr><tr><td>TYPE</td><td>データ型の種類を取得</td><td>数値（型コード）</td><td>詳細なデータ型判定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">ISNUMBERとISTEXTの違い</span></h3>



<p class="wp-block-paragraph">ISNUMBERとISTEXTは対になる関数です。ただし、単純な逆関係ではありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>データの種類</th><th>ISNUMBER</th><th>ISTEXT</th></tr></thead><tbody><tr><td>数値（100）</td><td>TRUE</td><td>FALSE</td></tr><tr><td>文字列（&#8221;abc&#8221;）</td><td>FALSE</td><td>TRUE</td></tr><tr><td>論理値（TRUE）</td><td>FALSE</td><td>FALSE</td></tr><tr><td>エラー（#N/A）</td><td>FALSE</td><td>FALSE</td></tr><tr><td>空白</td><td>FALSE</td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">論理値・エラー・空白はどちらもFALSEです。「数値でなければ文字列」とは限らないので注意しましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">ISNUMBERとTYPE関数の使い分け</span></h3>



<p class="wp-block-paragraph">TYPE関数はデータ型をより細かく分類できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>型</th><th>TYPE関数の戻り値</th></tr></thead><tbody><tr><td>数値</td><td>1</td></tr><tr><td>文字列</td><td>2</td></tr><tr><td>論理値</td><td>4</td></tr><tr><td>エラー</td><td>16</td></tr><tr><td>配列</td><td>64</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「数値かどうか」だけ知りたい → ISNUMBER関数がシンプルです。</p>



<p class="wp-block-paragraph">「文字列・論理値・エラーも区別したい」→ TYPE関数が向いています。</p>



<h3 class="wp-block-heading"><span id="toc25">ISNUMBERと他のIS系関数</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数はIS系情報関数のひとつです。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定内容</th></tr></thead><tbody><tr><td>ISBLANK</td><td>空白かどうか</td></tr><tr><td>ISNUMBER</td><td>数値かどうか</td></tr><tr><td>ISTEXT</td><td>文字列かどうか</td></tr><tr><td>ISLOGICAL</td><td>論理値かどうか</td></tr><tr><td>ISERROR</td><td>エラーかどうか</td></tr><tr><td>ISFORMULA</td><td>数式が入っているかどうか</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">データの種類に応じたチェックをしたいときは、IS系関数を使い分けてみてください。</p>



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



<h3 class="wp-block-heading"><span id="toc27">Q1. 日付セルがTRUEになるのはなぜですか？</span></h3>



<p class="wp-block-paragraph">スプレッドシートが日付を内部的に「シリアル値」という数値で管理しているためです。</p>



<p class="wp-block-paragraph">たとえば2026年3月21日は「46102」のような連番として保存されています。見た目は日付でも中身は数値なので、ISNUMBER関数はTRUEを返します。</p>



<p class="wp-block-paragraph">日付を数値判定から除外したい場合は、ISDATE関数と組み合わせてください。</p>



<pre class="wp-block-code"><code>=AND(ISNUMBER(A1), NOT(ISDATE(A1)))</code></pre>



<p class="wp-block-paragraph">これで「日付ではない純粋な数値」だけをTRUEにできます。</p>



<h3 class="wp-block-heading"><span id="toc28">Q2.「123」のように数値に見えるセルがFALSEになるのはなぜですか？</span></h3>



<p class="wp-block-paragraph">セルが文字列として保存されている可能性が高いです。</p>



<p class="wp-block-paragraph">よくある原因は2つあります。1つはセルの先頭にアポストロフィ（<code>'</code>）が付いているケース、もう1つは書式が「書式なしテキスト」になっているケースです。</p>



<p class="wp-block-paragraph">確認するには <code>=TYPE(A2)</code> を使い、結果が2なら文字列です。</p>



<p class="wp-block-paragraph">対処法としては、書式を「表示形式」→「数値」→「自動」に変更して値を入力し直すか、<code>=VALUE(A2)</code> で数値に変換してください。</p>



<h3 class="wp-block-heading"><span id="toc29">Q3. ExcelのISNUMBER関数と互換性はありますか？</span></h3>



<p class="wp-block-paragraph">完全な互換性があります。</p>



<p class="wp-block-paragraph">ExcelとGoogleスプレッドシートのISNUMBER関数は、構文も判定結果も同じです。日付・時刻をTRUEと判定する挙動も共通しています。</p>



<p class="wp-block-paragraph">そのためxlsxファイルをスプレッドシートで開いても、逆にスプレッドシートをExcelで開いても、ISNUMBER関数を含む数式はそのまま機能します。ファイルのやり取りでも安心です。</p>



<h3 class="wp-block-heading"><span id="toc30">Q4. 配列（範囲）に対してISNUMBERは使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。ただし単体ではそのまま範囲を渡すと先頭セルしか判定しない場合があります。</p>



<p class="wp-block-paragraph">範囲全体を判定したいときは、ARRAYFORMULA関数・FILTER関数・SUMPRODUCT関数などと組み合わせるのが定番です。</p>



<p class="wp-block-paragraph">たとえば数値セルの個数を数えるなら、この記事で紹介した次の数式が使えます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(A2:A20)*1)</code></pre>



<p class="wp-block-paragraph">範囲を扱う関数の中にISNUMBERを入れることで、配列に対しても正しく機能します。</p>



<h3 class="wp-block-heading"><span id="toc31">Q5. COUNTIF関数とISNUMBER+SUMPRODUCTはどう使い分けますか？</span></h3>



<p class="wp-block-paragraph">「何を数えたいか」で選びます。</p>



<p class="wp-block-paragraph">純粋に数値が入っているセルだけを数えたいなら、SUMPRODUCT + ISNUMBERが正確です。文字列や日付を除外して数値だけをカウントできます。</p>



<p class="wp-block-paragraph">一方、「空白以外の入力済みセル数」を知りたいだけなら、<code>=COUNTIF(A2:A20,"<>"&"")</code> のほうがシンプルでわかりやすいです。</p>



<p class="wp-block-paragraph">文字列が混在するデータで「数値のセル数」を正確に把握したい場面では、SUMPRODUCT + ISNUMBERを選びましょう。</p>



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



<p class="wp-block-paragraph">ISNUMBER関数は、セルの値が数値かどうかをTRUE/FALSEで判定するシンプルな関数です。</p>



<p class="wp-block-paragraph">ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>引数は1つ。数値ならTRUE、それ以外はFALSE</li><li>日付・時刻もTRUEになる（内部的にシリアル値だから）</li><li>SEARCH関数やFIND関数と組み合わせると「特定の文字列を含むか」の判定ができる</li><li>FILTER関数と組み合わせれば数値の行だけ抽出、SUMPRODUCT関数と組み合わせれば数値セルの個数をカウントできる</li><li>「数値に見えるのにFALSE」のときはセルの書式を確認する</li><li>ISBLANKやISTEXTなど他のIS系関数と用途に応じて使い分ける</li></ul>



<p class="wp-block-paragraph">数値チェックや部分一致検索に、ぜひ活用してみてください。</p>



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



<p class="wp-block-paragraph">特定の文字列が含まれるかを検索するなら、<a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数の使い方</a>もあわせてどうぞ。</p>



<p class="wp-block-paragraph">大文字・小文字を区別して検索したい場合は、<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数の使い方</a>を参考にしてください。</p>



<p class="wp-block-paragraph">空白セルの判定には、<a href="https://mashukabu.com/spreadsheet-isblank-function/">ISBLANK関数の使い方</a>が便利です。</p>



<p class="wp-block-paragraph">条件によって表示を切り替えたい場合は、<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数の使い方</a>をご覧ください。</p>



<p class="wp-block-paragraph">エラー判定をしたいときは、<a href="https://mashukabu.com/spreadsheet-iserror-function/">ISERROR関数の使い方</a>もチェックしてみてください。</p>



<p class="wp-block-paragraph">論理値（TRUE/FALSE）かどうかを判定するなら、<a href="https://mashukabu.com/spreadsheet-islogical-function/">ISLOGICAL関数の使い方</a>をご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-isnumber-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-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">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>スプレッドシートの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-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">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>スプレッドシートの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-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">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>ExcelのISNUMBER関数の使い方｜数値と文字列型数字の見分け方も解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-isnumber/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-isnumber/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 31 Mar 2022 13:57:10 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ISNUMBER関数]]></category>
		<category><![CDATA[IS関数]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[TYPE関数]]></category>
		<category><![CDATA[データ検証]]></category>
		<category><![CDATA[数値判定]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1490</guid>

					<description><![CDATA[ExcelのISNUMBER関数の使い方を基本から解説。文字列型数字と数値型の見分け方、SEARCH関数との組み合わせ、TYPE関数との違い・使い分け、IS系12関数の横断比較、データ入力規則への活用、FAQまで実務パターンを網羅しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで数字が入っているはずなのに、SUM関数で合計すると0になる……」そんな経験はありませんか。原因の多くは、見た目は数字なのにセルの中身が「文字列」として扱われていることです。</p>



<p class="wp-block-paragraph">こうした「見えない型のズレ」を一発で見抜けるのが、ISNUMBER関数です。</p>



<p class="wp-block-paragraph">この記事では、ISNUMBER関数の基本から実務活用まで解説します。文字列型数字の見分け方やSEARCH関数との組み合わせも紹介します。TYPE関数・IS系12関数との使い分けやFAQまでカバーします。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>この記事は次のような人におすすめ</p><p>&#8211; セルの値が数値として認識されているか確認したい<br>&#8211; 文字列型の数字と数値型の違いを見分けたい<br>&#8211; SEARCH関数やIF関数と組み合わせた実務テクニックを知りたい<br>&#8211; IS系関数やTYPE関数との違いを整理したい</p></blockquote>




  <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">ISNUMBER関数とは？数値かどうかを判定する関数</a><ol><li><a href="#toc2" tabindex="0">戻り値はTRUE/FALSEのどちらか</a></li></ol></li><li><a href="#toc3" tabindex="0">ISNUMBER関数の書き方（構文と引数）</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">ISNUMBER関数の基本的な使い方</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">ISNUMBERで確認する</a></li><li><a href="#toc13" tabindex="0">VALUE関数で数値に変換する</a></li><li><a href="#toc14" tabindex="0">数式を使わず一括で数値型に変換する方法</a></li></ol></li><li><a href="#toc15" tabindex="0">ISNUMBER関数の実務活用パターン</a><ol><li><a href="#toc16" tabindex="0">パターン1: IF関数と組み合わせてデータ種別を振り分ける</a></li><li><a href="#toc17" tabindex="0">パターン2: SEARCH関数と組み合わせて部分一致を判定する</a></li><li><a href="#toc18" tabindex="0">パターン3: 条件付き書式で数値以外のセルをハイライトする</a></li><li><a href="#toc19" tabindex="0">パターン4: データの入力規則で数値のみに制限する</a></li><li><a href="#toc20" tabindex="0">パターン5: 範囲内に数値が含まれるかをチェックする</a></li></ol></li><li><a href="#toc21" tabindex="0">ISNUMBER関数とTYPE関数の使い分け</a><ol><li><a href="#toc22" tabindex="0">用途別の選び方</a></li></ol></li><li><a href="#toc23" tabindex="0">ISNUMBER関数とISTEXT関数の違い</a></li><li><a href="#toc24" tabindex="0">IS系12関数まとめ比較</a><ol><li><a href="#toc25" tabindex="0">選び方のポイント</a></li></ol></li><li><a href="#toc26" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc27" tabindex="0">ISNUMBER関数のよくある質問（FAQ）</a><ol><li><a href="#toc28" tabindex="0">Q1. 数字が入っているのにISNUMBERがFALSEを返すのはなぜ？</a></li><li><a href="#toc29" tabindex="0">Q2. ISNUMBERとISTEXTはどちらを使えばいい？</a></li><li><a href="#toc30" tabindex="0">Q3. 日付や時刻を「日付かどうか」で判定するには？</a></li><li><a href="#toc31" tabindex="0">Q4. ISNUMBER自体がエラーを返すことはある？</a></li><li><a href="#toc32" tabindex="0">Q5. ISNUMBERはGoogleスプレッドシートでも使える？</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ</a><ol><li><a href="#toc34" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ISNUMBER関数とは？数値かどうかを判定する関数</span></h2>



<p class="wp-block-paragraph">ISNUMBER（いず・なんばー）関数は、指定した値が<strong>数値かどうか</strong>をTRUE/FALSEで判定する関数です。「IS（〜かどうか）+ NUMBER（数値）」が名前の由来です。</p>



<p class="wp-block-paragraph">対象が数値であればTRUEを返します。文字列・論理値・エラー値・空白セルなど、数値以外はすべてFALSEです。</p>



<p class="wp-block-paragraph">ExcelのIS系関数（情報関数）の1つで、セルに入っているデータの種類を確認するファミリーに属しています。データの品質チェックや条件分岐の前処理など、実務のさまざまな場面で活躍します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ISNUMBER関数はExcel 2003以降のすべてのバージョンで使用できます。Excel 2021 / Microsoft 365はもちろん、<a href="https://mashukabu.com/spreadsheet-isnumber-function/">GoogleスプレッドシートのISNUMBER関数</a>でも同じ構文で利用可能です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">戻り値はTRUE/FALSEのどちらか</span></h3>



<p class="wp-block-paragraph">ここがポイントです。ISNUMBER関数は「数値かどうか」をTRUE/FALSEで返すだけの判定関数です。値を別の型に変換する機能はありません。</p>



<p class="wp-block-paragraph">文字列型の数字を数値に変えたいときは<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>を使います。ISNUMBER関数は「数値かどうかを知りたい」「条件分岐に使いたい」場面で力を発揮します。</p>



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



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



<pre class="wp-block-code"><code>=ISNUMBER(テストの対象)</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>テストの対象</td><td>必須</td><td>数値かどうか判定したい値またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけで、省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。</p>



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



<p class="wp-block-paragraph">まずはシンプルな例で、どんな値がTRUE/FALSEになるか確認してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">値の種類ごとの判定結果</span></h3>



<p class="wp-block-paragraph">さまざまなデータをISNUMBER関数に渡したときの結果を一覧にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td><code>=ISNUMBER(100)</code></td><td><strong>TRUE</strong></td><td>整数は数値</td></tr><tr><td><code>=ISNUMBER(3.14)</code></td><td><strong>TRUE</strong></td><td>小数も数値</td></tr><tr><td><code>=ISNUMBER(-50)</code></td><td><strong>TRUE</strong></td><td>負の数も数値</td></tr><tr><td><code>=ISNUMBER("100")</code></td><td><strong>FALSE</strong></td><td>ダブルクォーテーションで囲むと文字列</td></tr><tr><td><code>=ISNUMBER("東京")</code></td><td><strong>FALSE</strong></td><td>テキストは数値ではない</td></tr><tr><td><code>=ISNUMBER(TRUE)</code></td><td><strong>FALSE</strong></td><td>論理値は数値ではない</td></tr><tr><td><code>=ISNUMBER("")</code></td><td><strong>FALSE</strong></td><td>空文字列は数値ではない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、<code>"100"</code> のように引用符で囲んだ数字はテキスト扱いになる点です。見た目が同じでも型が違えばFALSEになります。</p>



<h3 class="wp-block-heading"><span id="toc8">セル参照で判定する</span></h3>



<p class="wp-block-paragraph">実務ではセル参照を使うケースがほとんどです。</p>



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



<p class="wp-block-paragraph">A1に <code>100</code> が入っていればTRUEを返します。<code>"東京"</code> や論理値 <code>TRUE</code> が入っていればFALSEです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>日付や時刻もExcel内部ではシリアル値（数値）として管理されています。そのため、日付セルに対してISNUMBERを使うとTRUEが返ります。「日付かどうか」を判定したいときはISNUMBERでは区別できない点に注意してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">数式の結果を判定する</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数の引数には数式を直接入れることもできます。</p>



<pre class="wp-block-code"><code>=ISNUMBER(A1+B1)</code></pre>



<p class="wp-block-paragraph">A1とB1が両方とも数値なら、計算結果も数値のためTRUEです。どちらかが文字列だと <code>#VALUE!</code> エラーが発生し、ISNUMBERはFALSEを返します。</p>



<h2 class="wp-block-heading"><span id="toc10">文字列型数字と数値型の見分け方</span></h2>



<p class="wp-block-paragraph">ISNUMBER関数が実務でもっとも重宝するのが、「文字列型の数字」を見つける場面です。</p>



<h3 class="wp-block-heading"><span id="toc11">文字列型数字の落とし穴</span></h3>



<p class="wp-block-paragraph">CSVファイルの取り込みや外部システムからのコピー&#038;ペーストで、数字が文字列として格納されることがあります。見た目はまったく同じ <code>1234</code> でも、型が違うとこんなトラブルが起きます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>やAVERAGE関数の計算対象から除外される</li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>で一致しない（数値と文字列は別物）</li><li>並べ替えが期待どおりにならない</li></ul>



<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>「合計したいのに0になる」「平均が出ない」という症状の多くは、この文字列型数字が原因です。まずISNUMBERで型をチェックするのがトラブル解決の第一歩になります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">ISNUMBERで確認する</span></h3>



<p class="wp-block-paragraph">問題のあるセルを特定するには、ISNUMBERで一列まとめてチェックするのが手軽です。</p>



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



<p class="wp-block-paragraph">数値型の <code>1234</code> ならTRUE、文字列型の <code>"1234"</code> ならFALSEです。この数式を下方向にコピーすれば、どのセルが文字列型なのか一目でわかります。</p>



<h3 class="wp-block-heading"><span id="toc13">VALUE関数で数値に変換する</span></h3>



<p class="wp-block-paragraph">文字列型の数字が見つかったら、<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で数値に変換しましょう。</p>



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



<p class="wp-block-paragraph">変換できない文字列（例: 「abc」）を渡すと <code>#VALUE!</code> エラーになります。エラーを回避したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>と組み合わせてください。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「1,234」のようにカンマ区切りや通貨記号を含む文字列、海外形式（小数点にカンマを使う）の数字を変換したい場合は<a href="https://mashukabu.com/excel-function-howto-use-numbervalue/">NUMBERVALUE関数</a>が便利です。区切り文字を指定して数値に変換できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc14">数式を使わず一括で数値型に変換する方法</span></h3>



<p class="wp-block-paragraph">数式を残したくない場合は、次の方法でセルの値そのものを数値型に変換できます。</p>



<ul class="wp-block-list"><li><strong>区切り位置を使う</strong>: 対象列を選択し「データ」タブ →「区切り位置」→ そのまま「完了」を押すと、文字列型数字が数値に変わります</li><li><strong>形式を選択して貼り付け</strong>: 空セルに <code>1</code> を入力してコピーし、対象範囲を選んで「形式を選択して貼り付け」→「乗算」を選ぶと、まとめて数値化できます</li><li><strong>エラーチェックから変換</strong>: 緑の三角マークが出ているセルを選び、表示されるアイコンから「数値に変換する」を選びます</li></ul>



<p class="wp-block-paragraph">データ量が多いときは「区切り位置」が手早くておすすめです。</p>



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



<h3 class="wp-block-heading"><span id="toc16">パターン1: IF関数と組み合わせてデータ種別を振り分ける</span></h3>



<p class="wp-block-paragraph">セルの内容が数値かどうかに応じて処理を分けたい場面で使えます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(B2),&quot;数値です&quot;,&quot;数値ではありません&quot;)</code></pre>



<p class="wp-block-paragraph">B2が数値なら「数値です」、それ以外なら「数値ではありません」と表示します。外部システムから取り込んだデータに、数値が入るべき列で文字列が混ざっていないかチェックするのに便利です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>との組み合わせは、データクレンジングの第一歩としてよく使われるパターンです。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン2: SEARCH関数と組み合わせて部分一致を判定する</span></h3>



<p class="wp-block-paragraph">ISNUMBER関数のもっとも有名な活用法が、SEARCH関数との組み合わせです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数</a>は指定した文字が見つかると位置（数値）を返します。見つからないと <code>#VALUE!</code> エラーです。これをISNUMBERで包むと、エラーがFALSEに変わります。</p>



<pre class="wp-block-code"><code>=ISNUMBER(SEARCH(&quot;東京&quot;,A2))</code></pre>



<p class="wp-block-paragraph">A2に「東京都千代田区」が入っていればTRUEを返します。「大阪府」ならFALSEです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と組み合わせれば、含む/含まないで分岐もできます。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(SEARCH(&quot;東京&quot;,A2)),&quot;関東&quot;,&quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">条件付き書式のルールにこの数式を設定すれば、特定の文字を含むセルだけをハイライトすることも可能です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SEARCH関数は大文字・小文字を区別しません。大文字・小文字を区別して判定したいときは<a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数</a>に置き換えてください。<code>=ISNUMBER(FIND("ABC",A2))</code> のように同じ要領で使えます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc18">パターン3: 条件付き書式で数値以外のセルをハイライトする</span></h3>



<p class="wp-block-paragraph">数値が入るべき列に文字列が紛れ込んでいるセルだけを目立たせたい場合の設定手順です。</p>



<ol class="wp-block-list"><li>対象範囲を選択します</li><li>「ホーム」タブ →「条件付き書式」→「新しいルール」を選択します</li><li>「数式を使用して、書式設定するセルを決定」を選びます</li><li>数式欄に <code>=NOT(ISNUMBER(A1))</code> と入力します</li><li>好きな書式（赤い塗りつぶしなど）を設定します</li></ol>



<p class="wp-block-paragraph">これで数値以外のセルが色分けされます。大量データの品質チェックで、目視では見落としがちな文字列型数字を一発で見つけられます。</p>



<h3 class="wp-block-heading"><span id="toc19">パターン4: データの入力規則で数値のみに制限する</span></h3>



<p class="wp-block-paragraph">数値以外の入力をあらかじめブロックしたい場合は、データの入力規則にISNUMBERを使います。</p>



<ol class="wp-block-list"><li>対象セル（例: A1:A100）を選択します</li><li>「データ」タブ →「データの入力規則」を選択します</li><li>「設定」タブで「入力値の種類」を「ユーザー設定」にします</li><li>数式欄に <code>=ISNUMBER(A1)</code> と入力します</li></ol>



<p class="wp-block-paragraph">これで文字列型の数字も含めて、数値以外が入力されたときにエラーメッセージが表示されます。「整数」や「小数点数」の組み込みルールとの違いは、文字列として入力された数字も拒否できる点です。</p>



<h3 class="wp-block-heading"><span id="toc20">パターン5: 範囲内に数値が含まれるかをチェックする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a>と組み合わせると、範囲内に数値がいくつあるかを数えられます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(A2:A100)*1)</code></pre>



<p class="wp-block-paragraph">まず <code>ISNUMBER(A2:A100)</code> で範囲全体をTRUE/FALSEの配列に変換します。次に <code>*1</code> で数値（1/0）に変えてから合計します。これで「数値型のセルが何件あるか」を一発で確認できます。文字列型数字が混ざっている表で、本物の数値が何件あるかを把握したいときに便利です。</p>



<p class="wp-block-paragraph">逆に「文字列型がいくつあるか」を数えたい場合は次のように書きます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((NOT(ISNUMBER(A2:A100)))*1)</code></pre>



<h2 class="wp-block-heading"><span id="toc21">ISNUMBER関数とTYPE関数の使い分け</span></h2>



<p class="wp-block-paragraph">「セルの型を調べる」という目的では、<a href="https://mashukabu.com/excel-function-howto-use-type/">TYPE関数</a>も選択肢に入ります。両者の違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ISNUMBER関数</th><th>TYPE関数</th></tr></thead><tbody><tr><td>戻り値</td><td>TRUE / FALSE</td><td>数値コード（1, 2, 4, 16, 64）</td></tr><tr><td>判定対象</td><td>数値かどうか（1つの型のみ）</td><td>すべての型を区別できる</td></tr><tr><td>IF関数との相性</td><td>そのまま条件に使える</td><td>コードと比較する必要がある</td></tr><tr><td>可読性</td><td>高い（結果がわかりやすい）</td><td>低い（コードの意味を覚える必要あり）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TYPE関数が返す数値コードは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>コード</th><th>データ型</th></tr></thead><tbody><tr><td>1</td><td>数値</td></tr><tr><td>2</td><td>テキスト</td></tr><tr><td>4</td><td>論理値</td></tr><tr><td>16</td><td>エラー値</td></tr><tr><td>64</td><td>配列</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc22">用途別の選び方</span></h3>



<p class="wp-block-paragraph">「数値かどうか」だけを知りたいならISNUMBER関数がおすすめです。結果がTRUE/FALSEなので、IF関数や条件付き書式にそのまま組み込めます。</p>



<p class="wp-block-paragraph">一方、「数値・テキスト・論理値・エラーをすべて区別したい」ときはTYPE関数の出番です。たとえば <code>=IF(TYPE(A1)=2,"テキスト","テキスト以外")</code> のように使います。</p>



<p class="wp-block-paragraph">実務では「数値かどうか」を確認するケースが圧倒的に多いです。まずISNUMBER関数を覚えておけば、大半の場面で困りません。</p>



<h2 class="wp-block-heading"><span id="toc23">ISNUMBER関数とISTEXT関数の違い</span></h2>



<p class="wp-block-paragraph">ISNUMBER関数とよく一緒に使われるのが、文字列かどうかを判定する<a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT関数</a>です。両者は「裏返しの関係」にありますが、すべてのケースで反対になるわけではありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>値の例</th><th>ISNUMBER</th><th>ISTEXT</th></tr></thead><tbody><tr><td><code>100</code>（数値）</td><td>TRUE</td><td>FALSE</td></tr><tr><td><code>"100"</code>（文字列型数字）</td><td>FALSE</td><td>TRUE</td></tr><tr><td><code>"東京"</code>（テキスト）</td><td>FALSE</td><td>TRUE</td></tr><tr><td><code>TRUE</code>（論理値）</td><td>FALSE</td><td>FALSE</td></tr><tr><td>空白セル</td><td>FALSE</td><td>FALSE</td></tr><tr><td><code>#N/A</code>（エラー）</td><td>FALSE</td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、論理値・空白・エラーは<strong>両方ともFALSE</strong>になることです。ISNUMBERのFALSEが必ずしも「文字列」を意味するわけではありません。</p>



<p class="wp-block-paragraph">「数値か、それ以外か」を切り分けたいならISNUMBER。「文字列か、それ以外か」を切り分けたいならISTEXT、と目的に応じて選びましょう。</p>



<h2 class="wp-block-heading"><span id="toc24">IS系12関数まとめ比較</span></h2>



<p class="wp-block-paragraph">IS系関数は全部で12種類あります。セルに入っているデータの種類ごとに、対応する関数が用意されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>判定内容</th><th>TRUEになる例</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK</a></td><td>空白セルか</td><td>未入力のセル</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR</a></td><td>任意のエラー値か</td><td>#N/A, #VALUE!, #REF! など</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserr/">ISERR</a></td><td>#N/A以外のエラー値か</td><td>#VALUE!, #REF!, #DIV/0! など</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA</a></td><td>#N/Aエラーか</td><td>#N/Aのみ</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-islogical/">ISLOGICAL</a></td><td>論理値か</td><td>TRUE, FALSE</td></tr><tr><td>ISNUMBER（この記事）</td><td>数値か</td><td>100, 3.14, 日付のシリアル値</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT</a></td><td>文字列か</td><td>&#8220;東京&#8221;, &#8220;123&#8221;（文字列型）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isnontext/">ISNONTEXT</a></td><td>文字列以外か</td><td>100, TRUE, 空白</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isformula/">ISFORMULA</a></td><td>数式が入っているか</td><td>=SUM(A1:A10)が入ったセル</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isref/">ISREF</a></td><td>有効なセル参照か</td><td>A1, Sheet2!B3</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iseven/">ISEVEN</a></td><td>偶数か</td><td>2, 4, 100</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isodd/">ISODD</a></td><td>奇数か</td><td>1, 3, 99</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ISFORMULAはExcel 2013以降で使用できます。それ以外のIS系関数はExcel 2003以降で利用可能です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc25">選び方のポイント</span></h3>



<p class="wp-block-paragraph">迷ったときは、次の流れで考えてみてください。</p>



<ul class="wp-block-list"><li><strong>数値かどうか知りたい</strong> → ISNUMBER</li><li><strong>文字列かどうか知りたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT関数</a></li><li><strong>空白セルかどうか知りたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数</a></li><li><strong>エラー値を処理したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>または<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a></li><li><strong>数式が入っているか確認したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-isformula/">ISFORMULA関数</a></li></ul>



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



<p class="wp-block-paragraph">ISNUMBER関数自体がエラーを返すことはほとんどありません。ただし「思った結果にならない」ケースがあるので、確認しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数字なのにFALSEが返る</td><td>セルが文字列型になっている</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>や「区切り位置」で数値に変換する</td></tr><tr><td>日付セルでTRUEが返る</td><td>日付はシリアル値（数値）扱い</td><td>日付判定は <code>CELL("format",A1)</code> を使う</td></tr><tr><td>空白セルでFALSEが返る</td><td>空白は数値ではない</td><td>空白判定は<a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数</a>を使う</td></tr><tr><td>エラー値でFALSEが返る</td><td>ISNUMBERはエラーを数値とみなさない</td><td>エラー判定は<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を使う</td></tr><tr><td>#NAME? が表示される</td><td>関数名のスペルミス</td><td><code>ISNUMBER</code> のスペルを確認する</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc28">Q1. 数字が入っているのにISNUMBERがFALSEを返すのはなぜ？</span></h3>



<p class="wp-block-paragraph">セルの中身が「文字列型の数字」になっているためです。見た目は数字でも、CSVの取り込みや外部システムからの貼り付けで文字列として格納されることがあります。この場合、ISNUMBERはFALSEを返します。</p>



<p class="wp-block-paragraph">セルの左上に緑色の三角マークが出ていないか確認してください。出ている場合は文字列型のサインです。<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>や「区切り位置」で数値に変換すればTRUEになります。</p>



<h3 class="wp-block-heading"><span id="toc29">Q2. ISNUMBERとISTEXTはどちらを使えばいい？</span></h3>



<p class="wp-block-paragraph">「数値か、それ以外か」を切り分けたいならISNUMBERです。「文字列か、それ以外か」を切り分けたいなら<a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT関数</a>を使います。</p>



<p class="wp-block-paragraph">注意したいのは、論理値・空白・エラーは両方ともFALSEになる点です。ISNUMBERがFALSEだからといって、必ずしも文字列とは限りません。判定の目的に合わせて選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc30">Q3. 日付や時刻を「日付かどうか」で判定するには？</span></h3>



<p class="wp-block-paragraph">ISNUMBERでは日付を区別できません。日付・時刻はExcel内部でシリアル値（数値）として管理されているため、ISNUMBERはTRUEを返してしまいます。</p>



<p class="wp-block-paragraph">「日付形式かどうか」を判定したいときは、<code>CELL("format",A1)</code> で表示形式コードを調べる方法があります。日付形式のセルは <code>"D1"</code> や <code>"D4"</code> などのコードが返ります。</p>



<h3 class="wp-block-heading"><span id="toc31">Q4. ISNUMBER自体がエラーを返すことはある？</span></h3>



<p class="wp-block-paragraph">ほぼありません。引数にエラー値を渡しても、エラーをそのまま返すのではなくFALSEを返します。</p>



<pre class="wp-block-code"><code>=ISNUMBER(1/0)</code></pre>



<p class="wp-block-paragraph"><code>1/0</code> は <code>#DIV/0!</code> エラーですが、ISNUMBERはFALSEを返します。この「エラーを吸収する」性質があるため、SEARCH関数との組み合わせが成立するわけです。</p>



<h3 class="wp-block-heading"><span id="toc32">Q5. ISNUMBERはGoogleスプレッドシートでも使える？</span></h3>



<p class="wp-block-paragraph">はい。<a href="https://mashukabu.com/spreadsheet-isnumber-function/">GoogleスプレッドシートのISNUMBER関数</a>も <code>=ISNUMBER(値)</code> の構文はまったく同じです。SEARCH関数との組み合わせや、IF+ISNUMBERのパターンも同一の書き方で動作します。</p>



<p class="wp-block-paragraph">スプレッドシート固有の機能として、ARRAYFORMULAと組み合わせると1つの数式で範囲全体を一括判定できます。</p>



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



<p class="wp-block-paragraph">ISNUMBER関数は、セルの値が数値かどうかをTRUE/FALSEで判定するシンプルな関数です。</p>



<ul class="wp-block-list"><li>引数は1つだけ。数値ならTRUE、それ以外ならFALSE</li><li>日付・時刻はシリアル値（数値）のためTRUEになる</li><li>文字列型の数字と数値型を見分けるデータ検証に便利</li><li>SEARCH関数との組み合わせで「特定の文字を含むか」を判定できる</li><li>TYPE関数との違いは、戻り値の形式と判定範囲</li></ul>



<p class="wp-block-paragraph">IS系12関数の中でも、ISNUMBERは特に出番の多い関数です。データの品質チェックやSEARCH関数との部分一致検索は、Excelの定番テクニックとしてぜひ覚えておいてください。</p>



<p class="wp-block-paragraph">IS系関数をさらに詳しく知りたい方は、<a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数</a>の記事もあわせてチェックしてみてください。すべてのExcel関数を目的別に探したい場合は<a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧（機能別）</a>が便利です。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-istext/">ISTEXT関数の使い方｜文字列かどうかを確認する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数の使い方｜空白セルを判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-islogical/">ISLOGICAL関数の使い方｜論理値（TRUE/FALSE）を判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数の使い方｜エラー値を判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA関数の使い方｜#N/Aエラーを判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isformula/">ISFORMULA関数の使い方｜数式が入っているか確認する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isref/">ISREF関数の使い方｜セル参照が有効か判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方｜文字列を数値に変換する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-numbervalue/">NUMBERVALUE関数の使い方｜区切り文字を指定して数値に変換する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-type/">TYPE関数の使い方｜データ型を数値コードで判定する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数の使い方｜文字の位置を検索する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方｜条件分岐の基本</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方｜エラーを非表示にする方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-count/">COUNT関数の使い方｜数値セルの個数を数える方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countblank/">COUNTBLANK関数の使い方｜空白セルを数える方法</a></li><li><a href="https://mashukabu.com/spreadsheet-isnumber-function/">GoogleスプレッドシートのISNUMBER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧（機能別）</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-isnumber/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
