<?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>ISNUMBER &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/isnumber/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 26 May 2026 10:48:42 +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>ISNUMBER &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのTYPE関数の使い方｜データ型取得</title>
		<link>https://mashukabu.com/spreadsheet-type-function/</link>
					<comments>https://mashukabu.com/spreadsheet-type-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 01:13:32 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ISNUMBER]]></category>
		<category><![CDATA[IS関数]]></category>
		<category><![CDATA[TYPE]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データ型]]></category>
		<category><![CDATA[データ検証]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4993</guid>

					<description><![CDATA[GoogleスプレッドシートのTYPE関数の使い方を初心者向けに解説。データ型を数値コードで取得する基本構文から、IF関数との組み合わせ、データ検証、ISNUMBERなどIS系関数との違い、Excelとの相違点まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「このセルに入っているのは数値？ テキスト？」と手作業で確認していませんか。</p>



<p class="wp-block-paragraph">数件ならセルをクリックすれば書式バーの右寄せ・左寄せでだいたい見分けがつきますが、データが数百行になると一つひとつ目で追うのは現実的ではありません。</p>



<p class="wp-block-paragraph">数値に見えて実はテキストだった、というミスは集計エラーや SUM 関数の結果がゼロになる原因になりがちですよね。そんなときに便利なのが<strong>TYPE関数</strong>です。</p>



<p class="wp-block-paragraph">この記事では、TYPE関数の基本から実務で役立つ活用パターン、よくあるエラーの対処法、ISNUMBER関数などIS系関数との使い分けまでまとめて紹介します。データチェックの作業をぐっと効率化できますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのTYPE関数とは？</a></li><li><a href="#toc2" tabindex="0">TYPE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">TYPE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">値の種類ごとの判定結果</a></li><li><a href="#toc7" tabindex="0">セル参照で確認する</a></li><li><a href="#toc8" tabindex="0">空白セルの場合</a></li></ol></li><li><a href="#toc9" tabindex="0">TYPE関数の実践的な使い方・応用例</a><ol><li><a href="#toc10" tabindex="0">IF関数と組み合わせてデータ型を日本語で表示する</a></li><li><a href="#toc11" tabindex="0">数値であるべきセルにテキストが混入していないかチェックする</a></li><li><a href="#toc12" tabindex="0">ARRAYFORMULA と組み合わせて列全体を一括チェックする</a></li><li><a href="#toc13" tabindex="0">条件付き書式でテキスト混入を可視化する</a></li><li><a href="#toc14" tabindex="0">エラー値の検出に使う</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">TYPE関数とIS系関数の使い分け</a></li><li><a href="#toc17" tabindex="0">Excelとの違い</a></li><li><a href="#toc18" tabindex="0">TYPE関数のFAQ</a><ol><li><a href="#toc19" tabindex="0">Q1. TYPE関数は数式そのものの種類を判定できますか？</a></li><li><a href="#toc20" tabindex="0">Q2. なぜ空白セルで 1（数値）が返るのですか？</a></li><li><a href="#toc21" tabindex="0">Q3. 文字列の数字（&#8221;100&#8243; など）を数値に変換するにはどうすればよいですか？</a></li><li><a href="#toc22" tabindex="0">Q4. ARRAYFORMULA で TYPE 関数を使うときの注意点は？</a></li><li><a href="#toc23" tabindex="0">Q5. 数値か日付かを区別したいときは？</a></li><li><a href="#toc24" tabindex="0">Q6. TYPE関数の結果を条件付き書式で活用できますか？</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a><ol><li><a href="#toc26" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのTYPE関数とは？</span></h2>



<p class="wp-block-paragraph">TYPE関数は、<strong>指定した値のデータ型を数値コードで返す関数</strong>です。</p>



<p class="wp-block-paragraph">セルの中身が数値なのかテキストなのか、論理値なのかエラーなのかを 1 桁から 2 桁の番号で教えてくれます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>返り値</th><th>データ型</th><th>具体例</th></tr></thead><tbody><tr><td>1</td><td>数値</td><td>100、3.14、日付（シリアル値）、時刻</td></tr><tr><td>2</td><td>テキスト</td><td>&#8220;こんにちは&#8221;、&#8221;123&#8243;（文字列の数字）、空文字 &#8220;&#8221;</td></tr><tr><td>4</td><td>論理値</td><td>TRUE、FALSE</td></tr><tr><td>16</td><td>エラー値</td><td>#VALUE!、#REF!、#N/A、#DIV/0! など</td></tr><tr><td>64</td><td>配列</td><td>{1,2,3}、ARRAYFORMULA の結果</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li>セルのデータ型を数値コード（1/2/4/16/64）で返す</li><li>IF関数やSWITCH関数と組み合わせてデータ型ごとに処理を分岐する</li><li>入力データの検証（数値であるべきセルにテキストが入っていないかチェック）</li><li>エラー値の検出と分類</li><li>条件付き書式と組み合わせて型違いのセルをハイライト</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>TYPE関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、返り値のコードも完全に同じなので、ファイルのやり取りでも安心です。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=TYPE(値)</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>データ型を調べたい値、セル参照、または数式の結果</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>TYPE関数はエラー値を渡しても自身はエラーにならず、必ず 16 を返します。<code><a href="https://mashukabu.com/spreadsheet-iserror-function/">ISERROR関数</a></code> と違い、エラーの種類にかかわらず一律で検出できますよ。エラー処理の前段として使うと数式がシンプルになります。</p></blockquote>



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



<p class="wp-block-paragraph">まずはシンプルな例で動きを確認してみましょう。実際にセルに入力すると感覚がつかめます。</p>



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



<p class="wp-block-paragraph">さまざまなデータをTYPE関数で調べると、次のような結果になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td>=TYPE(100)</td><td>1</td><td>整数の数値</td></tr><tr><td>=TYPE(3.14)</td><td>1</td><td>小数の数値</td></tr><tr><td>=TYPE(&#8220;こんにちは&#8221;)</td><td>2</td><td>テキスト</td></tr><tr><td>=TYPE(&#8220;123&#8221;)</td><td>2</td><td>文字列として入力された数字</td></tr><tr><td>=TYPE(TRUE)</td><td>4</td><td>論理値</td></tr><tr><td>=TYPE(#N/A)</td><td>16</td><td>エラー値</td></tr><tr><td>=TYPE({1,2,3})</td><td>64</td><td>配列リテラル</td></tr><tr><td>=TYPE(TODAY())</td><td>1</td><td>日付はシリアル値（数値）として扱われる</td></tr><tr><td>=TYPE(NOW())</td><td>1</td><td>時刻も数値（小数）として扱われる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">日付と時刻の扱いに注意しましょう。スプレッドシートでは日付は内部的に数値（シリアル値）で管理されています。たとえば 2026/3/22 は内部的には 46107 という数値で、見た目だけが日付フォーマットになっています。そのためTYPE関数は 1（数値）を返します。</p>



<h3 class="wp-block-heading"><span id="toc7">セル参照で確認する</span></h3>



<p class="wp-block-paragraph">セル参照を使えば、特定のセルのデータ型を調べられます。</p>



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



<p class="wp-block-paragraph">A1 に「100」が入っていれば 1 を返します。「こんにちは」なら 2 です。データが入っているシートを直接調べたいときはこちらの形式が便利です。</p>



<h3 class="wp-block-heading"><span id="toc8">空白セルの場合</span></h3>



<p class="wp-block-paragraph">空白セルを指定すると、TYPE関数は 1（数値）を返します。空白は内部的に 0 として扱われるためです。これは少し意外ですが、計算式での扱いを考えるとつじつまが合っています。</p>



<pre class="wp-block-code"><code>=TYPE(A1)  → A1が空白なら 1 を返す</code></pre>



<p class="wp-block-paragraph">空白セルと数値を区別したい場合は、IF関数で先に空白チェックをしましょう。次のように書けば「空白」と表示されます。</p>



<pre class="wp-block-code"><code>=IF(A1=&quot;&quot;,&quot;空白&quot;,TYPE(A1))</code></pre>



<p class="wp-block-paragraph">ISBLANK関数を使う方法もあります。<code><a href="https://mashukabu.com/spreadsheet-isblank-function/">ISBLANK関数</a></code> は完全に空のセルだけを TRUE と判定するので、より厳密に空白を見分けたいときに役立ちますよ。</p>



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



<p class="wp-block-paragraph">実務でよく使うパターンを 5 つ紹介します。コピペして列名やセル範囲だけ書き換えれば、すぐ使えます。</p>



<h3 class="wp-block-heading"><span id="toc10">IF関数と組み合わせてデータ型を日本語で表示する</span></h3>



<p class="wp-block-paragraph">数値コードだけでは分かりにくいので、日本語ラベルに変換すると便利です。レビュー作業や引き継ぎ資料で重宝します。</p>



<pre class="wp-block-code"><code>=IF(TYPE(A2)=1,&quot;数値&quot;,IF(TYPE(A2)=2,&quot;テキスト&quot;,IF(TYPE(A2)=4,&quot;論理値&quot;,IF(TYPE(A2)=16,&quot;エラー&quot;,&quot;配列&quot;))))</code></pre>



<p class="wp-block-paragraph">ちょっと長い数式に見えますが、やっていることはシンプルです。TYPE関数の返り値（1/2/4/16/64）に応じて対応するラベルを返しているだけですよ。</p>



<p class="wp-block-paragraph">SWITCH関数を使うともっとすっきり書けます。</p>



<pre class="wp-block-code"><code>=SWITCH(TYPE(A2),1,&quot;数値&quot;,2,&quot;テキスト&quot;,4,&quot;論理値&quot;,16,&quot;エラー&quot;,64,&quot;配列&quot;)</code></pre>



<p class="wp-block-paragraph">SWITCH関数は値ごとに結果を切り替えられるので、IFのネストを避けたいときに便利です。条件が増えても見通しが良いまま保てます。</p>



<h3 class="wp-block-heading"><span id="toc11">数値であるべきセルにテキストが混入していないかチェックする</span></h3>



<p class="wp-block-paragraph">売上データや数量の列に、数値に見えるテキスト（&#8221;100&#8243; など）が混ざっていると集計がズレます。CSVをインポートしたときによくある事故です。TYPE関数で一括チェックできます。</p>



<pre class="wp-block-code"><code>=IF(TYPE(B2)&lt;&gt;1,&quot;要確認&quot;,&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">B2 のデータ型が数値（1）でなければ「要確認」と表示します。これを列全体にコピーすれば、テキスト混入をまとめて検出できますよ。</p>



<p class="wp-block-paragraph">数値かどうかを判定するなら <code><a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER関数</a></code> のほうが直感的ですが、TYPE関数なら他のデータ型と一緒にチェックできるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc12">ARRAYFORMULA と組み合わせて列全体を一括チェックする</span></h3>



<p class="wp-block-paragraph">1行ずつ数式をコピーする代わりに、ARRAYFORMULAで列全体を一括処理できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(B2:B100=&quot;&quot;,&quot;&quot;,IF(TYPE(B2:B100)&lt;&gt;1,&quot;要確認&quot;,&quot;OK&quot;)))</code></pre>



<p class="wp-block-paragraph">B2からB100まで一気にデータ型をチェックします。空白セルはスキップしているので、不要な「要確認」が出ないようになっています。</p>



<p class="wp-block-paragraph">データ件数が変わるシートなら範囲を <code>B2:B</code> に広げてもよいでしょう。大量のデータを扱うときに便利な方法です。</p>



<h3 class="wp-block-heading"><span id="toc13">条件付き書式でテキスト混入を可視化する</span></h3>



<p class="wp-block-paragraph">「要確認」と表示するだけでなく、セルの色を変えて目立たせる方法もあります。条件付き書式で次のカスタム数式を設定します。</p>



<pre class="wp-block-code"><code>=AND(B2&lt;&gt;&quot;&quot;,TYPE(B2)&lt;&gt;1)</code></pre>



<p class="wp-block-paragraph">数値以外のセルが薄い赤色になり、ぱっと見で問題箇所がわかります。データ入力チームと共有するシートに仕込んでおくと、間違いに気づいてもらいやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc14">エラー値の検出に使う</span></h3>



<p class="wp-block-paragraph">TYPE関数はエラー値を渡しても自身はエラーにならないという特徴があります。これを利用して、エラーの有無を判定できます。</p>



<pre class="wp-block-code"><code>=IF(TYPE(A2)=16,&quot;エラーあり&quot;,&quot;正常&quot;)</code></pre>



<p class="wp-block-paragraph"><code><a href="https://mashukabu.com/spreadsheet-iserror-function/">ISERROR関数</a></code> でも同じことができます。ただしTYPE関数なら、エラー判定と他のデータ型判定を1つの数式でまとめられるのが利点です。</p>



<p class="wp-block-paragraph">たとえば「エラーなら『エラー』、テキストなら『要数値化』、それ以外は空白」のように複数条件を組み合わせたいときに便利です。</p>



<pre class="wp-block-code"><code>=SWITCH(TYPE(A2),16,&quot;エラー&quot;,2,&quot;要数値化&quot;,&quot;&quot;)</code></pre>



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



<p class="wp-block-paragraph">TYPE関数で「思った結果にならない」ケースをまとめました。ほとんどは TYPE 関数の仕様を理解すれば解決できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数値のはずなのに 2（テキスト）が返る</td><td>セルにテキスト形式の数字（&#8221;100&#8243;）が入っている</td><td>VALUE関数で数値に変換する。<code>=VALUE(A1)</code></td></tr><tr><td>日付セルで 1 が返る</td><td>日付はシリアル値（数値）で管理されている</td><td>仕様どおりの動作。日付かどうかを調べるなら <code><a href="https://mashukabu.com/spreadsheet-isdate-function/">ISDATE関数</a></code> を使う</td></tr><tr><td>空白セルで 1 が返る</td><td>空白は 0（数値）として扱われる</td><td>空白を区別するなら <code>=IF(A1="","空白",TYPE(A1))</code></td></tr><tr><td>配列で 64 が返らない</td><td>セルに配列数式の結果が表示されている場合、個々のセルは要素の型を返す</td><td>配列全体を確認するには <code>=TYPE({1,2,3})</code> のように直接指定する</td></tr><tr><td>ハイパーリンクで 2 が返る</td><td>ハイパーリンクは内部的にテキストとして扱われる</td><td>URL を判定したいなら <code><a href="https://mashukabu.com/spreadsheet-isurl-function/">ISURL関数</a></code> を使う</td></tr><tr><td>数式そのものを判定したい</td><td>TYPE関数は数式の結果のみを判定する</td><td>数式かどうかは <code><a href="https://mashukabu.com/spreadsheet-isformula-function/">ISFORMULA関数</a></code> を使う</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">スプレッドシートにはデータ型を判定する関数が複数あります。TYPE関数との違いを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返り値</th><th>用途</th></tr></thead><tbody><tr><td>TYPE</td><td>数値コード（1/2/4/16/64）</td><td>データ型を数値で分類したいとき</td></tr><tr><td>ISNUMBER</td><td>TRUE/FALSE</td><td>数値かどうかだけを判定したいとき</td></tr><tr><td>ISTEXT</td><td>TRUE/FALSE</td><td>テキストかどうかだけを判定したいとき</td></tr><tr><td>ISERROR</td><td>TRUE/FALSE</td><td>エラーかどうかだけを判定したいとき</td></tr><tr><td>ISLOGICAL</td><td>TRUE/FALSE</td><td>論理値かどうかだけを判定したいとき</td></tr><tr><td>ISDATE</td><td>TRUE/FALSE</td><td>日付として認識できるかを判定したいとき</td></tr><tr><td>ISBLANK</td><td>TRUE/FALSE</td><td>完全に空のセルかを判定したいとき</td></tr></tbody></table></figure>



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



<ol class="wp-block-list"><li><strong>単一の型をチェックするだけなら IS 系関数</strong>: 「数値かどうかだけ知りたい」なら <code><a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER関数</a></code> のほうがシンプルで読みやすいです。</li><li><strong>複数のデータ型を一度に分岐したいときは TYPE 関数</strong>: 「数値なら計算、テキストならそのまま表示、エラーなら警告」のように 3 つ以上に分岐する場合は、TYPE関数とSWITCH関数の組み合わせがすっきり書けます。</li><li><strong>日付やURLなど特殊な型は専用関数を使う</strong>: 日付なら <code><a href="https://mashukabu.com/spreadsheet-isdate-function/">ISDATE関数</a></code>、URL なら <code><a href="https://mashukabu.com/spreadsheet-isurl-function/">ISURL関数</a></code>、数式そのものを判定するなら <code><a href="https://mashukabu.com/spreadsheet-isformula-function/">ISFORMULA関数</a></code> が便利です。</li></ol>



<p class="wp-block-paragraph">迷ったら「型を 1 つだけチェック → IS 系」「複数の型で分岐 → TYPE」と覚えておけばOKです。</p>



<h2 class="wp-block-heading"><span id="toc17">Excelとの違い</span></h2>



<p class="wp-block-paragraph">TYPE関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。コピー＆ペーストでも互換性で困ることはありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel</th><th>Googleスプレッドシート</th></tr></thead><tbody><tr><td>構文</td><td>=TYPE(値)</td><td>=TYPE(値)</td></tr><tr><td>数値</td><td>1</td><td>1</td></tr><tr><td>テキスト</td><td>2</td><td>2</td></tr><tr><td>論理値</td><td>4</td><td>4</td></tr><tr><td>エラー値</td><td>16</td><td>16</td></tr><tr><td>配列</td><td>64</td><td>64</td></tr><tr><td>引数の数</td><td>1（必須）</td><td>1（必須）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">返り値のコードも完全に同じです。Excelファイルとして共有してもTYPE関数の挙動はそのまま維持されます。安心して使ってください。</p>



<h2 class="wp-block-heading"><span id="toc18">TYPE関数のFAQ</span></h2>



<h3 class="wp-block-heading"><span id="toc19">Q1. TYPE関数は数式そのものの種類を判定できますか？</span></h3>



<p class="wp-block-paragraph">いいえ、TYPE関数は<strong>数式の結果</strong>を判定するだけです。たとえば <code>=A1+1</code> というセルを TYPE 関数で調べると、計算結果が数値なら 1、エラーなら 16 が返ります。「そのセルに数式が入っているかどうか」を判定したい場合は <code><a href="https://mashukabu.com/spreadsheet-isformula-function/">ISFORMULA関数</a></code> を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc20">Q2. なぜ空白セルで 1（数値）が返るのですか？</span></h3>



<p class="wp-block-paragraph">スプレッドシートでは空白セルは内部的に 0（数値）として扱われるためです。SUM関数で空白セルが含まれていてもエラーにならないのと同じ理由です。空白を厳密に区別したい場合は IF関数で <code>=""</code> のチェックを先に行うか、<code><a href="https://mashukabu.com/spreadsheet-isblank-function/">ISBLANK関数</a></code> を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">Q3. 文字列の数字（&#8221;100&#8243; など）を数値に変換するにはどうすればよいですか？</span></h3>



<p class="wp-block-paragraph">VALUE関数を使います。<code>=VALUE("100")</code> と書けば数値の 100 が返ります。CSVインポートで数字がテキスト扱いになってしまった列は、別の列で <code>=VALUE(A2)</code> を行ってから値貼り付けで上書きするのが定番のテクニックです。TYPE関数で 2 が返ったセルが対象、と覚えておくと作業しやすいですね。</p>



<h3 class="wp-block-heading"><span id="toc22">Q4. ARRAYFORMULA で TYPE 関数を使うときの注意点は？</span></h3>



<p class="wp-block-paragraph">ARRAYFORMULA の中で TYPE 関数を使う場合、範囲全体に対して一括で評価されます。<code>=ARRAYFORMULA(TYPE(A2:A))</code> のように書けば各セルの型コードがずらっと返ります。ただし配列の中身を 64 として扱いたい場合は、配列リテラル <code>{1,2,3}</code> のように直接指定する必要があります。</p>



<h3 class="wp-block-heading"><span id="toc23">Q5. 数値か日付かを区別したいときは？</span></h3>



<p class="wp-block-paragraph">TYPE関数では区別できません。日付はシリアル値（数値）として扱われるためです。日付かどうかを判定するなら <code><a href="https://mashukabu.com/spreadsheet-isdate-function/">ISDATE関数</a></code> を使うか、書式や値の範囲で判定するロジックを組む必要があります。「2020年以降の日付か」のように厳密にチェックしたい場合は、シリアル値の数値範囲（例: <code>>=43831</code>）で比較する方法もありますよ。</p>



<h3 class="wp-block-heading"><span id="toc24">Q6. TYPE関数の結果を条件付き書式で活用できますか？</span></h3>



<p class="wp-block-paragraph">はい、できます。条件付き書式の「カスタム数式」に <code>=TYPE(A1)<>1</code> のように指定すれば、数値以外のセルだけ色をつけられます。データ入力ミスを発見したいシートに仕込んでおくと、目視チェックの手間が大きく減りますよ。</p>



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



<p class="wp-block-paragraph">TYPE関数は、セルのデータ型を数値コードで返すシンプルな関数です。シンプルですが、データ検証や型分岐のロジックを組むときの土台になる便利な関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=TYPE(値)</code> で、引数は1つだけ</li><li>返り値は 1（数値）、2（テキスト）、4（論理値）、16（エラー）、64（配列）の5種類</li><li>日付や時刻はシリアル値として扱われるため 1（数値）を返す</li><li>空白セルは 0（数値）として扱われるため 1 を返す</li><li>IF関数やSWITCH関数と組み合わせてデータ型ごとに処理を分岐できる</li><li>「数値かどうかだけ」なら ISNUMBER関数、複数型の分岐なら TYPE関数</li><li>日付やURLなど特殊な型は IS 系の専用関数を使うとよい</li><li>ExcelのTYPE関数と完全に同じ動作で、互換性も安心</li></ul>



<p class="wp-block-paragraph">まずは <code>=TYPE(A1)</code> で手元のデータの型を調べるところから試してみてください。データ集計の前段にこの一手間を入れるだけで、ミスが大幅に減らせますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-isnumber-function/">スプレッドシートのISNUMBER関数の使い方｜数値判定</a></li><li><a href="https://mashukabu.com/spreadsheet-istext-function/">スプレッドシートのISTEXT関数の使い方｜テキスト判定</a></li><li><a href="https://mashukabu.com/spreadsheet-iserror-function/">スプレッドシートのISERROR関数の使い方｜エラー判定</a></li><li><a href="https://mashukabu.com/spreadsheet-islogical-function/">スプレッドシートのISLOGICAL関数の使い方｜論理値判定</a></li><li><a href="https://mashukabu.com/spreadsheet-isblank-function/">スプレッドシートのISBLANK関数の使い方｜空白判定</a></li><li><a href="https://mashukabu.com/spreadsheet-isdate-function/">スプレッドシートのISDATE関数の使い方｜日付判定</a></li><li><a href="https://mashukabu.com/spreadsheet-isformula-function/">スプレッドシートのISFORMULA関数の使い方｜数式判定</a></li><li><a href="https://mashukabu.com/spreadsheet-isurl-function/">スプレッドシートのISURL関数の使い方｜URL判定</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-type-function/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>スプレッドシートの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-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">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>
	</channel>
</rss>
