<?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>IFERROR関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/iferror%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 12 Jun 2026 21:57:54 +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>IFERROR関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Googleスプレッドシートのエラー値一覧｜全9種類の原因と対処法を完全解説</title>
		<link>https://mashukabu.com/spreadsheet-error-value-guide/</link>
					<comments>https://mashukabu.com/spreadsheet-error-value-guide/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 21:57:54 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[エラー値]]></category>
		<category><![CDATA[エラー対処]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7974</guid>

					<description><![CDATA[Googleスプレッドシートのエラー値9種類（#ERROR!・#DIV/0!・#VALUE!・#REF!・#N/A・#NAME?・#NUM!・#NULL!・#GETTING_DATA）の原因と対処法を完全解説。各エラーのNG例・OK例の数式とIFERROR・IFNAでの消し方、Excelとの違いまで早見表付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Googleスプレッドシートで数式を入力したら、セルに見慣れない文字列が表示された経験はありませんか。<code>#ERROR!</code> や <code>#REF!</code> のように、先頭に <code>#</code> が付いた表示です。</p>



<p class="wp-block-paragraph">エラーの意味がわからないまま放置すると、集計結果がずれることがあります。共有相手に見せる資料の数字が崩れるなど、思わぬトラブルにもつながります。</p>



<p class="wp-block-paragraph">この記事では、Googleスプレッドシートで表示されるエラー値9種類の原因と対処法を一覧で解説します。各エラーにはNG例・OK例の数式を載せているので、いま画面に出ているエラーをすぐに解決できます。Excelから移行した方が戸惑いやすい「Sheetsにしかないエラー」も専用セクションで取り上げます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのエラー値とは？エラーが表示される仕組み</a></li><li><a href="#toc2" tabindex="0">【早見表】スプレッドシートのエラー値9種類の一覧</a></li><li><a href="#toc3" tabindex="0">よく出るエラー値の原因と対処法</a><ol><li><a href="#toc4" tabindex="0">#DIV/0!（ディバイド・パー・ゼロ）</a></li><li><a href="#toc5" tabindex="0">#N/A（エヌエー）</a></li><li><a href="#toc6" tabindex="0">#VALUE!（バリュー）</a></li><li><a href="#toc7" tabindex="0">#REF!（リファレンス）</a></li><li><a href="#toc8" tabindex="0">#NAME?（ネーム）</a></li></ol></li><li><a href="#toc9" tabindex="0">たまに出るエラー値の原因と対処法</a><ol><li><a href="#toc10" tabindex="0">#NUM!（ナンバー）</a></li><li><a href="#toc11" tabindex="0">#NULL!（ヌル）</a></li><li><a href="#toc12" tabindex="0">#GETTING_DATA（ゲッティングデータ）</a></li></ol></li><li><a href="#toc13" tabindex="0">スプレッドシート特有の「#ERROR!」の原因と対処法</a></li><li><a href="#toc14" tabindex="0">ExcelとGoogleスプレッドシートのエラー値の違い</a></li><li><a href="#toc15" tabindex="0">エラー表示を消す・処理する関数の使い分け</a><ol><li><a href="#toc16" tabindex="0">IFERROR &#8212; すべてのエラーを一括処理</a></li><li><a href="#toc17" tabindex="0">IFNA &#8212; #N/Aだけを処理</a></li><li><a href="#toc18" tabindex="0">ISERROR / ERROR.TYPE &#8212; 条件分岐とエラー集計</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのエラー値とは？エラーが表示される仕組み</span></h2>



<p class="wp-block-paragraph">エラー値とは、数式が正しく計算できないときにGoogleスプレッドシートがセルに返す特殊な文字列のことです。先頭に <code>#</code> が付いているのが特徴です。「この数式には問題がありますよ」とスプレッドシートが教えてくれているサインだと考えてください。</p>



<p class="wp-block-paragraph">エラーが出る原因は、おもに次の3パターンに分かれます。</p>



<ul class="wp-block-list"><li><strong>引数の型や値が不正</strong> &#8212; 数値が必要な場所に文字列を渡した場合など</li><li><strong>参照先が存在しない</strong> &#8212; セルや行・列が削除された、検索値が見つからない場合など</li><li><strong>数式の書き方自体に問題がある</strong> &#8212; 関数名のスペルミス、構文の組み立てミスなど</li></ul>



<p class="wp-block-paragraph">Googleスプレッドシートのエラー値は全部で9種類あります。そのうち8種はExcelとも共通する一般的なエラーです。残る1種の <code>#ERROR!</code> は、Googleスプレッドシートにしかない独自のエラーです。</p>



<p class="wp-block-paragraph">まずは全体像を早見表で確認しましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">【早見表】スプレッドシートのエラー値9種類の一覧</span></h2>



<p class="wp-block-paragraph">下の表は、Googleスプレッドシートのエラー値9種類をまとめたものです。「番号」の列は、後述する<a href="https://mashukabu.com/spreadsheet-error-type-function/">ERROR.TYPE関数</a>が返すエラー種別の数値です。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>読み方</th><th>原因の要約</th><th>番号</th><th>発生しやすい関数・操作</th></tr></thead><tbody><tr><td><code>#ERROR!</code></td><td>エラー</td><td>数式の構文・評価が不正</td><td>&#8212;</td><td>QUERY、ARRAYFORMULA、IMPORTRANGE</td></tr><tr><td><code>#DIV/0!</code></td><td>ディバイド・パー・ゼロ</td><td>ゼロまたは空白セルで除算</td><td>2</td><td>四則演算（<code>/</code>）、DIVIDE、AVERAGE</td></tr><tr><td><code>#VALUE!</code></td><td>バリュー</td><td>引数の型が不一致</td><td>3</td><td>四則演算（文字列混在）、SUMIF、DATE</td></tr><tr><td><code>#REF!</code></td><td>リファレンス</td><td>参照先が存在しない／権限不足</td><td>4</td><td>行・列削除後の数式、IMPORTRANGE、VLOOKUP</td></tr><tr><td><code>#NAME?</code></td><td>ネーム</td><td>関数名や名前の定義が不正</td><td>5</td><td>関数名スペルミス、未定義の名前参照</td></tr><tr><td><code>#N/A</code></td><td>エヌエー</td><td>検索値が見つからない</td><td>7</td><td>VLOOKUP、HLOOKUP、XLOOKUP、MATCH</td></tr><tr><td><code>#NUM!</code></td><td>ナンバー</td><td>数値が範囲外</td><td>6</td><td>SQRT（負の数）、LOG（0以下）、MROUND</td></tr><tr><td><code>#NULL!</code></td><td>ヌル</td><td>範囲指定の交差演算が不正</td><td>1</td><td>セル範囲の区切りミス</td></tr><tr><td><code>#GETTING_DATA</code></td><td>ゲッティングデータ</td><td>外部データを取得中</td><td>8</td><td>IMPORTRANGE、GOOGLEFINANCE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表をブックマークしておくと、エラーが出たときにすぐ原因を絞り込めます。ここからは、発生頻度の高いものから順に各エラーの詳細を見ていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">よく出るエラー値の原因と対処法</span></h2>



<p class="wp-block-paragraph">まずは実務で遭遇する頻度が高い5種類です。多くのトラブルはこの5つのどれかに当てはまります。</p>



<h3 class="wp-block-heading"><span id="toc4">#DIV/0!（ディバイド・パー・ゼロ）</span></h3>



<p class="wp-block-paragraph"><code>#DIV/0!</code> は、割り算の分母がゼロまたは空白セルになっているときに表示されるエラーです。スプレッドシートに限らず、数学の世界でも「0で割る」ことは定義されていません。</p>



<p class="wp-block-paragraph">直接ゼロで割っているケースだけでなく、参照先のセルがまだ未入力のときにも発生します。</p>



<pre class="wp-block-code"><code>=A1/B1
→ B1が空白またはゼロのとき #DIV/0!

=DIVIDE(A1, B1)
→ DIVIDE関数でも分母が0なら #DIV/0!</code></pre>



<p class="wp-block-paragraph">対処法は、分母がゼロかどうかをIF関数で事前にチェックする方法が定番です。</p>



<pre class="wp-block-code"><code>=IF(B1=0, &quot;&quot;, A1/B1)
→ 分母が0なら空白、それ以外なら割り算の結果を表示

=IFERROR(A1/B1, &quot;&quot;)
→ エラーなら空白、それ以外なら結果を表示</code></pre>



<p class="wp-block-paragraph">データがまだ入力途中のシートでは、あらかじめ<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>を仕込んでおくとエラー表示を防げます。</p>



<h3 class="wp-block-heading"><span id="toc5">#N/A（エヌエー）</span></h3>



<p class="wp-block-paragraph"><code>#N/A</code> は、検索関数で検索値が見つからなかったときに表示されるエラーです。<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>やXLOOKUP、MATCH関数でもっとも頻繁に発生します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;Z999&quot;, A1:B100, 2, FALSE)
→ Z999が表に存在しないと #N/A

=VLOOKUP(A1, D1:E100, 2, FALSE)
→ A1が「東京 」（末尾スペース）だと見つからず #N/A</code></pre>



<p class="wp-block-paragraph">データのインポート時に末尾スペースが紛れ込むケースは非常に多いです。見た目では判別できないため、<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で前後のスペースを除去してから検索するのがおすすめです。</p>



<pre class="wp-block-code"><code>=VLOOKUP(TRIM(A1), D1:E100, 2, FALSE)
→ 検索値の前後スペースを除去してから検索

=IFNA(VLOOKUP(A1, D1:E100, 2, FALSE), &quot;該当なし&quot;)
→ #N/Aのときだけ「該当なし」を表示</code></pre>



<p class="wp-block-paragraph"><code>#N/A</code> の処理には、IFERROR関数よりも<a href="https://mashukabu.com/spreadsheet-ifna-function/">IFNA関数</a>を使うのがベターです。IFNAなら <code>#N/A</code> 以外のエラー（数式のバグ）はそのまま表示されます。そのため、問題を見逃しにくくなります。</p>



<h3 class="wp-block-heading"><span id="toc6">#VALUE!（バリュー）</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> は、関数や数式の引数に想定外の型が渡されたときに表示されます。数値が必要な場所に文字列を入れた場合などが典型です。原因の幅が広いため、特定が難しいエラーの一つです。</p>



<pre class="wp-block-code"><code>=A1+B1
→ A1に「abc」など文字列が入っていると #VALUE!

=DATE(2024, &quot;十二&quot;, 1)
→ 月に漢数字を指定すると #VALUE!</code></pre>



<p class="wp-block-paragraph">見落としがちなのが、セルに全角スペースが入っているケースです。見た目は空白なのに、スプレッドシートは「文字列が入っている」と判定します。そのため計算に使おうとすると <code>#VALUE!</code> になります。</p>



<p class="wp-block-paragraph">対処法は、以下の3点を順番に確認してみてください。</p>



<ul class="wp-block-list"><li>数値を指定する引数に文字列を渡していないか</li><li>参照先のセルにスペース（全角・半角）が混入していないか</li><li>参照先のセルが別のエラーを返していないか</li></ul>



<pre class="wp-block-code"><code>=A1 + VALUE(B1)
→ VALUE関数で文字列を数値に変換してから計算</code></pre>



<p class="wp-block-paragraph">原因が見つからないときは、数式を構成するセルを一つずつ確認しましょう。想定外の値が入っていないかチェックするのが確実です。</p>



<h3 class="wp-block-heading"><span id="toc7">#REF!（リファレンス）</span></h3>



<p class="wp-block-paragraph"><code>#REF!</code> は、数式が参照しているセル・行・列が存在しないときに表示されます。もう存在しない場所を見にいっている状態です。</p>



<pre class="wp-block-code"><code>=A1+#REF!
→ 元は =A1+B1 だったが、B列を削除して壊れた

=VLOOKUP(A1, B1:C10, 5, FALSE)
→ 2列しかないのに5列目を指定すると #REF!</code></pre>



<p class="wp-block-paragraph">行や列を丸ごと削除する操作のあとは特に注意が必要です。数式バーを確認して、引数に <code>#REF!</code> と表示されている箇所があれば、そこを正しいセル参照に書き直します。行や列を削除したあとにFILTER関数やQUERY関数が#REF!などで崩れるケースは<a href="https://mashukabu.com/spreadsheet-filter-query-row-column-delete-fix/">行・列削除後にFILTER/QUERYが崩れる原因と修正法</a>で詳しく解説しています。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A1, B1:C10, 2, FALSE)
→ 範囲内の正しい列番号に修正</code></pre>



<p class="wp-block-paragraph">Googleスプレッドシート特有の原因として、<a href="https://mashukabu.com/spreadsheet-importrange-complete-guide/">IMPORTRANGE関数</a>の権限承認があります。別のスプレッドシートを初めて参照するとき、最初は <code>#REF!</code> が表示されます。これは「アクセス許可がまだ」というサインに過ぎません。エラーセルにマウスを乗せると「アクセスを許可」ボタンが現れます。これをクリックすると接続が確立され、データが流れ込みます。</p>



<pre class="wp-block-code"><code>=IMPORTRANGE(&quot;スプレッドシートのURL&quot;, &quot;シート1!A1:C10&quot;)
→ 初回は #REF! → 「アクセスを許可」をクリックで解決</code></pre>



<p class="wp-block-paragraph">参照元のスプレッドシートが削除されたり、URLが変わったりすると、IMPORTRANGEは恒久的に <code>#REF!</code> のままになります。その場合はURLを最新のものに修正してください。</p>



<h3 class="wp-block-heading"><span id="toc8">#NAME?（ネーム）</span></h3>



<p class="wp-block-paragraph"><code>#NAME?</code> は、スプレッドシートが数式の中に「知らない名前」を見つけたときに返すエラーです。関数名のスペルミスが原因であることが大半です。</p>



<pre class="wp-block-code"><code>=VLOKUP(A1, B1:C10, 2, FALSE)
→ VLOOKUPのスペルミスで #NAME?

=IF(A1=完了, &quot;OK&quot;, &quot;NG&quot;)
→ 「完了」が名前として解釈されて #NAME?</code></pre>



<p class="wp-block-paragraph">次のポイントを確認すると、ほとんどのケースで解決します。</p>



<ul class="wp-block-list"><li>関数名のスペルが正しいか（入力途中に表示される候補リストを活用する）</li><li>文字列がダブルクォーテーション（<code>"</code>）で囲まれているか</li><li>名前付き範囲を使っている場合、その名前が登録されているか</li></ul>



<pre class="wp-block-code"><code>=VLOOKUP(A1, B1:C10, 2, FALSE)
=IF(A1=&quot;完了&quot;, &quot;OK&quot;, &quot;NG&quot;)
→ 正しいスペルと引用符に修正</code></pre>



<p class="wp-block-paragraph">Excelで作った数式をスプレッドシートに貼り付けたときも <code>#NAME?</code> が出ることがあります。GoogleスプレッドシートにないExcel専用関数を使っている場合などが該当します。</p>



<h2 class="wp-block-heading"><span id="toc9">たまに出るエラー値の原因と対処法</span></h2>



<p class="wp-block-paragraph">ここからは、発生頻度はやや低いものの、原因を知らないと戸惑いやすい3種類です。</p>



<h3 class="wp-block-heading"><span id="toc10">#NUM!（ナンバー）</span></h3>



<p class="wp-block-paragraph"><code>#NUM!</code> は、数式の計算結果がスプレッドシートで扱える数値の範囲を超えたとき、または関数が解を見つけられなかったときに表示されます。</p>



<pre class="wp-block-code"><code>=SQRT(-4)
→ 負の数の平方根は実数の範囲で計算不可なので #NUM!

=LOG(0)
→ 対数は正の数のみなので #NUM!</code></pre>



<p class="wp-block-paragraph">引数に渡している値が、その関数の許容範囲内かどうかを確認します。</p>



<pre class="wp-block-code"><code>=SQRT(ABS(A1))
→ ABS関数で絶対値にしてから平方根を計算

=IF(A1&gt;0, LOG(A1), &quot;計算不可&quot;)
→ 正の数のときだけ対数を計算</code></pre>



<p class="wp-block-paragraph">MROUND関数のように、引数の符号が一致しないと <code>#NUM!</code> になる関数もあります。値と倍数を同じ符号でそろえると解決します。</p>



<h3 class="wp-block-heading"><span id="toc11">#NULL!（ヌル）</span></h3>



<p class="wp-block-paragraph"><code>#NULL!</code> は、セル範囲の指定で区切り文字を誤ったときに表示されるエラーです。9種類の中では発生頻度が低いものの、原因を知らないと「なぜ出たのか」がわかりにくいタイプです。</p>



<p class="wp-block-paragraph">スプレッドシートの数式では、半角スペースは「2つの範囲の共通部分（交差部分）を返す」という意味を持ちます。2つの範囲に共通部分がないと <code>#NULL!</code> になります。</p>



<pre class="wp-block-code"><code>=SUM(A1:A5 B1:B5)
→ カンマの代わりにスペースで区切り、共通部分がないので #NULL!</code></pre>



<p class="wp-block-paragraph">ほとんどの場合、カンマ（<code>,</code>）またはコロン（<code>:</code>）の入力忘れが原因です。</p>



<pre class="wp-block-code"><code>=SUM(A1:A5, B1:B5)
→ カンマで複数範囲を指定

=SUM(A1:A5)
→ コロンで連続範囲を指定</code></pre>



<p class="wp-block-paragraph">このエラーは、Excelで作った数式をスプレッドシートに貼り付けたときに見かけることが多いです。</p>



<h3 class="wp-block-heading"><span id="toc12">#GETTING_DATA（ゲッティングデータ）</span></h3>



<p class="wp-block-paragraph"><code>#GETTING_DATA</code> は、外部ソースからデータを取得中であることを示す一時的な表示です。スプレッドシートでは「Loading&#8230;」と表示されることもあります。厳密にはエラーではなく、データの読み込みが完了すれば自動的に消えます。</p>



<p class="wp-block-paragraph">IMPORTRANGEやGOOGLEFINANCEなどの外部データ関数を使ったときに表示されます。基本的には待つだけで解消されます。</p>



<p class="wp-block-paragraph">数分経っても消えない場合は、外部データ関数を使いすぎている可能性があります。以下を試してみてください。</p>



<ul class="wp-block-list"><li>ネットワーク接続を確認する</li><li>シート内のIMPORTRANGE関数の数を減らす</li><li>取得するデータの範囲を必要最小限にしぼる</li></ul>



<h2 class="wp-block-heading"><span id="toc13">スプレッドシート特有の「#ERROR!」の原因と対処法</span></h2>



<p class="wp-block-paragraph"><code>#ERROR!</code> は、Googleスプレッドシートにしかない独自のエラーです。Excelには存在しないため、Excelから移行した方が「見たことのないエラーが出た」と戸惑いやすいのが特徴です。</p>



<p class="wp-block-paragraph"><code>#ERROR!</code> は、数式の解析（パース）は通ったものの、評価の段階で計算できないときに表示されます。おもな原因は次のとおりです。</p>



<ul class="wp-block-list"><li>数式の構文が不正（カッコの過不足、引数の組み立てミス）</li><li>配列のサイズが揃わない（ARRAYFORMULA関数で行数・列数が一致しない）</li><li><a href="https://mashukabu.com/spreadsheet-query-function/">QUERY関数</a>のクエリ文字列の書き方が間違っている</li><li>IMPORTRANGEで揮発性関数（NOW・RANDなど）を含むセルを参照した</li></ul>



<p class="wp-block-paragraph">具体的な発生パターンを見てみましょう。</p>



<pre class="wp-block-code"><code>=QUERY(A1:C10, &quot;SELET A, B&quot;)
→ SELECTのスペルミスでクエリ構文エラーになり #ERROR!

=ARRAYFORMULA(A1:A5 * B1:B3)
→ 5行と3行で配列サイズが揃わず #ERROR!</code></pre>



<p class="wp-block-paragraph">対処法は、エラーの原因ごとに変わります。</p>



<pre class="wp-block-code"><code>=QUERY(A1:C10, &quot;SELECT A, B&quot;)
→ クエリ文字列のスペル・構文を正しく修正

=ARRAYFORMULA(A1:A5 * B1:B5)
→ 配列のサイズ（行数・列数）をそろえる</code></pre>



<p class="wp-block-paragraph">QUERY関数の <code>#ERROR!</code> は、クエリ文字列の構文ミスがほとんどです。列の指定（SELECT）、条件（WHERE）、並べ替え（ORDER BY）の各キーワードのスペルと順序を確認してください。</p>



<p class="wp-block-paragraph">IMPORTRANGEで <code>#ERROR!</code> が出る場合は、参照元のセルに <code>NOW</code> や <code>RAND</code> などの揮発性関数が含まれていないかチェックします。揮発性関数のセルは参照しない設計に変更すると解決します。</p>



<p class="wp-block-paragraph">エラーセルにマウスを乗せると、原因の手がかりとなるメッセージが表示されることがあります。まずはそのメッセージを確認すると、修正箇所を絞り込みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc14">ExcelとGoogleスプレッドシートのエラー値の違い</span></h2>



<p class="wp-block-paragraph">ExcelからGoogleスプレッドシートに移行すると、「Excelで見慣れたエラーが出ない」「逆に見たことのないエラーが出る」という戸惑いが生まれます。両者のエラー値の違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>Excel</th><th>スプレッドシート</th><th>備考</th></tr></thead><tbody><tr><td><code>#DIV/0!</code></td><td>あり</td><td>あり</td><td>共通</td></tr><tr><td><code>#VALUE!</code></td><td>あり</td><td>あり</td><td>共通</td></tr><tr><td><code>#REF!</code></td><td>あり</td><td>あり</td><td>Sheetsはimportrange権限でも発生</td></tr><tr><td><code>#NAME?</code></td><td>あり</td><td>あり</td><td>共通</td></tr><tr><td><code>#N/A</code></td><td>あり</td><td>あり</td><td>共通</td></tr><tr><td><code>#NUM!</code></td><td>あり</td><td>あり</td><td>共通</td></tr><tr><td><code>#NULL!</code></td><td>あり</td><td>あり</td><td>共通（Sheetsはまれ）</td></tr><tr><td><code>#ERROR!</code></td><td>なし</td><td><strong>あり</strong></td><td>Sheets固有の構文・評価エラー</td></tr><tr><td><code>#GETTING_DATA</code></td><td>あり</td><td>あり（Loading&#8230;表記）</td><td>外部データ取得中</td></tr><tr><td><code>####</code></td><td>あり</td><td>なし</td><td>Sheetsは列幅不足でも表示されない</td></tr><tr><td><code>#SPILL!</code></td><td>あり（365）</td><td>なし</td><td>Sheetsはスピルの概念が異なる</td></tr><tr><td><code>#CALC!</code></td><td>あり（365）</td><td>なし</td><td>Sheets固有の同等エラーなし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントを整理すると、次のようになります。</p>



<ul class="wp-block-list"><li><strong>スプレッドシートにあってExcelにないエラー</strong>: <code>#ERROR!</code>（構文・評価エラー）</li><li><strong>Excelにあってスプレッドシートにないエラー</strong>: <code>####</code>・<code>#SPILL!</code>・<code>#CALC!</code></li></ul>



<p class="wp-block-paragraph">たとえばExcelで列幅が足りないときに出る <code>####</code> は、スプレッドシートには存在しません。スプレッドシートは列幅が足りなくても数値を縮めて表示するためです。逆に、スプレッドシートでQUERYやARRAYFORMULAを使うと出る <code>#ERROR!</code> は、Excelには存在しないエラーです。</p>



<p class="wp-block-paragraph">両ツールを行き来する方は、<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a>もあわせて確認しておくと、移行時の混乱を防げます。ExcelとSheetsの違い全般については、<a href="https://mashukabu.com/excel-vs-spreadsheet/">ExcelとGoogleスプレッドシートの違い</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc15">エラー表示を消す・処理する関数の使い分け</span></h2>



<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>IFERROR</td><td>すべてのエラー</td><td>エラーを空白や代替値に置き換えたいとき</td></tr><tr><td>IFNA</td><td><code>#N/A</code> のみ</td><td>検索関数の「見つからない」だけを処理したいとき</td></tr><tr><td>ISERROR</td><td>すべてのエラー（TRUE/FALSE）</td><td>IF関数や条件付き書式と組み合わせたいとき</td></tr><tr><td>ERROR.TYPE</td><td>エラー番号を取得</td><td>エラーの種類ごとに処理を分けたいとき</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">IFERROR &#8212; すべてのエラーを一括処理</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>は、数式がエラーを返した場合に代替の値を表示する関数です。もっとも手軽で、実務で使用頻度が高い関数です。</p>



<pre class="wp-block-code"><code>=IFERROR(値, エラーの場合の値)

=IFERROR(A1/B1, &quot;&quot;)
→ 割り算のエラーを空白に置き換える

=IFERROR(VLOOKUP(A1, D:E, 2, FALSE), &quot;未登録&quot;)
→ 検索のエラーに代替テキストを表示する</code></pre>



<p class="wp-block-paragraph">便利な関数ですが、すべてのエラーを一括でキャッチしてしまう点には注意が必要です。数式にバグがあっても気づけなくなるリスクがあります。そのため「なぜエラーが出るのか」を理解したうえで使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc17">IFNA &#8212; #N/Aだけを処理</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-ifna-function/">IFNA関数</a>は、<code>#N/A</code> エラーだけをキャッチする関数です。検索関数とセットで使うのに最適です。</p>



<pre class="wp-block-code"><code>=IFNA(値, #N/Aの場合の値)

=IFNA(VLOOKUP(A1, D:E, 2, FALSE), &quot;該当なし&quot;)
→ 検索の「見つからない」だけを処理する</code></pre>



<p class="wp-block-paragraph">IFERRORとの違いは、<code>#N/A</code> 以外のエラー（<code>#REF!</code> や <code>#VALUE!</code> など）はそのまま表示される点です。つまり、数式のバグに気づきやすくなります。検索関数の「見つからない」を処理したいだけなら、IFERRORよりもIFNAを選ぶのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc18">ISERROR / ERROR.TYPE &#8212; 条件分岐とエラー集計</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iserror-function/">ISERROR関数</a>は、セルがエラーかどうかをTRUE/FALSEで返す関数です。単体では使わず、IF関数や条件付き書式と組み合わせて使います。</p>



<pre class="wp-block-code"><code>=IF(ISERROR(A1/B1), &quot;エラー&quot;, A1/B1)
→ エラーなら「エラー」、それ以外なら結果を表示</code></pre>



<p class="wp-block-paragraph">条件付き書式でエラーセルを色分けしたいときも、ISERROR関数が役立ちます。ルールの数式欄に <code>=ISERROR(A1)</code> と入力すると、エラーのセルだけを塗りつぶせます。</p>



<p class="wp-block-paragraph">エラーの種類ごとに処理を分けたいときは、<a href="https://mashukabu.com/spreadsheet-error-type-function/">ERROR.TYPE関数</a>が便利です。エラーを番号で返すので、SWITCH関数と組み合わせてエラーごとに異なるメッセージを表示できます。</p>



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



<p class="wp-block-paragraph">Googleスプレッドシートのエラー値9種類の原因と対処法を一覧で解説しました。最後にポイントを整理します。</p>



<ul class="wp-block-list"><li><strong>共通の8種</strong>（<code>#DIV/0!</code>・<code>#VALUE!</code>・<code>#REF!</code>・<code>#NAME?</code>・<code>#N/A</code>・<code>#NUM!</code>・<code>#NULL!</code>・<code>#GETTING_DATA</code>）はExcelとも共通。原因のほとんどは「引数の型ミス」「参照先の消失」「スペルミス」のいずれか</li><li><strong><code>#ERROR!</code> はスプレッドシート固有</strong>。QUERY・ARRAYFORMULA・IMPORTRANGEの構文や設定を見直す</li><li><strong><code>#REF!</code> はIMPORTRANGEの権限承認</strong>でも発生する。「アクセスを許可」をクリックで解決</li><li>エラー処理には<strong>IFNA > IFERROR</strong>の優先順位で検討する。IFNAなら数式バグを見逃しにくい</li><li>条件付き書式でエラーを判定するには<strong>ISERROR関数</strong>を使う</li></ul>



<p class="wp-block-paragraph">エラーの種類と原因を押さえておくと、トラブルが発生しても慌てず対処できます。この一覧表をブックマークしておいて、困ったときにすぐ確認してみてください。</p>



<p class="wp-block-paragraph">やりたいことから関数を探したいときは、<a href="https://mashukabu.com/spreadsheet-function-list-by-function/">Googleスプレッドシート関数一覧【機能別】</a>もあわせてご活用ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-error-value-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDETECTLANGUAGE関数の使い方｜セルの言語を自動判定する</title>
		<link>https://mashukabu.com/excel-function-howto-use-detectlanguage/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-detectlanguage/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:10:46 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DETECTLANGUAGE関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FILTER関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[TRANSLATE関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[多言語データ]]></category>
		<category><![CDATA[言語検出]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5888</guid>

					<description><![CDATA[ExcelのDETECTLANGUAGE関数の使い方を初心者向けに解説します。構文・戻り値（ISO 639-1言語コード）の基本から、顧客リストの言語分類、多言語アンケートの振り分け、SWITCH関数との組み合わせで言語名を日本語表示する方法、TRANSLATE関数との連携で自動翻訳する手順まで、実務で使える数式を豊富に紹介。対応言語一覧・よくあるエラーと対処法・FAQも完備した完全ガイドです。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「海外の顧客から届いたメール、英語なのかスペイン語なのか見分けるだけでもひと苦労」「多言語アンケートの自由記述欄を言語別に集計したい」。グローバル業務を担当していると、こんな場面が増えていますよね。</p>



<p class="wp-block-paragraph">1件ずつ目視で判定するのは現実的ではありません。数百件のリストを前にため息が出てしまうのが正直なところです。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがExcelのDETECTLANGUAGE関数です。セルに入っている文字列を解析して、使われている言語を自動で判定してくれます。</p>



<p class="wp-block-paragraph">この記事では、ExcelのDETECTLANGUAGE関数の使い方を基本から実務の応用例まで解説します。SWITCH関数との組み合わせやTRANSLATE関数との連携、エラー対処やFAQまでまとめましたので、ぜひ参考にしてください。</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">ExcelのDETECTLANGUAGE関数とは？</a><ol><li><a href="#toc2" tabindex="0">どんなときに使う関数か</a></li><li><a href="#toc3" tabindex="0">利用条件（Microsoft 365が必須）</a></li><li><a href="#toc4" tabindex="0">似ている関数との違い</a></li></ol></li><li><a href="#toc5" tabindex="0">DETECTLANGUAGE関数の構文と戻り値</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数：テキスト</a></li><li><a href="#toc8" tabindex="0">戻り値：ISO 639-1 言語コード</a></li><li><a href="#toc9" tabindex="0">スピル機能でまとめて判定</a></li></ol></li><li><a href="#toc10" tabindex="0">Excel DETECTLANGUAGE関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">1つのセルの言語を判定する</a></li><li><a href="#toc12" tabindex="0">複数セルの言語を一括判定する</a></li><li><a href="#toc13" tabindex="0">IF関数と組み合わせて日本語か判定する</a></li><li><a href="#toc14" tabindex="0">直接文字列を渡してテストする</a></li><li><a href="#toc15" tabindex="0">判定結果と元の文字列を並べて確認する</a></li></ol></li><li><a href="#toc16" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc17" tabindex="0">グローバル顧客リストを言語別に分類する</a></li><li><a href="#toc18" tabindex="0">多言語アンケートを言語別に振り分ける</a></li><li><a href="#toc19" tabindex="0">FILTER関数と組み合わせて英語の行だけ抽出する</a></li><li><a href="#toc20" tabindex="0">TRANSLATE関数と連携して自動翻訳する</a></li><li><a href="#toc21" tabindex="0">IFERRORでエラー時のラベルを付ける</a></li><li><a href="#toc22" tabindex="0">条件付き書式で言語を色分けする</a></li><li><a href="#toc23" tabindex="0">Power Queryと組み合わせて定期処理を自動化する</a></li><li><a href="#toc24" tabindex="0">ピボットテーブルで言語別の傾向分析</a></li><li><a href="#toc25" tabindex="0">XLOOKUPで言語コード→言語名の変換テーブルを引く</a></li></ol></li><li><a href="#toc26" tabindex="0">短文・空白・数字のみセルでの挙動</a><ol><li><a href="#toc27" tabindex="0">空白セルを渡した場合</a></li><li><a href="#toc28" tabindex="0">数字だけのセル</a></li><li><a href="#toc29" tabindex="0">短すぎる文字列</a></li><li><a href="#toc30" tabindex="0">複数言語が混在した文字列</a></li><li><a href="#toc31" tabindex="0">記号や絵文字だけのセル</a></li></ol></li><li><a href="#toc32" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc33" tabindex="0">Text Too Long エラー</a></li><li><a href="#toc34" tabindex="0">Error in Value エラー</a></li><li><a href="#toc35" tabindex="0">Request Throttled エラー</a></li><li><a href="#toc36" tabindex="0">#NAME? エラー</a></li><li><a href="#toc37" tabindex="0">#BUSY! / #CONNECT! エラー</a></li><li><a href="#toc38" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc39" tabindex="0">DETECTLANGUAGE関数を使う際の注意点</a><ol><li><a href="#toc40" tabindex="0">クラウド経由でデータが送信される</a></li><li><a href="#toc41" tabindex="0">大量呼び出しはパフォーマンスに影響する</a></li><li><a href="#toc42" tabindex="0">判定結果は完全ではない</a></li><li><a href="#toc43" tabindex="0">Mac版・Web版の挙動差</a></li><li><a href="#toc44" tabindex="0">共有ブックでの再計算挙動</a></li><li><a href="#toc45" tabindex="0">バックアップを取ってから一括判定を流す</a></li></ol></li><li><a href="#toc46" tabindex="0">DETECTLANGUAGE関数が返す主な言語コード一覧</a><ol><li><a href="#toc47" tabindex="0">ビジネスでよく使う言語コード早見表</a></li><li><a href="#toc48" tabindex="0">言語コードを日本語名に変換する実用例</a></li><li><a href="#toc49" tabindex="0">IF関数で「対応言語かどうか」を判定する</a></li></ol></li><li><a href="#toc50" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc51" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">DETECTLANGUAGE関数は、<strong>セルの文字列を解析して使われている言語を判定するExcelの関数</strong>です。読み方は「ディテクトランゲージ」で、判定結果はISO 639-1形式の2文字の言語コードで返ります。</p>



<p class="wp-block-paragraph">内部ではMicrosoft Translation Services（クラウドの翻訳サービス）を利用しているため、インターネット接続が必須です。簡単な単語から長文まで幅広い言語を判定してくれますよ。</p>



<p class="wp-block-paragraph">比較的新しい関数ですが、使い方はとてもシンプルです。引数は1つだけなので、初めてでも迷いません。</p>



<h3 class="wp-block-heading"><span id="toc2">どんなときに使う関数か</span></h3>



<p class="wp-block-paragraph">ExcelのDETECTLANGUAGE関数は次のような場面で活躍します。</p>



<ul class="wp-block-list"><li>グローバル顧客リストを言語別に分類したいとき</li><li>多言語アンケートの自由記述を言語別に振り分けたいとき</li><li>海外からの問い合わせメールを担当者別にアサインしたいとき</li><li>TRANSLATE関数（指定した言語に翻訳する関数）と組み合わせて多言語データを一括翻訳したいとき</li><li>SNSコメントやレビュー本文を地域別に集計したいとき</li><li>海外取引先から届くExcelシートの言語をチェックして自動仕分けしたいとき</li></ul>



<p class="wp-block-paragraph">「どの言語か分からないけどとりあえず仕分けたい」というシーンにぴったりの関数です。Google翻訳やDeepLに1件ずつコピペして調べていた作業が、関数1つで終わってしまいますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">利用条件（Microsoft 365が必須）</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数を使うには、Microsoft 365のサブスクリプションが必要です。永続ライセンス版のExcel 2019・Excel 2021・LTSC 2024では使えません。</p>



<p class="wp-block-paragraph">対応環境は次のとおりです。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365（Windows / Mac）</li><li>Excel for the web</li><li>Excel Mobile</li></ul>



<p class="wp-block-paragraph">また、裏側でクラウド翻訳サービスを呼び出す仕組みなので、<strong>インターネット接続が必須</strong>です。オフライン環境では動きませんので注意してください。</p>



<p class="wp-block-paragraph">お使いのバージョンが対応しているか、事前に確認しておきましょう。「ファイル → アカウント」で「Microsoft 365 Apps for &#8230;」と表示されていれば対応版です。</p>



<h3 class="wp-block-heading"><span id="toc4">似ている関数との違い</span></h3>



<p class="wp-block-paragraph">「言語に関する関数」はいくつかあります。混乱しないように整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>戻り値</th></tr></thead><tbody><tr><td>DETECTLANGUAGE</td><td>文字列の言語を判定</td><td>ISO 639-1コード（例: <code>ja</code>）</td></tr><tr><td>TRANSLATE</td><td>指定言語に翻訳</td><td>翻訳後の文字列</td></tr><tr><td>PHONETIC</td><td>漢字のふりがな取得</td><td>カタカナ・ひらがな</td></tr><tr><td>UNICODE / UNICHAR</td><td>文字コード変換</td><td>数値・文字</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">DETECTLANGUAGEは「判定」専用、TRANSLATEは「変換」専用、と覚えておけば使い分けで迷いません。</p>



<h2 class="wp-block-heading"><span id="toc5">DETECTLANGUAGE関数の構文と戻り値</span></h2>



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



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



<p class="wp-block-paragraph">引数は1つだけ、判定したいテキストまたはセル参照を指定するだけです。とてもシンプルですね。</p>



<h3 class="wp-block-heading"><span id="toc7">引数：テキスト</span></h3>



<p class="wp-block-paragraph">言語を判定したい文字列、またはセル参照を指定します。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(&quot;Hello world&quot;)
=DETECTLANGUAGE(A2)</code></pre>



<p class="wp-block-paragraph">直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うのが一般的ですよ。</p>



<p class="wp-block-paragraph">セル範囲を指定すると、スピル（数式が自動で配列に展開される機能）により一度に複数セルの判定ができます。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A20)</code></pre>



<p class="wp-block-paragraph">1つの数式で20件分の判定結果がB2:B20にずらっと表示されます。ループ処理を書く感覚で、しかも数式1つで済むのがうれしいですね。</p>



<h3 class="wp-block-heading"><span id="toc8">戻り値：ISO 639-1 言語コード</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の戻り値は、ISO 639-1という国際規格に基づく2文字の言語コードです。代表的なものをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>言語コード</th><th>言語名</th><th>言語コード</th><th>言語名</th></tr></thead><tbody><tr><td><code>ja</code></td><td>日本語</td><td><code>pt</code></td><td>ポルトガル語</td></tr><tr><td><code>en</code></td><td>英語</td><td><code>ru</code></td><td>ロシア語</td></tr><tr><td><code>zh</code></td><td>中国語</td><td><code>ar</code></td><td>アラビア語</td></tr><tr><td><code>ko</code></td><td>韓国語</td><td><code>th</code></td><td>タイ語</td></tr><tr><td><code>es</code></td><td>スペイン語</td><td><code>vi</code></td><td>ベトナム語</td></tr><tr><td><code>fr</code></td><td>フランス語</td><td><code>id</code></td><td>インドネシア語</td></tr><tr><td><code>de</code></td><td>ドイツ語</td><td><code>nl</code></td><td>オランダ語</td></tr><tr><td><code>it</code></td><td>イタリア語</td><td><code>tr</code></td><td>トルコ語</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Microsoft Translation Servicesがサポートする100以上の言語に対応しています。メジャーな言語はほぼカバーされているので、実務で困ることはまずありませんよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>中国語の場合、繁体字と簡体字の区別は関数によっては <code>zh-Hans</code>（簡体字）<code>zh-Hant</code>（繁体字）のように細分化されることもあります。基本的には2文字コードで返ると覚えておけば大丈夫です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">スピル機能でまとめて判定</span></h3>



<p class="wp-block-paragraph">セル範囲を引数に渡せば、1つの数式で複数行の判定結果を一気に取得できます。スピル対応関数の便利さを実感できる場面ですね。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A100)</code></pre>



<p class="wp-block-paragraph">B2セルにこの式を入れるだけで、B2:B100に判定結果が自動展開されます。Microsoft 365のスピル機能の真骨頂です。一括処理については <a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">Excelのスピル機能｜UNIQUE・FILTER・SORT・SEQUENCEで配列を自在に扱う</a> も合わせて読むと理解が深まりますよ。</p>



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



<p class="wp-block-paragraph">それでは実際に数式を組み立ててみましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">1つのセルの言語を判定する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな例です。A2セルの文字列の言語を判定します。</p>



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



<p class="wp-block-paragraph">A2が「こんにちは」なら <code>ja</code> 、「Hello」なら <code>en</code> 、「Hola」なら <code>es</code> が返ります。一瞬で判定してくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">複数セルの言語を一括判定する</span></h3>



<p class="wp-block-paragraph">A2:A10に多言語のテキストが入っている場合、1つの数式で全行を判定できます。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A10)</code></pre>



<p class="wp-block-paragraph">B2セルにこの数式を入れるだけで、B2:B10に判定結果がスピルします。数百件あっても1つの数式で済むのが快適ですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">IF関数と組み合わせて日本語か判定する</span></h3>



<p class="wp-block-paragraph">判定結果が日本語かどうかで分岐する例です。</p>



<pre class="wp-block-code"><code>=IF(DETECTLANGUAGE(A2)=&quot;ja&quot;, &quot;日本語&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">顧客リストから日本語のレコードだけを「日本語」としてマークし、それ以外を「その他」に振り分けます。日本語対応可能な担当者へのアサインに使えますね。</p>



<h3 class="wp-block-heading"><span id="toc14">直接文字列を渡してテストする</span></h3>



<p class="wp-block-paragraph">数式の動作を確認したいときは、直接文字列を渡すと手軽です。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(&quot;Bonjour le monde&quot;)</code></pre>



<p class="wp-block-paragraph">この例では <code>fr</code> （フランス語）が返ります。数式の挙動チェックにどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc15">判定結果と元の文字列を並べて確認する</span></h3>



<p class="wp-block-paragraph">判定が正しいかひと目で確認したいときは、元の文字列と判定結果を並べる構成にすると便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th></tr></thead><tbody><tr><td>お世話になっております</td><td>ja</td></tr><tr><td>Thank you for your support</td><td>en</td></tr><tr><td>감사합니다</td><td>ko</td></tr><tr><td>谢谢您的支持</td><td>zh</td></tr><tr><td>Vielen Dank</td><td>de</td></tr><tr><td>Cảm ơn bạn</td><td>vi</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">B2セルに <code>=DETECTLANGUAGE(A2)</code> と入力して下方向にコピーするか、 <code>=DETECTLANGUAGE(A2:A7)</code> でスピルさせれば完成です。</p>



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



<p class="wp-block-paragraph">ここからは実務で役立つ応用パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc17">グローバル顧客リストを言語別に分類する</span></h3>



<p class="wp-block-paragraph">海外の顧客から届いたお問い合わせ本文を、言語別に自動分類する例です。</p>



<p class="wp-block-paragraph">A列に問い合わせ本文、B列に判定結果、C列に日本語の言語名を表示します。</p>



<p class="wp-block-paragraph">B2セル:</p>



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



<p class="wp-block-paragraph">C2セル（SWITCH関数で日本語名に変換）:</p>



<pre class="wp-block-code"><code>=SWITCH(B2, &quot;ja&quot;,&quot;日本語&quot;, &quot;en&quot;,&quot;英語&quot;, &quot;zh&quot;,&quot;中国語&quot;, &quot;ko&quot;,&quot;韓国語&quot;, &quot;es&quot;,&quot;スペイン語&quot;, &quot;fr&quot;,&quot;フランス語&quot;, &quot;de&quot;,&quot;ドイツ語&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">SWITCH関数（複数の候補値を順にチェックして一致した値を返す関数）を使うと、言語コードを読みやすい日本語ラベルに変換できます。SWITCH関数の使い方は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方｜複数条件をスッキリ書く</a> も参考になりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th><th>C列（言語名）</th></tr></thead><tbody><tr><td>お世話になっております</td><td>ja</td><td>日本語</td></tr><tr><td>Thank you for your support</td><td>en</td><td>英語</td></tr><tr><td>感谢您的支持</td><td>zh</td><td>中国語</td></tr><tr><td>Merci beaucoup</td><td>fr</td><td>フランス語</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFSの代わりにSWITCHを使うと数式がスッキリしますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">多言語アンケートを言語別に振り分ける</span></h3>



<p class="wp-block-paragraph">アンケートの自由記述欄を言語別にカウントする例です。COUNTIF関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=COUNTIF(B2:B500, &quot;ja&quot;)</code></pre>



<p class="wp-block-paragraph">B列にDETECTLANGUAGE関数の結果を出しておけば、この数式で「日本語回答の件数」を集計できます。言語別の集計レポートがすぐに作れますよ。</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>ja（日本語）</td><td>312</td><td>62.4%</td></tr><tr><td>en（英語）</td><td>124</td><td>24.8%</td></tr><tr><td>zh（中国語）</td><td>38</td><td>7.6%</td></tr><tr><td>その他</td><td>26</td><td>5.2%</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">割合の計算には <code>=COUNTIF(B2:B500,"ja")/COUNTA(B2:B500)</code> を使えばOKです。</p>



<h3 class="wp-block-heading"><span id="toc19">FILTER関数と組み合わせて英語の行だけ抽出する</span></h3>



<p class="wp-block-paragraph">さらに便利なのがFILTER関数との組み合わせです。英語のレコードだけを別シートに抜き出すイメージです。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C500, DETECTLANGUAGE(A2:A500)=&quot;en&quot;)</code></pre>



<p class="wp-block-paragraph">スピルで英語レコードが一気に展開されます。担当者別にシートを分けたいときに威力を発揮しますよ。FILTER関数の応用例は <a href="https://mashukabu.com/excel-function-howto-use-filter/">ExcelのFILTER関数の使い方｜条件に合うデータだけを抽出する</a> も役立ちますので合わせてどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc20">TRANSLATE関数と連携して自動翻訳する</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の真価は、TRANSLATE関数（指定した言語に翻訳する関数）と組み合わせたときに発揮されます。</p>



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



<p class="wp-block-paragraph">この数式は「A2の言語を自動検出し、日本語に翻訳する」という意味です。送信元の言語が何であれ、すべて日本語に統一できます。</p>



<p class="wp-block-paragraph">多言語の顧客フィードバックを一括で日本語化するワークフローがこれ1本で完成しますよ。従来はGoogle翻訳やDeepLに1件ずつコピペしていた作業が、数式1つで終わります。詳しいTRANSLATE関数の使い方は <a href="https://mashukabu.com/excel-function-howto-use-translate/">ExcelのTRANSLATE関数の使い方｜セルの文章を自動翻訳する</a> を参照してください。</p>



<p class="wp-block-paragraph">実行イメージは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（原文）</th><th>検出言語</th><th>TRANSLATE後（日本語）</th></tr></thead><tbody><tr><td>Thank you for your kind support</td><td>en</td><td>ご親切なサポートをありがとうございます</td></tr><tr><td>非常感谢您的合作</td><td>zh</td><td>ご協力に深く感謝いたします</td></tr><tr><td>Merci pour votre patience</td><td>fr</td><td>ご辛抱いただきありがとうございます</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このパターンを応用すれば、社内会議資料の多言語化、海外SNSコメントの翻訳ダッシュボード、海外レビューの感情分析など、活用シーンは無限大ですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERRORでエラー時のラベルを付ける</span></h3>



<p class="wp-block-paragraph">短文や記号だけのセルでは判定に失敗することがあります。エラー時は「判定不可」と表示させましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



<p class="wp-block-paragraph">エラーで数式が止まらなくなるので、大量データの処理でも安心ですよ。IFERROR関数の詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方｜エラーをスマートに処理する</a> も参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc22">条件付き書式で言語を色分けする</span></h3>



<p class="wp-block-paragraph">判定結果に応じてセルを色分けすれば、ひと目で言語の分布が見えるダッシュボードが作れます。</p>



<ol class="wp-block-list"><li>B列の判定結果セルを範囲選択</li><li>「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「文字列」を選択</li><li>「ja」と入力し、書式を赤に設定</li><li>同様に「en」を青、「zh」を緑、「ko」を黄など、言語ごとに色を割り当てる</li></ol>



<p class="wp-block-paragraph">これだけで、シートを開いた瞬間に「英語の問い合わせが多い」「最近スペイン語が増えてきた」といった傾向が直感的につかめます。</p>



<h3 class="wp-block-heading"><span id="toc23">Power Queryと組み合わせて定期処理を自動化する</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の結果列をPower Query側で読み込んでおけば、毎月のレポート更新時にワンクリックで言語別集計を最新化できます。</p>



<p class="wp-block-paragraph">数式のままだとセル数が多くなったときにクォータエラー（後述）に引っかかりやすいので、<strong>判定後に値貼り付けして固定</strong> → Power Queryで集計、というフローがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc24">ピボットテーブルで言語別の傾向分析</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数で判定済みの列をベースに、ピボットテーブルを作れば月別・言語別のクロス集計が一瞬で出ます。</p>



<ul class="wp-block-list"><li>行: 受信月</li><li>列: 言語コード（ja / en / zh / fr / その他）</li><li>値: 件数</li></ul>



<p class="wp-block-paragraph">ピボット化しておけば、「先月から急に韓国語問い合わせが増えた」といった変化点をすぐ拾えますよ。マーケティング会議や四半期レビューで使える生きたデータになります。</p>



<h3 class="wp-block-heading"><span id="toc25">XLOOKUPで言語コード→言語名の変換テーブルを引く</span></h3>



<p class="wp-block-paragraph">SWITCH関数が長くなりすぎるのが気になるなら、別シートに変換テーブルを用意してXLOOKUP関数で引く方法もあります。</p>



<p class="wp-block-paragraph">別シートに次のような表を作ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>code</th><th>name</th></tr></thead><tbody><tr><td>ja</td><td>日本語</td></tr><tr><td>en</td><td>英語</td></tr><tr><td>zh</td><td>中国語</td></tr><tr><td>ko</td><td>韓国語</td></tr><tr><td>es</td><td>スペイン語</td></tr><tr><td>fr</td><td>フランス語</td></tr><tr><td>de</td><td>ドイツ語</td></tr><tr><td>&#8230;</td><td>&#8230;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2セルにこの数式を入れれば完成です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(B2, 言語表!A:A, 言語表!B:B, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">新しい言語に対応したくなったら、変換テーブルに1行追加するだけ。数式を全行修正する必要がないので、メンテナンス性がぐっと上がりますよ。</p>



<h2 class="wp-block-heading"><span id="toc26">短文・空白・数字のみセルでの挙動</span></h2>



<p class="wp-block-paragraph">DETECTLANGUAGE関数にはいくつかクセがあります。実務で遭遇しやすいケースを押さえておきましょう。</p>



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



<p class="wp-block-paragraph">空白セルを渡すとエラーが返ります。IFERRORでラップするか、IF関数で事前にチェックしておきましょう。</p>



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



<p class="wp-block-paragraph">空白の場合は何も表示せず、値があるときだけ判定する形ですね。</p>



<h3 class="wp-block-heading"><span id="toc28">数字だけのセル</span></h3>



<p class="wp-block-paragraph">「12345」のように数字だけのセルは、言語判定ができず精度が落ちます。場合によっては英語と判定されたりエラーになったりします。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(A2), &quot;数値&quot;, IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;))</code></pre>



<p class="wp-block-paragraph">ISNUMBER関数（セルが数値かを判定する関数）で事前にフィルタしておくと、無駄な呼び出しを減らせますよ。</p>



<h3 class="wp-block-heading"><span id="toc29">短すぎる文字列</span></h3>



<p class="wp-block-paragraph">1〜2文字だけのセルは、どの言語か特定しきれず誤判定になりやすいです。たとえば「OK」を渡すと英語と判定されますが、「あ」1文字だと判定がブレることがあります。</p>



<p class="wp-block-paragraph">実務では<strong>最低でも5〜10文字以上の文字列</strong>を渡すと安定した結果が得られますよ。</p>



<p class="wp-block-paragraph">LEN関数で文字数チェックを入れておくと安心です。</p>



<pre class="wp-block-code"><code>=IF(LEN(A2)&lt;5, &quot;判定保留&quot;, DETECTLANGUAGE(A2))</code></pre>



<p class="wp-block-paragraph">5文字未満なら「判定保留」と表示し、それ以外は判定する形ですね。</p>



<h3 class="wp-block-heading"><span id="toc30">複数言語が混在した文字列</span></h3>



<p class="wp-block-paragraph">「Hello こんにちは」のように複数言語が混ざっている場合、文字数の多い方、または先頭側の言語が返る傾向があります。混在データは事前に分割しておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc31">記号や絵文字だけのセル</span></h3>



<p class="wp-block-paragraph">「!!!」「😀😀😀」のような記号や絵文字オンリーのセルは、ほぼ確実にエラーになります。これらは事前にフィルタしておくか、IFERRORでラップしておきましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



<p class="wp-block-paragraph">このひと手間で、大量データの処理がスムーズに進みますよ。</p>



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



<p class="wp-block-paragraph">DETECTLANGUAGE関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc33">Text Too Long エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 渡したテキストが長すぎる。Microsoft Translation Servicesが受け付ける文字数上限を超えています。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: LEFT関数で先頭500文字程度に切り詰めてから渡しましょう。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(LEFT(A2, 500))</code></pre>



<p class="wp-block-paragraph">言語判定は冒頭の文章だけでも十分精度が出るので、この方法で問題ありません。LEFT関数の詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-left/">ExcelのLEFT関数の使い方｜文字列の先頭から指定文字数を取り出す</a> もチェックしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc34">Error in Value エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 空白セルや非テキスト値（エラー値など）を渡した。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: IF関数で空白チェック、またはIFERRORでラップしましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



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



<p class="wp-block-paragraph"><strong>原因</strong>: 日次のクォータ（Microsoftが定めるリクエスト回数制限）を超えた。大量のセルに数式を貼り付けると発生しやすいです。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 一度に処理する行数を分割するか、翌日にリトライしましょう。一括処理するときは値貼り付けで結果を固定しておくと安心ですよ。</p>



<pre class="wp-block-code"><code>判定 → 結果をコピー → 値のみ貼り付け</code></pre>



<p class="wp-block-paragraph">この流れで再計算を防げます。具体的な手順は次のとおりです。</p>



<ol class="wp-block-list"><li>B列にDETECTLANGUAGE関数を入れて判定実行</li><li>B列を選択し、Ctrl+C でコピー</li><li>同じB列で右クリック → 「値の貼り付け」を選択</li><li>数式が消え、結果の文字列だけが残る</li></ol>



<p class="wp-block-paragraph">これでファイルを開くたびに再計算が走る心配がなくなります。</p>



<h3 class="wp-block-heading"><span id="toc36">#NAME? エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: DETECTLANGUAGE関数に対応していないバージョンのExcelで使っている。またはスペルミス。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024では使えません。</p>



<p class="wp-block-paragraph">「ファイル → アカウント → 更新オプション → 今すぐ更新」で最新ビルドに上げると、新関数が一気に利用可能になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc37">#BUSY! / #CONNECT! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: クラウドサービスへの接続が一時的に途切れた、または通信が遅延している。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 数秒待ってからF9キーで再計算するか、シートを開き直してみましょう。それでも直らない場合はインターネット接続を確認してください。</p>



<h3 class="wp-block-heading"><span id="toc38">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 引数の型が想定外（配列の中にエラー値が混在しているケースなど）。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 元データを見直し、エラー値や予期しない型のセルがないかチェックします。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>Text Too Long</td><td>文字数超過</td><td>LEFTで切り詰める</td></tr><tr><td>Error in Value</td><td>空白・非テキスト</td><td>IFERRORでラップ</td></tr><tr><td>Request Throttled</td><td>日次クォータ超過</td><td>分割処理・値貼り付け</td></tr><tr><td>#NAME?</td><td>非対応バージョン</td><td>Microsoft 365に更新</td></tr><tr><td>#BUSY! / #CONNECT!</td><td>通信エラー</td><td>再計算・接続確認</td></tr><tr><td>#VALUE!</td><td>引数の型不一致</td><td>元データを点検</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーパターンは限られているので、落ち着いて対処すれば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc39">DETECTLANGUAGE関数を使う際の注意点</span></h2>



<p class="wp-block-paragraph">実務で運用するときに気をつけたいポイントをまとめます。</p>



<h3 class="wp-block-heading"><span id="toc40">クラウド経由でデータが送信される</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数はMicrosoft Translation Services（クラウドサービス）にテキストを送って判定しています。つまり、<strong>判定対象の文字列が一度Microsoftのサーバーに送信される</strong>ということです。</p>



<p class="wp-block-paragraph">社外秘の機密文書や個人情報を含むセルにそのまま使うのは避けましょう。社内ポリシーで「クラウド翻訳サービスへのデータ送信禁止」となっている場合は、IT管理者に確認してから使ってくださいね。</p>



<h3 class="wp-block-heading"><span id="toc41">大量呼び出しはパフォーマンスに影響する</span></h3>



<p class="wp-block-paragraph">数千〜数万行に一度に数式を貼り付けると、リクエストが大量発生してExcelが固まることがあります。スピル範囲を絞るか、判定後すぐに値貼り付けで固定するのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc42">判定結果は完全ではない</span></h3>



<p class="wp-block-paragraph">機械判定なので、まれに誤判定が発生します。重要な業務判断（契約書の翻訳など）に使う場合は、必ず人の目でレビューを入れるフローにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc43">Mac版・Web版の挙動差</span></h3>



<p class="wp-block-paragraph">Mac版とWeb版のExcelでもDETECTLANGUAGE関数は使えますが、スピル展開のパフォーマンスやエラーメッセージの表示が微妙に異なることがあります。チーム内で環境が混在する場合は、事前に検証しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc44">共有ブックでの再計算挙動</span></h3>



<p class="wp-block-paragraph">OneDrive上の共有ブックでDETECTLANGUAGE関数を使う場合、誰かがファイルを開くたびに再計算が走ってクォータを消費します。共有ブックでは「数式タブ → 計算方法の設定 → 手動」にしておくか、判定結果を値貼り付けで固定してから共有するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc45">バックアップを取ってから一括判定を流す</span></h3>



<p class="wp-block-paragraph">大量データに一気にDETECTLANGUAGE関数を適用すると、再計算が止まらず作業中のブックが固まることがあります。本番データに適用する前に、必ず別ファイルとしてバックアップを取っておきましょう。</p>



<p class="wp-block-paragraph">Ctrl + S で保存 → ファイル名末尾に <code>_backup</code> を付けて別名保存、というシンプルなルーチンで十分です。万一暴走しても元データに戻れる安心感は大きいですよ。</p>



<h2 class="wp-block-heading"><span id="toc46">DETECTLANGUAGE関数が返す主な言語コード一覧</span></h2>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の戻り値はISO 639-1の2文字コードです。「<code>ja</code> なら日本語」とすぐ分かるものもあれば、「<code>nl</code> って何語だっけ？」と迷うものもありますよね。ここではビジネスでよく扱う20言語の早見表をまとめました。手元に置いておくと判定結果を読むときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc47">ビジネスでよく使う言語コード早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>言語コード</th><th>言語名</th><th>主な地域・用途</th></tr></thead><tbody><tr><td><code>ja</code></td><td>日本語</td><td>日本</td></tr><tr><td><code>en</code></td><td>英語</td><td>米国・英国・グローバル共通</td></tr><tr><td><code>zh</code></td><td>中国語</td><td>中国・台湾・香港</td></tr><tr><td><code>ko</code></td><td>韓国語</td><td>韓国</td></tr><tr><td><code>es</code></td><td>スペイン語</td><td>スペイン・中南米</td></tr><tr><td><code>fr</code></td><td>フランス語</td><td>フランス・カナダ・アフリカ一部</td></tr><tr><td><code>de</code></td><td>ドイツ語</td><td>ドイツ・オーストリア・スイス</td></tr><tr><td><code>it</code></td><td>イタリア語</td><td>イタリア</td></tr><tr><td><code>pt</code></td><td>ポルトガル語</td><td>ポルトガル・ブラジル</td></tr><tr><td><code>ru</code></td><td>ロシア語</td><td>ロシア・旧CIS諸国</td></tr><tr><td><code>ar</code></td><td>アラビア語</td><td>中東・北アフリカ</td></tr><tr><td><code>th</code></td><td>タイ語</td><td>タイ</td></tr><tr><td><code>vi</code></td><td>ベトナム語</td><td>ベトナム</td></tr><tr><td><code>id</code></td><td>インドネシア語</td><td>インドネシア</td></tr><tr><td><code>nl</code></td><td>オランダ語</td><td>オランダ・ベルギー</td></tr><tr><td><code>tr</code></td><td>トルコ語</td><td>トルコ</td></tr><tr><td><code>pl</code></td><td>ポーランド語</td><td>ポーランド</td></tr><tr><td><code>hi</code></td><td>ヒンディー語</td><td>インド</td></tr><tr><td><code>sv</code></td><td>スウェーデン語</td><td>スウェーデン</td></tr><tr><td><code>uk</code></td><td>ウクライナ語</td><td>ウクライナ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">東アジア・欧米・東南アジアの主要言語を一通りカバーしています。Microsoft Translation Servicesは100以上の言語に対応していますが、実務で頻繁に登場するのはこのあたりに集約されますよ。</p>



<h3 class="wp-block-heading"><span id="toc48">言語コードを日本語名に変換する実用例</span></h3>



<p class="wp-block-paragraph">判定結果がコードのままだと、レポートに貼ったときに読み手が「<code>vi</code> って何語？」と止まってしまいます。SWITCH関数を使ってコードを日本語名に変換しておくと、誰が見てもひと目で分かる表になりますよ。</p>



<p class="wp-block-paragraph">B列にDETECTLANGUAGE関数の判定結果が入っているとして、C列に日本語名を表示する例です。</p>



<pre class="wp-block-code"><code>=SWITCH(B2,
  &quot;ja&quot;,&quot;日本語&quot;, &quot;en&quot;,&quot;英語&quot;, &quot;zh&quot;,&quot;中国語&quot;, &quot;ko&quot;,&quot;韓国語&quot;,
  &quot;es&quot;,&quot;スペイン語&quot;, &quot;fr&quot;,&quot;フランス語&quot;, &quot;de&quot;,&quot;ドイツ語&quot;, &quot;it&quot;,&quot;イタリア語&quot;,
  &quot;pt&quot;,&quot;ポルトガル語&quot;, &quot;ru&quot;,&quot;ロシア語&quot;, &quot;ar&quot;,&quot;アラビア語&quot;, &quot;th&quot;,&quot;タイ語&quot;,
  &quot;vi&quot;,&quot;ベトナム語&quot;, &quot;id&quot;,&quot;インドネシア語&quot;, &quot;nl&quot;,&quot;オランダ語&quot;, &quot;tr&quot;,&quot;トルコ語&quot;,
  &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">SWITCH関数（複数の候補値を順にチェックして最初に一致した値を返す関数）なら、IF関数を何重にもネストせずスッキリ書けます。最後の引数「その他」は、表にない言語コードが返ってきたときの既定値です。詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方｜複数条件をスッキリ書く</a> も参考になりますよ。</p>



<p class="wp-block-paragraph">実行すると次のような表になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th><th>C列（言語名）</th></tr></thead><tbody><tr><td>お問い合わせありがとうございます</td><td>ja</td><td>日本語</td></tr><tr><td>Could you send the invoice?</td><td>en</td><td>英語</td></tr><tr><td>请尽快回复</td><td>zh</td><td>中国語</td></tr><tr><td>Cảm ơn quý khách</td><td>vi</td><td>ベトナム語</td></tr><tr><td>Hartelijk dank</td><td>nl</td><td>オランダ語</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc49">IF関数で「対応言語かどうか」を判定する</span></h3>



<p class="wp-block-paragraph">自社が対応できる言語だけを抜き出したいときは、IF関数とOR関数を組み合わせると便利です。たとえば日本語・英語・中国語の3言語に対応しているチームなら、次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(OR(B2={&quot;ja&quot;,&quot;en&quot;,&quot;zh&quot;}), &quot;対応可&quot;, &quot;要外部翻訳&quot;)</code></pre>



<p class="wp-block-paragraph">配列定数 <code>{"ja","en","zh"}</code> を使うと、IFを何重にもネストせずに複数言語をまとめて判定できます。「対応可」と「要外部翻訳」で振り分けておけば、外注すべき案件がひと目で分かりますね。IF関数の基本は <a href="https://mashukabu.com/excel-function-howto-use-if/">ExcelのIF関数の使い方｜条件で処理を分ける</a> でおさらいできますよ。</p>



<p class="wp-block-paragraph">言語コードは一度覚えてしまえば応用が利きます。早見表をブックの片隅に貼っておくか、別シートに変換テーブルとして持たせておくと、多言語データの整理がぐっとラクになりますよ。</p>



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



<p class="wp-block-paragraph">最後に、DETECTLANGUAGE関数について寄せられるよくある質問をまとめました。</p>



<p class="wp-block-paragraph">[faq q=&#8221;DETECTLANGUAGE関数が #NAME? エラーになるのはなぜ？&#8221; a=&#8221;お使いのExcelがDETECTLANGUAGE関数に未対応のバージョンの可能性が高いです。永続ライセンス版のExcel 2019・2021・LTSC 2024では使えません。Microsoft 365のサブスクリプション版にアップグレードするか、最新ビルドに更新してください。「ファイル → アカウント」で「Microsoft 365 Apps」と表示されていればOKです。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;オフライン環境でも使えますか？&#8221; a=&#8221;使えません。DETECTLANGUAGE関数は裏側でMicrosoft Translation Services（クラウドサービス）を呼び出すため、インターネット接続が必須です。社内のオフラインPCで使う必要がある場合は、別マシンで判定 → 値貼り付けで結果を持ち込む運用にしましょう。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;判定対象の文字列はクラウドに送信されますか？&#8221; a=&#8221;はい、送信されます。Microsoftのサーバーに一時的にデータが送られて判定処理が走る仕組みです。社外秘情報や個人情報を含む文字列にそのまま使うのは避け、社内のセキュリティポリシーを確認したうえで使ってください。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;中国語の繁体字と簡体字は区別できますか？&#8221; a=&#8221;関数の戻り値は基本的に zh の2文字コードで返ります。場面によっては zh-Hans（簡体字）・zh-Hant（繁体字）のように細分化されることもありますが、確実な区別が必要なら別途文字種チェックを組み合わせるのが安全です。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;TRANSLATE関数と組み合わせるとクォータを2回消費しますか？&#8221; a=&#8221;はい、消費します。DETECTLANGUAGE と TRANSLATE は別々にクラウドサービスを呼び出すため、リクエストカウンタとしては別カウントです。大量データを扱う場合は、まずDETECTLANGUAGEで判定 → 結果を値貼り付け → 必要な行だけTRANSLATEで翻訳、という2段階運用がおすすめです。&#8221;]</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-googletranslate-function/">faq q=&#8221;Google スプレッドシートにも同じ関数はありますか？&#8221; a=&#8221;スプレッドシートにはDETECTLANGUAGEと完全一致する関数はありませんが、GOOGLETRANSLATE 関数の補助機能や Apps Script で同等処理を組めます。スプレッドシート派の方は [GoogleスプレッドシートのGOOGLETRANSLATE関数の使い方</a> も合わせてご覧ください。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;判定速度を上げる方法はありますか？&#8221; a=&#8221;数式の再計算が遅い場合は、（1）スピル範囲を必要最小限に絞る、（2）判定後すぐに値貼り付けで固定する、（3）短すぎる文字列はLEN関数で事前に弾く、の3点で大幅に改善します。クォータエラーも減らせるので一石二鳥ですよ。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;DETECTLANGUAGE関数の結果を他の関数の引数として直接渡せますか？&#8221; a=&#8221;はい、可能です。=TRANSLATE(A2, DETECTLANGUAGE(A2), &#8216;ja&#8217;) のように、別の関数の引数として入れ子にして使えます。ただし関数を入れ子にするとクラウド呼び出しが2倍発生するため、大量データでは判定結果を別列で固定してから翻訳する2段階運用がパフォーマンス面で有利です。&#8221;]</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">faq q=&#8221;判定結果を[IF関数</a>で分岐させる時の典型例は？&#8221; a=&#8221;日本語以外を「翻訳対象」として振り分けるなら =IF(DETECTLANGUAGE(A2)=&#8217;ja&#8217;,&#8217;日本語のまま&#8217;,&#8217;要翻訳&#8217;) のように書きます。IF関数とDETECTLANGUAGEの組み合わせは「言語別の処理分岐」の入り口として最初に覚えると応用が利きます。複数言語をまとめて判定したいときは =IF(OR(DETECTLANGUAGE(A2)={&#8216;en&#8217;,&#8217;fr&#8217;,&#8217;de&#8217;}),&#8217;欧米&#8217;,&#8217;その他&#8217;) のように配列定数を使うとIFのネストが短くなります。&#8221;]</p>



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



<p class="wp-block-paragraph">ExcelのDETECTLANGUAGE関数は、セルに入っている文字列の言語を自動判定してくれる便利な関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=DETECTLANGUAGE(テキスト)</code> で引数は1つだけ</li><li>Microsoft 365のサブスクリプションとインターネット接続が必須</li><li>戻り値はISO 639-1の2文字コード（<code>ja</code> <code>en</code> <code>zh</code> など）</li><li>スピル対応なので範囲を渡して一括判定できる</li><li>SWITCH関数と組み合わせれば日本語の言語名に変換できる</li><li>TRANSLATE関数と連携すれば多言語データを一括翻訳できる</li><li>短文・空白・数字のみのセルは誤判定やエラーに注意</li><li>エラー時はIFERRORでラップしておくと安心</li><li>クラウド経由でデータが送信される点に注意（機密情報は要注意）</li><li>大量データは値貼り付けで結果を固定するとクォータエラーを回避できる</li></ul>



<p class="wp-block-paragraph">まずは <code>=DETECTLANGUAGE("Hello world")</code> のようなシンプルな式から試してみてください。グローバル業務のデータ整理がぐっとラクになりますよ。</p>



<p class="wp-block-paragraph">慣れてきたら、TRANSLATE関数やFILTER関数と組み合わせて「言語別の自動仕分け＋自動翻訳」までワンセットで自動化してみましょう。手作業のコピペから解放されて、本来やるべき分析や提案に時間を使えるようになりますよ。</p>



<p class="wp-block-paragraph">文字列操作系の関数を一通り押さえておきたい方は、姉妹記事もぜひあわせてどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-translate/">ExcelのTRANSLATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">ExcelのREGEXREPLACE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">ExcelのIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</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-detectlanguage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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></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>スプレッドシートのIFNA関数の使い方｜#N/Aエラー時の代替値を設定する方法</title>
		<link>https://mashukabu.com/spreadsheet-ifna-function/</link>
					<comments>https://mashukabu.com/spreadsheet-ifna-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 23 Mar 2026 14:55:13 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5204</guid>

					<description><![CDATA[スプレッドシートのIFNA関数の使い方を基本から解説。#N/Aエラーだけを処理する構文から、VLOOKUPやINDEX/MATCHとの組み合わせ、IFERROR関数との違い、よくあるエラーの対処法まで実務シナリオで丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートでVLOOKUPやMATCHを使ったら「#N/A」が表示された。こんな経験、ありませんか？</p>



<p class="wp-block-paragraph">「#N/Aだけ消したいけど、数式ミスまで隠すのは怖い」。そんなときに活躍するのがスプレッドシートのIFNA関数です。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から実務パターンまで解説します。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>との違いもしっかり紹介しますよ。</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">スプレッドシートのIFNA関数とは？#N/Aエラー専用の処理関数</a></li><li><a href="#toc2" tabindex="0">IFNA関数の書き方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">最もシンプルな使用例</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方3選</a><ol><li><a href="#toc7" tabindex="0">#N/Aを空白にする</a></li><li><a href="#toc8" tabindex="0">#N/Aのときにメッセージを表示する</a></li><li><a href="#toc9" tabindex="0">#N/Aのときに数値を返す</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使える応用パターン</a><ol><li><a href="#toc11" tabindex="0">VLOOKUP+IFNAで未登録データを処理する</a></li><li><a href="#toc12" tabindex="0">INDEX/MATCH+IFNAで柔軟な検索をする</a></li><li><a href="#toc13" tabindex="0">IFNAのネストで複数テーブルを順番に検索する</a></li><li><a href="#toc14" tabindex="0">IF関数と組み合わせて空白セルを除外する</a></li></ol></li><li><a href="#toc15" tabindex="0">IFNA関数とIFERROR関数の違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">どちらを使うべき？判断基準</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIFNA関数とは？#N/Aエラー専用の処理関数</span></h2>



<p class="wp-block-paragraph">IFNA関数（読み方: イフエヌエー関数）は、<strong>数式の結果が#N/Aエラーのときだけ代わりの値を返す関数</strong>です。</p>



<p class="wp-block-paragraph">「IF」は「もし」、「N/A」は「Not Available（該当なし）」の略です。</p>



<p class="wp-block-paragraph">たとえば「VLOOKUPで該当なしのときだけ代替値を表示したい」場面です。IFNA関数なら#N/Aだけを処理できます。</p>



<p class="wp-block-paragraph">それ以外のエラーはそのまま残せますよ。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>や<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>の#N/Aを空白やメッセージに置き換える</li><li>#N/A以外のエラー（#REF!や#VALUE!など）はそのまま残す</li><li>数式ミスによるエラーを見逃さずに済む</li><li>「検索値が見つからない」ことだけを想定内として処理できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>IFERRORとの最大の違い</strong></p><p><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>はすべてのエラーをまとめて処理します。一方、IFNA関数は#N/Aだけが対象です。「検索で見つからない」は想定内だけど、「参照先が消えた」「数式が壊れた」は検知したい。そんなときはIFNA関数のほうが安全ですよ。</p></blockquote>



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



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



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



<pre class="wp-block-code"><code>=IFNA(値, NA時の値)</code></pre>



<p class="wp-block-paragraph">引数は2つだけ。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>とまったく同じ形なので覚えやすいですよね。</p>



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



<p class="wp-block-paragraph">それぞれの引数の意味を表で整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>#N/Aかどうかをチェックしたい数式やセル参照</td></tr><tr><td>NA時の値</td><td>任意</td><td>#N/Aだったときに返す値。文字列・数値・数式のいずれもOK</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数を省略するとどうなるでしょうか。Googleスプレッドシートでは空文字列（&#8221;&#8221;）が返ります。</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>文字列を返す場合はダブルクォーテーションで囲みます。数値を返す場合は囲みません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">最もシンプルな使用例</span></h3>



<p class="wp-block-paragraph">A2にVLOOKUPの結果が入っているとします。#N/Aのときに「該当なし」と表示してみましょう。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>VLOOKUP(A2, D:E, 2, FALSE)</strong>: A2の値をD列から検索</li><li><strong>&#8220;該当なし&#8221;</strong>: #N/Aエラー時に表示するテキスト</li></ul>



<p class="wp-block-paragraph">検索値が見つかれば結果がそのまま返ります。見つからなければ「該当なし」と表示されます。</p>



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



<p class="wp-block-paragraph">基本がわかったところで、仕事でよく使うパターンを見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">#N/Aを空白にする</span></h3>



<p class="wp-block-paragraph">一番よく使うパターンが、#N/Aを空白に置き換えるケースです。</p>



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



<p class="wp-block-paragraph">検索値が見つからなかったセルが空白になります。印刷する資料や共有用のシートで重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">#N/Aのときにメッセージを表示する</span></h3>



<p class="wp-block-paragraph">空白ではなく、わかりやすいメッセージを表示することもできます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">#N/Aの代わりに「該当なし」と表示されます。データが見つからなかったことをひと目で伝えたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc9">#N/Aのときに数値を返す</span></h3>



<p class="wp-block-paragraph">数値を返すパターンも実務でよく使います。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 単価表!A:B, 2, FALSE), 0)</code></pre>



<p class="wp-block-paragraph">#N/Aの代わりに0を返します。SUM関数やAVERAGE関数の集計でエラーが止まるのを防げますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>#VALUE!や#REF!はどうなる？</strong></p><p>IFNA関数は#N/A以外のエラーには反応しません。たとえば参照先を削除して#REF!が発生した場合、そのまま#REF!が表示されます。数式ミスが隠れないので安心ですね。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc11">VLOOKUP+IFNAで未登録データを処理する</span></h3>



<p class="wp-block-paragraph">IFNA関数の最も定番の使い方が、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>との組み合わせです。</p>



<p class="wp-block-paragraph">商品コードで商品マスタを検索するケースを考えてみましょう。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">商品コードが見つからなければ「未登録」と表示します。大量データの突合で必須のテクニックですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でも同じことはできます。ただしIFERRORだと列番号ミスの#REF!も隠れてしまいます。</p>



<p class="wp-block-paragraph">IFNA関数なら#REF!はそのまま表示されます。不具合に気づけるのがメリットですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">INDEX/MATCH+IFNAで柔軟な検索をする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>と<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>を組み合わせた検索でも活躍します。</p>



<pre class="wp-block-code"><code>=IFNA(INDEX(C:C, MATCH(E2, A:A, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「検索列より左側の値を取得する」パターンです。見つからないときだけ「該当なし」を返します。</p>



<p class="wp-block-paragraph">VLOOKUPでは対応できない検索が必要な場面で使ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">IFNAのネストで複数テーブルを順番に検索する</span></h3>



<p class="wp-block-paragraph">第2引数に別のIFNA関数を入れると、複数テーブルを順番に検索できます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFNA(VLOOKUP(A2, シート2!A:B, 2, FALSE), &quot;どちらにもなし&quot;))</code></pre>



<p class="wp-block-paragraph">まずシート1で検索します。#N/Aならシート2を検索します。どちらにもなければ「どちらにもなし」を表示する仕組みです。</p>



<p class="wp-block-paragraph">ちょっと複雑に見えますが、やっていることはシンプルです。「最初のIFNAが失敗したら次のIFNAを試す」という流れですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">IF関数と組み合わせて空白セルを除外する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>とIFNA関数を組み合わせると、入力前のセルを除外できます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, IFNA(VLOOKUP(A2, D:E, 2, FALSE), &quot;該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">A2が空白ならそもそも検索しません。値が入っているときだけVLOOKUPを実行します。</p>



<p class="wp-block-paragraph">入力途中のデータを扱うときに便利なパターンですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">IFNA関数とIFERROR関数の違い・使い分け</span></h2>



<p class="wp-block-paragraph">IFNA関数と<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>は構文が同じですが、動作が異なります。大きな違いは「処理するエラーの範囲」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>IFNA</th><th>IFERROR</th></tr></thead><tbody><tr><td>対象エラー</td><td>#N/Aのみ</td><td>全7種のエラー</td></tr><tr><td>主な用途</td><td>VLOOKUP等の「該当なし」だけ処理</td><td>汎用的なエラー処理</td></tr><tr><td>バグ発見</td><td>#N/A以外はそのまま表示される</td><td>エラーを隠す可能性あり</td></tr><tr><td>構文</td><td>=IFNA(値, NA時の値)</td><td>=IFERROR(値, エラー時の値)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的に、同じ数式にミスがあった場合の動作を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>発生したエラー</th><th>IFNA関数</th><th>IFERROR関数</th></tr></thead><tbody><tr><td>#N/A（検索値なし）</td><td>代替値を表示</td><td>代替値を表示</td></tr><tr><td>#REF!（参照先削除）</td><td>#REF!をそのまま表示</td><td>代替値を表示</td></tr><tr><td>#VALUE!（データ型不正）</td><td>#VALUE!をそのまま表示</td><td>代替値を表示</td></tr><tr><td>#NAME?（関数名ミス）</td><td>#NAME?をそのまま表示</td><td>代替値を表示</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFERRORだと#REF!や#NAME?も代替値に置き換わります。数式のスペルミスに気づけないリスクがありますよね。</p>



<h3 class="wp-block-heading"><span id="toc16">どちらを使うべき？判断基準</span></h3>



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



<ul class="wp-block-list"><li><strong>VLOOKUPやMATCHの「該当なし」だけ処理したい</strong> → IFNA関数がおすすめ</li><li><strong>割り算のゼロ除算など複数種のエラーをまとめて処理したい</strong> → <a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>が便利</li><li><strong>数式のバグを見逃したくない</strong> → IFNA関数が安全</li></ul>



<p class="wp-block-paragraph">迷ったらIFNA関数を選んでおくのが安全です。想定外のエラーはそのまま残せるので、デバッグしやすくなりますよ。</p>



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



<p class="wp-block-paragraph">IFNA関数自体はシンプルですが、ハマるポイントがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A以外のエラーも処理したい</td><td>IFNA関数は#N/Aのみ対象</td><td><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>に切り替える</td></tr><tr><td>#N/Aなのに代替値が表示されない</td><td>IFNA関数の外で#N/Aが発生している</td><td>#N/Aを返す数式をIFNAの第1引数に直接入れる</td></tr><tr><td>#NAME?エラーが出る</td><td>関数名のスペルミス</td><td>関数名は <code>IFNA</code> と正確に入力する</td></tr><tr><td>意図しない空白が表示される</td><td>第2引数を省略している</td><td>表示したい値（0や&#8221;該当なし&#8221;など）を明示する</td></tr><tr><td>#VALUE!がそのまま表示される</td><td>IFNA関数は#VALUE!に反応しない（正常動作）</td><td>#VALUE!も処理したいならIFERROR関数を使う</td></tr><tr><td>#REF!がそのまま表示される</td><td>IFNA関数は#REF!に反応しない（正常動作）</td><td>参照先のセルやシートが正しいか確認する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>デバッグのコツ</strong></p><p>トラブル発生時は、まずIFNA関数を外して中の数式だけをテストしましょう。#N/A以外のエラーが出ていないか確認できます。「エラーが消えない」と思ったら、実は#N/A以外のエラーだったというケースが多いですよ。</p></blockquote>



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



<p class="wp-block-paragraph">スプレッドシートのIFNA関数について解説しました。ポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li>IFNA関数の構文は <code>=IFNA(値, NA時の値)</code> の2つの引数</li><li>#N/Aエラーだけを処理し、他のエラーはそのまま表示する</li><li>VLOOKUP+IFNAの組み合わせが実務で最も頻出</li><li>INDEX/MATCH+IFNAで柔軟な検索にも対応</li><li>IFERRORとの違いは「対象エラーの範囲」</li><li>数式のバグを見逃したくないならIFNA関数が安全</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUP+IFNAから試してみてください。#N/Aだけをきれいに処理しつつ、数式の不具合も見逃しません。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a> &#8212; 全エラーをまとめて処理</li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a> &#8212; 検索の基本</li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a> &#8212; 柔軟なセル参照</li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a> &#8212; 位置を検索する</li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a> &#8212; 条件分岐の基本</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-ifna-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのFORMULATEXT関数の使い方｜数式をテキスト表示する方法</title>
		<link>https://mashukabu.com/spreadsheet-formulatext-function/</link>
					<comments>https://mashukabu.com/spreadsheet-formulatext-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:35:04 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA関数]]></category>
		<category><![CDATA[FORMULATEXT関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[ISFORMULA関数]]></category>
		<category><![CDATA[シート管理]]></category>
		<category><![CDATA[数式表示]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4857</guid>

					<description><![CDATA[スプレッドシートのFORMULATEXT関数でセルの数式をテキストとして取得する方法を解説。基本構文から数式一覧の自動作成、ドキュメント化、デバッグへの活用まで、実務で使えるパターンを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「このセル、どんな数式が入ってるんだっけ？」と思ったとき、1セルずつクリックして数式バーを確認していませんか。</p>



<p class="wp-block-paragraph">セル数が多いシートだと、数式を目視チェックするのは時間がかかりすぎます。数式の一覧をまとめて確認できたら便利ですよね。</p>



<p class="wp-block-paragraph">そんなときに活躍するのが、スプレッドシートのFORMULATEXT関数です。この記事では、基本の使い方から数式のデバッグ・ドキュメント化まで、実務で使えるパターンを紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>この記事は次のような人におすすめ</p><p>&#8211; セルに入っている数式をテキストとして確認したい<br>&#8211; 数式の一覧表を自動で作りたい<br>&#8211; チームに共有するシートの仕様書（ドキュメント）を作りたい<br>&#8211; 数式のデバッグや検証を効率化したい</p></blockquote>




  <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">スプレッドシートのFORMULATEXT関数とは？</a><ol><li><a href="#toc2" tabindex="0">FORMULATEXT関数の基本構文</a></li></ol></li><li><a href="#toc3" tabindex="0">FORMULATEXT関数の基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">別のセルの数式をテキストで表示する</a></li><li><a href="#toc5" tabindex="0">数式がないセルを参照すると #N/A エラーになる</a></li><li><a href="#toc6" tabindex="0">別シートの数式も取得できる</a></li></ol></li><li><a href="#toc7" tabindex="0">FORMULATEXT関数の実務活用パターン</a><ol><li><a href="#toc8" tabindex="0">パターン1: 数式の一覧表を自動作成する</a></li><li><a href="#toc9" tabindex="0">パターン2: IFERROR関数でエラーを回避する</a></li><li><a href="#toc10" tabindex="0">パターン3: IF関数で数式セルと値セルを区別する</a></li><li><a href="#toc11" tabindex="0">パターン4: ARRAYFORMULA関数で一括表示する</a></li><li><a href="#toc12" tabindex="0">パターン5: 数式のドキュメント化（仕様書作成）</a></li><li><a href="#toc13" tabindex="0">パターン6: 数式のデバッグに活用する</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">ISFORMULA関数との違い・使い分け</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">FORMULATEXT（読み方: フォーミュラテキスト）関数は、指定したセルに入っている<strong>数式をテキスト文字列として返す</strong>関数です。</p>



<p class="wp-block-paragraph">「formula」は数式、「text」はテキストの意味です。</p>



<p class="wp-block-paragraph">たとえばセルB2に <code>=SUM(A1:A10)</code> という数式が入っていたとします。<code>=FORMULATEXT(B2)</code> と書くと、「=SUM(A1:A10)」という文字列が返ります。</p>



<p class="wp-block-paragraph">数式の「計算結果」ではなく、「数式そのもの」を取得できるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc2">FORMULATEXT関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=FORMULATEXT(セル)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>セル</td><td>必須</td><td>数式を取得したいセルの参照。セル参照のみ指定可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は「セル」の1つだけです。直接値（数値や文字列）は指定できません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel版のFORMULATEXT関数とまったく同じ構文で動作します。Excelで使い慣れている人はそのまま使えますよ。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc4">別のセルの数式をテキストで表示する</span></h3>



<p class="wp-block-paragraph">もっとも基本的な使い方です。B2セルに数式が入っているとき、C2セルに次のように入力します。</p>



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



<p class="wp-block-paragraph">B2の数式がそのまま文字列で表示されます。計算結果ではなく数式の文字列が返る点がポイントです。</p>



<p class="wp-block-paragraph">たとえばB2に <code>=SUM(A1:A5)</code> が入っていれば、C2には「=SUM(A1:A5)」と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc5">数式がないセルを参照すると #N/A エラーになる</span></h3>



<p class="wp-block-paragraph">FORMULATEXT関数は、参照先に数式がないとき #N/A エラーを返します。値が直接入力されたセルや空白セルを参照した場合もエラーです。</p>



<p class="wp-block-paragraph">「数式が見つからない」という意味の正常な動作なので、焦らなくて大丈夫です。エラーを表示したくない場合は、後述の<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>との組み合わせで回避できます。</p>



<h3 class="wp-block-heading"><span id="toc6">別シートの数式も取得できる</span></h3>



<p class="wp-block-paragraph">別のシートにあるセルの数式も取得できます。シート名を付けて参照するだけです。</p>



<pre class="wp-block-code"><code>=FORMULATEXT('集計シート'!B2)</code></pre>



<p class="wp-block-paragraph">シート名にスペースや日本語が含まれる場合は、シングルクォーテーション（<code>'</code>）で囲みます。スプレッドシートでは多くのシートが日本語名なので、クォーテーションを忘れないようにしましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc8">パターン1: 数式の一覧表を自動作成する</span></h3>



<p class="wp-block-paragraph">シートの数式をまとめて一覧にしたい場面は多いですよね。FORMULATEXT関数を使えば、手作業なしで数式一覧を作れます。</p>



<p class="wp-block-paragraph">たとえばB列に計算式が入っている場合、C2に次の数式を入れて下方向にコピーします。</p>



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



<p class="wp-block-paragraph">これだけで、B列の数式がC列にテキストで一覧表示されます。</p>



<p class="wp-block-paragraph">ただし、値セルでは #N/A エラーになります。値セルも含めて一覧にしたい場合はパターン2の方法がおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン2: IFERROR関数でエラーを回避する</span></h3>



<p class="wp-block-paragraph">数式のないセルで #N/A エラーになるのが困りどころです。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>を使えば、シンプルにエラーを処理できます。</p>



<pre class="wp-block-code"><code>=IFERROR(FORMULATEXT(B2), &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>エラー時の表示は <code>""</code> で空欄にしても構いません。ただし「（値）」や「&#8212;」のように明示しておくと、数式がないことが一目でわかって便利です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">パターン3: IF関数で数式セルと値セルを区別する</span></h3>



<p class="wp-block-paragraph">もう少し丁寧に判定したい場合は、<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせる方法もあります。</p>



<pre class="wp-block-code"><code>=IF(ISFORMULA(B2), FORMULATEXT(B2), &quot;---&quot;)</code></pre>



<p class="wp-block-paragraph">ISFORMULA関数でB2に数式があるかをTRUE/FALSEで判定します。数式があるときだけFORMULATEXT関数で中身を取得する流れです。</p>



<p class="wp-block-paragraph">IFERROR関数よりも明示的に判定しているため、#N/A 以外のエラーまで隠してしまう心配がありません。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン4: ARRAYFORMULA関数で一括表示する</span></h3>



<p class="wp-block-paragraph">スプレッドシートならではの便利な使い方です。<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせると、1つの数式で複数セルの数式を一括表示できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFERROR(FORMULATEXT(B2:B20), &quot;（値）&quot;))</code></pre>



<p class="wp-block-paragraph">B2からB20までのすべてのセルの数式を一括でテキスト表示します。1セルずつコピーする必要がないので、広い範囲の数式確認にとても便利ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ARRAYFORMULA関数でFORMULATEXTを展開する場合、IFERROR関数も一緒にラップしないと値セルの行で #N/A エラーが出ます。セットで使うのがポイントです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">パターン5: 数式のドキュメント化（仕様書作成）</span></h3>



<p class="wp-block-paragraph">複雑なシートの引き継ぎ資料や仕様書を作るとき、FORMULATEXT関数が重宝します。</p>



<p class="wp-block-paragraph">「セル番地」「説明」「数式」の3列構成にすると、メンテナンスしやすいドキュメントになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（セル番地）</th><th>B列（説明）</th><th>C列（数式）</th></tr></thead><tbody><tr><td>D2</td><td>売上合計</td><td>=FORMULATEXT(&#8216;集計&#8217;!D2)</td></tr><tr><td>D3</td><td>原価合計</td><td>=FORMULATEXT(&#8216;集計&#8217;!D3)</td></tr><tr><td>D4</td><td>粗利</td><td>=FORMULATEXT(&#8216;集計&#8217;!D4)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">別シートの数式もそのまま取得できます。計算シートと仕様書シートを分けて管理できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン6: 数式のデバッグに活用する</span></h3>



<p class="wp-block-paragraph">「計算結果がおかしいけど、どのセルの数式が原因かわからない」というとき、FORMULATEXT関数でデバッグできます。</p>



<p class="wp-block-paragraph">隣の列に数式をテキスト表示させれば、計算結果と数式を横に並べて確認できます。参照先の間違いやカッコの閉じ忘れなど、数式バーだけでは見つけにくいミスも発見しやすくなりますよ。</p>



<pre class="wp-block-code"><code>=FORMULATEXT(B2) &amp; &quot; → &quot; &amp; B2</code></pre>



<p class="wp-block-paragraph">数式テキストと計算結果を1つのセルにまとめて表示する書き方です。「=SUM(A1:A5) → 150」のように、数式と結果を並べて確認できます。</p>



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



<p class="wp-block-paragraph">FORMULATEXT関数で遭遇するエラーは、ほとんどが #N/A です。原因と対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>参照先に数式がない（値や空白セル）</td><td>IFERROR関数でラップする（パターン2）</td></tr><tr><td>#N/A</td><td>別のスプレッドシートのセルを参照した</td><td>同一スプレッドシート内のセルのみ参照可能。別ファイルの数式は取得できない</td></tr><tr><td>#REF!</td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認する</td></tr><tr><td>古い数式が表示される</td><td>シートの再計算が走っていない</td><td>セルを再入力するか、空のセルを編集してEnterを押す</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>スプレッドシートのFORMULATEXT関数は、<strong>同一スプレッドシート内のセルのみ参照可能</strong>です。IMPORTRANGE関数で取り込んだ先の数式は取得できません。Excel版とはこの点が異なるので注意してください。</p></blockquote>



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



<p class="wp-block-paragraph">FORMULATEXT関数とよく似た名前のISFORMULA関数があります。役割がまったく違うので、整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FORMULATEXT関数</th><th>ISFORMULA関数</th></tr></thead><tbody><tr><td>役割</td><td>数式の<strong>テキスト</strong>を取得する</td><td>数式の<strong>有無</strong>を判定する</td></tr><tr><td>戻り値</td><td>数式の文字列（例: <code>=SUM(A1:A10)</code>）</td><td>TRUE / FALSE</td></tr><tr><td>数式がないセル</td><td>#N/A エラーを返す</td><td>FALSE を返す</td></tr><tr><td>主な用途</td><td>数式の一覧表示・ドキュメント化</td><td>数式チェック・条件分岐</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>「数式があるかどうか」を知りたい</strong> → ISFORMULA関数</li><li><strong>「数式の中身を見たい」</strong> → FORMULATEXT関数</li></ul>



<p class="wp-block-paragraph">そして実務では、この2つを組み合わせるのが鉄板パターンです（パターン3で紹介）。</p>



<pre class="wp-block-code"><code>=IF(ISFORMULA(B2), FORMULATEXT(B2), &quot;---&quot;)</code></pre>



<p class="wp-block-paragraph">ISFORMULA関数で「数式があるか」を先に判定し、あるときだけFORMULATEXT関数で中身を取得する流れです。</p>



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



<p class="wp-block-paragraph">FORMULATEXT関数は、セルの数式をテキスト文字列として取得できる関数です。</p>



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



<ul class="wp-block-list"><li>引数は「セル」の1つだけ。セル参照を指定するだけで使える</li><li>数式の計算結果ではなく、数式そのものを文字列で返す</li><li>数式がないセルでは #N/A エラーになる</li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>でラップすればエラーを簡単に回避できる</li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば一括で数式一覧を作れる</li><li>数式の一覧表やシートの仕様書作成、デバッグに便利</li></ul>



<p class="wp-block-paragraph">まずは <code>=FORMULATEXT(B2)</code> のシンプルな使い方から試してみてください。IFERRORとARRAYFORMULAの組み合わせを覚えれば、数式の「見える化」がグッとラクになりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isformula/">ExcelのISFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-formulatext/">ExcelのFORMULATEXT関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-formulatext-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIF・IFS・IFERROR・IFNAの使い分け｜選び方フロー付き</title>
		<link>https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/</link>
					<comments>https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 23:09:12 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<category><![CDATA[使い分け]]></category>
		<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4707</guid>

					<description><![CDATA[ExcelのIF・IFS・IFERROR・IFNAの4関数を「条件の数」「エラー対処が目的か」の2軸で整理。選び方フローチャートとIF→IFSの書き換え例で、どの関数を使うべきか一目でわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「IF関数は使えるけど、IFSとかIFERRORとか似た名前の関数がいくつもあって、どれを使えばいいかわからない」と感じたこと、ありませんか？</p>



<p class="wp-block-paragraph">間違った関数を選ぶと、数式がムダに複雑になったり、本来気づくべきエラーを見落としてしまったりします。</p>



<p class="wp-block-paragraph">この記事では、IF・IFS・IFERROR・IFNAの4つの関数を「条件分岐か、エラー処理か」「条件の数はいくつか」という2つの軸でスッキリ整理します。記事の最後には選び方フローチャートも用意したので、もう迷うことはありませんよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">IF系4関数の違い【結論から】</a></li><li><a href="#toc2" tabindex="0">IF関数の基本と使いどころ</a><ol><li><a href="#toc3" tabindex="0">構文</a></li><li><a href="#toc4" tabindex="0">使用例</a></li><li><a href="#toc5" tabindex="0">IFが向いているケース</a></li></ol></li><li><a href="#toc6" tabindex="0">IFS関数の基本と使いどころ</a><ol><li><a href="#toc7" tabindex="0">構文</a></li><li><a href="#toc8" tabindex="0">IFネストからIFSへの書き換え</a></li><li><a href="#toc9" tabindex="0">IF と IFS、どちらを使う？</a></li></ol></li><li><a href="#toc10" tabindex="0">IFERROR関数の基本と使いどころ</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">IFERRORの注意点</a></li></ol></li><li><a href="#toc15" tabindex="0">IFNA関数の基本と使いどころ</a><ol><li><a href="#toc16" tabindex="0">構文</a></li><li><a href="#toc17" tabindex="0">IFERRORとIFNAの使い分け</a></li><li><a href="#toc18" tabindex="0">使用例</a></li></ol></li><li><a href="#toc19" tabindex="0">4関数の選び方フローチャート</a></li><li><a href="#toc20" tabindex="0">実務でよく使う組み合わせパターン</a><ol><li><a href="#toc21" tabindex="0">パターン1: IFS + IFERROR（条件分岐 + エラー処理）</a></li><li><a href="#toc22" tabindex="0">パターン2: IF + AND/OR（複合条件の分岐）</a></li><li><a href="#toc23" tabindex="0">パターン3: VLOOKUP + IFNA（検索 + エラー処理）</a></li></ol></li><li><a href="#toc24" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">IF系4関数の違い【結論から】</span></h2>



<p class="wp-block-paragraph">まず結論です。4つの関数は大きく2グループに分かれます。</p>



<ul class="wp-block-list"><li><strong>条件分岐グループ</strong>: IF、IFS</li><li><strong>エラー処理グループ</strong>: IFERROR、IFNA</li></ul>



<p class="wp-block-paragraph">「条件によって表示を切り替えたい」ならIF or IFS、「数式のエラーを処理したい」ならIFERROR or IFNAです。</p>



<p class="wp-block-paragraph">以下の比較表で、それぞれの特徴を一目で確認できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IF</th><th>IFS</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>役割</td><td>条件分岐（1条件）</td><td>条件分岐（複数条件）</td><td>エラー処理（全種）</td><td>エラー処理（#N/Aのみ）</td></tr><tr><td>構文</td><td><code>=IF(条件, 真, 偽)</code></td><td><code>=IFS(条件1, 値1, ...)</code></td><td><code>=IFERROR(式, エラー時)</code></td><td><code>=IFNA(式, NA時)</code></td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>2019 / 365</td><td>2007以降</td><td>2013以降</td></tr><tr><td>ネスト</td><td>最大64段（実用は3段）</td><td>不要（最大127条件）</td><td>不要</td><td>不要</td></tr><tr><td>おすすめ場面</td><td>条件が1〜2個</td><td>条件が3個以上</td><td>計算エラー全般</td><td>VLOOKUP等の検索エラー</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表だけで判断できることも多いですが、ここから各関数の使いどころをもう少し掘り下げていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">IF関数の基本と使いどころ</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>は、Excelの条件分岐でもっとも基本的な関数です。「もし〜なら A、そうでなければ B」という処理を1行で書けます。</p>



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



<pre class="wp-block-code"><code>=IF(論理式, 値が真の場合, [値が偽の場合])</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>TRUE/FALSEに評価される条件式</td></tr><tr><td>値が真の場合</td><td>必須</td><td>条件がTRUEのときの返し値</td></tr><tr><td>値が偽の場合</td><td>省略可</td><td>条件がFALSEのときの返し値（省略時はFALSE）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">使用例</span></h3>



<p class="wp-block-paragraph">たとえば、売上が目標を超えたら「達成」と表示する場合はこう書きます。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=100000, &quot;達成&quot;, &quot;未達&quot;)</code></pre>



<p class="wp-block-paragraph">条件が1つだけのシンプルな場面なら、IF関数が最適です。</p>



<h3 class="wp-block-heading"><span id="toc5">IFが向いているケース</span></h3>



<ul class="wp-block-list"><li>「合格 / 不合格」のような二択判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-and/">AND関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-or/">OR関数</a>と組み合わせた複合条件（条件は1セットだが、判定要素が複数ある場合）</li><li>Excel 2016以前のファイルでも使う必要がある場合</li></ul>



<pre class="wp-block-code"><code>=IF(AND(B2&gt;=100000, C2&gt;=50), &quot;S評価&quot;, &quot;対象外&quot;)</code></pre>



<p class="wp-block-paragraph">上の式は「売上10万以上 かつ 件数50以上」を同時に満たすかどうかを判定しています。条件の数は1つ（ANDで束ねた複合条件）なので、IFで十分対応できます。</p>



<h2 class="wp-block-heading"><span id="toc6">IFS関数の基本と使いどころ</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>は、複数の条件を上から順に判定して、最初にTRUEになった条件の値を返す関数です。IFのネスト（入れ子）を使わずに、3つ以上の条件分岐を書けるのが最大のメリットです。</p>



<h3 class="wp-block-heading"><span id="toc7">構文</span></h3>



<pre class="wp-block-code"><code>=IFS(条件1, 値1, 条件2, 値2, ..., TRUE, &quot;それ以外&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>条件1</td><td>必須</td><td>1つ目の条件式</td></tr><tr><td>値1</td><td>必須</td><td>条件1がTRUEのときの返し値</td></tr><tr><td>条件2, 値2 &#8230;</td><td>省略可</td><td>2つ目以降の条件と値のペア（最大127組）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、最後の条件を <code>TRUE</code> にすること。これが「どの条件にも当てはまらない場合」のデフォルト値（IFでいう「偽の場合」）になります。この <code>TRUE</code> を省略すると、どの条件にも合わないときに#N/Aエラーが出るので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc8">IFネストからIFSへの書き換え</span></h3>



<p class="wp-block-paragraph">IFを3段ネストした式と、IFSに書き換えた式を並べてみましょう。</p>



<pre class="wp-block-code"><code>【Before: IFネスト3段】
=IF(A2&gt;=90, &quot;優&quot;, IF(A2&gt;=70, &quot;良&quot;, IF(A2&gt;=50, &quot;可&quot;, &quot;不可&quot;)))

【After: IFS】
=IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">どうでしょうか。IFS版のほうがカッコの入れ子がなくなり、条件と結果のペアが横に並んでいて読みやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc9">IF と IFS、どちらを使う？</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>判断基準</th><th>IF</th><th>IFS</th></tr></thead><tbody><tr><td>条件の数</td><td>1〜2個</td><td>3個以上</td></tr><tr><td>可読性</td><td>ネスト2段までなら十分</td><td>3段以上で圧倒的に見やすい</td></tr><tr><td>バージョン互換</td><td>全バージョンOK</td><td>2019 / 365 のみ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>迷ったときの目安</strong>: 「IF文のカッコが3段以上になりそうだな」と思ったら、IFS関数への切り替えを検討してみてください。ただし、社内で古いバージョンのExcel（2016以前）を使っている人がいる場合は、IFネストのほうが安全です。</p>



<h2 class="wp-block-heading"><span id="toc10">IFERROR関数の基本と使いどころ</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>は、数式がエラーを返した場合に代替値を表示する関数です。条件分岐ではなく、<strong>エラー処理</strong>が目的です。</p>



<h3 class="wp-block-heading"><span id="toc11">構文</span></h3>



<pre class="wp-block-code"><code>=IFERROR(値, エラーの場合の値)</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>



<h3 class="wp-block-heading"><span id="toc12">対処できるエラーの種類</span></h3>



<p class="wp-block-paragraph">IFERRORは以下の<strong>7種類すべてのエラー</strong>を一括で処理します。</p>



<p class="wp-block-paragraph"><code>#N/A</code> <code>#VALUE!</code> <code>#REF!</code> <code>#DIV/0!</code> <code>#NUM!</code> <code>#NAME?</code> <code>#NULL!</code></p>



<p class="wp-block-paragraph">エラーの種類については「<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a>」で詳しく解説しています。</p>



<h3 class="wp-block-heading"><span id="toc13">使用例</span></h3>



<p class="wp-block-paragraph">もっともよく使うのは、割り算のゼロ除算エラーを回避するパターンです。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, 0)</code></pre>



<p class="wp-block-paragraph">C2が0やブランクのとき、#DIV/0!エラーのかわりに 0 を返します。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP</a>で検索値が見つからなかったときのエラーを回避するパターンもよく使います。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, 商品マスタ, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc14">IFERRORの注意点</span></h3>



<p class="wp-block-paragraph">IFERRORは便利ですが、<strong>すべてのエラーを消してしまう</strong>点に注意が必要です。</p>



<p class="wp-block-paragraph">たとえば、数式にスペルミスがあって <code>#NAME?</code> エラーが出ているのに、IFERRORでラップしているとエラーが見えなくなります。本来は修正すべきバグが隠れてしまうわけです。</p>



<p class="wp-block-paragraph">「エラーが出たらとりあえずIFERRORで囲む」というクセがある人は、この後紹介するIFNA関数のほうが安全かもしれません。</p>



<h2 class="wp-block-heading"><span id="toc15">IFNA関数の基本と使いどころ</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>は、<strong>#N/Aエラーだけ</strong>を処理する関数です。それ以外のエラー（#VALUE!や#REF!など）はそのまま表示します。</p>



<h3 class="wp-block-heading"><span id="toc16">構文</span></h3>



<pre class="wp-block-code"><code>=IFNA(値, NAの場合の値)</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>#N/Aを確認する数式</td></tr><tr><td>NAの場合の値</td><td>必須</td><td>#N/Aだったときに返す値</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">IFERRORとIFNAの使い分け</span></h3>



<p class="wp-block-paragraph">IFERRORとIFNAの違いを、もう少し具体的に見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>処理するエラー</td><td>全7種（#N/A, #VALUE!, #REF! 等）</td><td>#N/Aのみ</td></tr><tr><td>数式バグの検出</td><td>隠してしまう可能性あり</td><td>バグはエラーとして表示される</td></tr><tr><td>おすすめ場面</td><td>割り算のゼロ除算、計算エラー全般</td><td>VLOOKUP/XLOOKUPなどの検索関数</td></tr><tr><td>対応バージョン</td><td>Excel 2007以降</td><td>Excel 2013以降</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">使用例</span></h3>



<p class="wp-block-paragraph">VLOOKUPで「検索値が見つからない」場合だけ処理したいなら、IFNAが最適です。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 商品マスタ, 2, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>も#N/Aエラーを返すので、同じようにIFNAで処理できます。</p>



<pre class="wp-block-code"><code>=IFNA(XLOOKUP(A2, 商品名, 単価), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">もしこの数式にセル参照のミス（#REF!）や型の不一致（#VALUE!）があった場合、IFNAなら<strong>エラーが表示される</strong>ので問題にすぐ気づけます。IFERRORだとこれらのバグも「未登録」と表示されてしまい、発見が遅れます。</p>



<p class="wp-block-paragraph"><strong>まとめると</strong>: 検索関数のエラー処理にはIFNAのほうが安全です。計算式のゼロ除算など、#N/A以外のエラーも処理したい場面ではIFERRORを使いましょう。</p>



<h2 class="wp-block-heading"><span id="toc19">4関数の選び方フローチャート</span></h2>



<p class="wp-block-paragraph">ここまで紹介した4関数を、どの場面でどれを使うか迷わず選べるフローチャートにまとめました。</p>



<p class="wp-block-paragraph">以下の順番で質問に答えていくだけで、使うべき関数がわかります。</p>



<p class="wp-block-paragraph"><strong>Q1. やりたいことは何ですか？</strong></p>



<ul class="wp-block-list"><li><strong>条件によって表示を切り替えたい</strong> → Q2へ</li><li><strong>数式のエラーを処理したい</strong> → Q3へ</li></ul>



<p class="wp-block-paragraph"><strong>Q2. 条件はいくつありますか？</strong></p>



<ul class="wp-block-list"><li><strong>1〜2個</strong> → <strong>IF関数</strong> を使う<ul><li>AND/ORで複合条件にしてもOK</li></ul></li><li><strong>3個以上</strong> → <strong>IFS関数</strong> を使う<ul><li>ただしExcel 2016以前ではIFネストを使う</li></ul></li></ul>



<p class="wp-block-paragraph"><strong>Q3. 処理したいエラーの種類は？</strong></p>



<ul class="wp-block-list"><li><strong>#N/Aだけ処理したい</strong>（VLOOKUP/XLOOKUP等の検索エラー） → <strong>IFNA関数</strong> を使う<ul><li>数式のバグを見逃さない安全な選択</li></ul></li><li><strong>すべてのエラーを処理したい</strong>（#DIV/0!や#VALUE!も含む） → <strong>IFERROR関数</strong> を使う<ul><li>ただし数式バグも隠れるリスクに注意</li></ul></li></ul>



<p class="wp-block-paragraph">このフローに従えば、4つの関数で迷うことはなくなるはずです。</p>



<h2 class="wp-block-heading"><span id="toc20">実務でよく使う組み合わせパターン</span></h2>



<p class="wp-block-paragraph">最後に、IF系関数を組み合わせて使う実務パターンを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc21">パターン1: IFS + IFERROR（条件分岐 + エラー処理）</span></h3>



<p class="wp-block-paragraph">計算結果を条件分岐したいけど、元の計算式がエラーになる可能性がある場合に使います。</p>



<pre class="wp-block-code"><code>=IFERROR(IFS(B2/C2&gt;=1.2, &quot;大幅増&quot;, B2/C2&gt;=1, &quot;微増&quot;, TRUE, &quot;減少&quot;), &quot;データなし&quot;)</code></pre>



<p class="wp-block-paragraph">この式は「前年比（B2/C2）」に応じた評価を出しつつ、C2がゼロだった場合のエラーもカバーしています。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン2: IF + AND/OR（複合条件の分岐）</span></h3>



<p class="wp-block-paragraph">「AかつB」や「AまたはB」の条件判定は、IF関数にAND/OR関数を組み合わせて書きます。</p>



<pre class="wp-block-code"><code>=IF(AND(B2&gt;=&quot;2026/4/1&quot;, B2&lt;=&quot;2026/4/30&quot;), &quot;4月分&quot;, &quot;対象外&quot;)
=IF(OR(C2=&quot;東京&quot;, C2=&quot;大阪&quot;, C2=&quot;名古屋&quot;), &quot;主要拠点&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">AND/ORの詳しい使い方は「<a href="https://mashukabu.com/excel-function-howto-use-and/">AND関数の使い方</a>」「<a href="https://mashukabu.com/excel-function-howto-use-or/">OR関数の使い方</a>」をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc23">パターン3: VLOOKUP + IFNA（検索 + エラー処理）</span></h3>



<p class="wp-block-paragraph">VLOOKUPで検索値が見つからないときだけ代替値を返すパターンです。実務でもっとも使用頻度が高い組み合わせのひとつです。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), &quot;価格未設定&quot;)</code></pre>



<p class="wp-block-paragraph">VLOOKUPのかわりにXLOOKUPを使う場合も同じ書き方でOKです。XLOOKUPには第4引数でエラー時の代替値を指定できますが、IFNAで統一しておけば数式のスタイルが揃って管理しやすくなります。</p>



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



<p class="wp-block-paragraph">ExcelのIF系4関数の使い分けをおさらいしましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>使うべき場面</th></tr></thead><tbody><tr><td>IF</td><td>条件分岐（1〜2条件）</td><td>シンプルな二択・AND/ORとの複合条件</td></tr><tr><td>IFS</td><td>条件分岐（3条件以上）</td><td>ネストを避けたい多段階評価</td></tr><tr><td>IFERROR</td><td>エラー処理（全エラー）</td><td>ゼロ除算・計算エラーの回避</td></tr><tr><td>IFNA</td><td>エラー処理（#N/Aのみ）</td><td>VLOOKUP/XLOOKUPの検索エラー処理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断に迷ったら、本記事のフローチャートに立ち返ってみてください。</p>



<ul class="wp-block-list"><li>やりたいのが<strong>条件分岐</strong>なら → 条件の数でIF or IFSを選ぶ</li><li>やりたいのが<strong>エラー処理</strong>なら → 対象エラーの種類でIFERROR or IFNAを選ぶ</li></ul>



<p class="wp-block-paragraph">まずは自分の数式が「条件分岐」と「エラー処理」のどちらなのかを見極めるところから始めてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのIF関数の使い方｜条件分岐を基本から解説</title>
		<link>https://mashukabu.com/spreadsheet-if-function/</link>
					<comments>https://mashukabu.com/spreadsheet-if-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 13:57:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[AND関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[OR関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4701</guid>

					<description><![CDATA[スプレッドシートのIF関数の使い方を基本から丁寧に解説。条件分岐の構文から、AND/ORを使った複数条件、ネストIF（入れ子）、よくあるエラーの対処まで実務シナリオで解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで条件によって表示を切り替えたい」「達成・未達成を自動で判定したい」。こんな場面、仕事でよくありますよね。</p>



<p class="wp-block-paragraph">手作業で1行ずつ確認して入力するのは大変です。データが増えるたびにやり直すのも非効率ですよね。</p>



<p class="wp-block-paragraph">そんなときに使うのが、スプレッドシートのIF関数です。この記事では基本の書き方から、AND・ORを使った複数条件、ネストIF（入れ子）まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのIF関数とは？条件分岐の基本的な仕組み</a><ol><li><a href="#toc2" tabindex="0">IF関数の書き方（構文・引数）</a></li><li><a href="#toc3" tabindex="0">最もシンプルな使用例</a></li><li><a href="#toc4" tabindex="0">ExcelのIFとの違いはほぼなし</a></li></ol></li><li><a href="#toc5" tabindex="0">実務でよく使うIF関数の使い方3選</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">複数条件のIF関数｜AND・ORの使い分け</a><ol><li><a href="#toc10" tabindex="0">AND条件（〜かつ〜）の書き方</a></li><li><a href="#toc11" tabindex="0">OR条件（〜または〜）の書き方</a></li><li><a href="#toc12" tabindex="0">AND/ORどちらを使うか迷ったときの判断フロー</a></li></ol></li><li><a href="#toc13" tabindex="0">IF関数のネスト（入れ子）で3段階以上に分岐する</a><ol><li><a href="#toc14" tabindex="0">ネストIFの書き方と実例</a></li><li><a href="#toc15" tabindex="0">ネストが深くなったらIFS関数に切り替えよう</a></li></ol></li><li><a href="#toc16" tabindex="0">IF関数でよくあるエラーと対処チェックリスト</a><ol><li><a href="#toc17" tabindex="0">TRUE・FALSEが表示される</a></li><li><a href="#toc18" tabindex="0">TRUE値とFALSE値の順番が逆になっている</a></li><li><a href="#toc19" tabindex="0">文字列を返すときのダブルクォート忘れ</a></li><li><a href="#toc20" tabindex="0">括弧の数が合わない</a></li><li><a href="#toc21" tabindex="0">#VALUE!が表示される</a></li><li><a href="#toc22" tabindex="0">IFERROR関数でエラー表示をきれいに消す</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ｜IF関数をマスターして次のステップへ</a><ol><li><a href="#toc24" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIF関数とは？条件分岐の基本的な仕組み</span></h2>



<p class="wp-block-paragraph">IF関数（読み方: イフ関数）は、<strong>条件に応じて返す値を切り替える関数</strong>です。「IF」は英語の「もし〜なら」に由来しています。</p>



<p class="wp-block-paragraph">たとえば「売上が目標以上なら&#8221;達成&#8221;、未満なら&#8221;未達&#8221;」と表示する処理を考えてみましょう。IF関数を使えば、条件判定から表示まで1つの数式で自動化できます。</p>



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



<ul class="wp-block-list"><li>数値の大小で「達成」「未達」を自動判定する</li><li>特定の文字列に応じてコメントを出し分ける</li><li>空白セルかどうかで処理を変える</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>IF関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性もほぼ完全なので、ファイルのやり取りでも安心です。</p></blockquote>



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



<h4 class="wp-block-heading">基本構文</h4>



<pre class="wp-block-code"><code>=IF(論理式, TRUE値, FALSE値)</code></pre>



<p class="wp-block-paragraph">カッコの中に、条件・TRUEの場合の値・FALSEの場合の値を指定します。</p>



<h4 class="wp-block-heading">引数の説明</h4>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>論理式</td><td>必須</td><td>判定する条件（例: A2>=100）</td></tr><tr><td>TRUE値</td><td>必須</td><td>条件が成立したときに返す値</td></tr><tr><td>FALSE値</td><td>任意</td><td>条件が不成立のときに返す値（省略時はFALSE）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第3引数の「FALSE値」は省略できます。省略すると論理値の FALSE が返ります。ただし実務では省略せずに明示するのが一般的ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>文字列を返す場合はダブルクォーテーションで囲みます。数値を返す場合は囲みません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc3">最もシンプルな使用例</span></h3>



<p class="wp-block-paragraph">B列にテストの点数が入っているとします。70点以上なら「合格」、未満なら「不合格」と表示してみましょう。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=70, &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>B2>=70</strong>（論理式）: B2が70以上かを判定</li><li><strong>&#8220;合格&#8221;</strong>（TRUE値）: 条件が成立したら表示する文字列</li><li><strong>&#8220;不合格&#8221;</strong>（FALSE値）: 条件が不成立なら表示する文字列</li></ul>



<p class="wp-block-paragraph">B2が85なら「合格」、60なら「不合格」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc4">ExcelのIFとの違いはほぼなし</span></h3>



<p class="wp-block-paragraph">IF関数の基本動作はExcelとまったく同じです。構文も引数の順番も一致しています。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel</th></tr></thead><tbody><tr><td>基本構文</td><td>同じ</td><td>同じ</td></tr><tr><td>引数の順番</td><td>論理式, TRUE値, FALSE値</td><td>論理式, TRUE値, FALSE値</td></tr><tr><td>FALSE値の省略</td><td>FALSEを返す</td><td>FALSEを返す</td></tr><tr><td>ネスト上限</td><td>制限なし（実質）</td><td>64階層</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ExcelのIF関数に慣れている方は、同じ書き方でそのまま使えますよ。</p>



<h2 class="wp-block-heading"><span id="toc5">実務でよく使うIF関数の使い方3選</span></h2>



<p class="wp-block-paragraph">基本がわかったところで、仕事でよく使うパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc6">売上達成・未達成を自動判定する（営業向け）</span></h3>



<p class="wp-block-paragraph">A列に担当者名、B列に売上金額、C列に目標金額が入っているとします。売上が目標以上なら「達成」、未満なら「未達」と表示します。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=C2, &quot;達成&quot;, &quot;未達&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>B2>=C2</strong>: 売上が目標以上かを判定</li><li><strong>&#8220;達成&#8221;</strong>: 条件成立時の表示</li><li><strong>&#8220;未達&#8221;</strong>: 条件不成立時の表示</li></ul>



<p class="wp-block-paragraph">B2が120,000、C2が100,000なら「達成」が返ります。この数式を下方向にコピーすれば全員分を一括判定できますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">申請ステータスに応じてコメントを表示する（総務・人事向け）</span></h3>



<p class="wp-block-paragraph">B列に申請ステータス（「承認済」「却下」など）が入っているとします。「承認済」なら「処理完了」、それ以外なら「要確認」と表示します。</p>



<pre class="wp-block-code"><code>=IF(B2=&quot;承認済&quot;, &quot;処理完了&quot;, &quot;要確認&quot;)</code></pre>



<p class="wp-block-paragraph">文字列を条件にする場合もダブルクォーテーションで囲みます。大文字・小文字は区別されません。</p>



<p class="wp-block-paragraph">ステータスが「承認済」のときだけ「処理完了」になります。「却下」「保留」「未提出」はすべて「要確認」と表示されます。</p>



<h3 class="wp-block-heading"><span id="toc8">金額の大小で処理を分ける（経理向け）</span></h3>



<p class="wp-block-paragraph">B列に経費金額が入っているとします。10,000円以上なら「要承認」、未満なら「自動承認」と表示します。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=10000, &quot;要承認&quot;, &quot;自動承認&quot;)</code></pre>



<p class="wp-block-paragraph">B2が15,000なら「要承認」、5,000なら「自動承認」が返ります。経費申請の承認フローを可視化したいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc9">複数条件のIF関数｜AND・ORの使い分け</span></h2>



<p class="wp-block-paragraph">IF関数は単体だと条件を1つしか指定できません。複数の条件を組み合わせるにはAND関数やOR関数を使います。</p>



<h3 class="wp-block-heading"><span id="toc10">AND条件（〜かつ〜）の書き方</span></h3>



<p class="wp-block-paragraph">AND関数（読み方: アンド関数）は、英語の「AND（かつ）」に由来しています。<strong>すべての条件が成立したときにTRUEを返す関数</strong>です。IF関数の論理式にAND関数を入れて使います。</p>



<p class="wp-block-paragraph">たとえば「国語が80点以上」<strong>かつ</strong>「数学が80点以上」の場合に「合格」と表示してみましょう。B列に国語、C列に数学の点数が入っているとします。</p>



<pre class="wp-block-code"><code>=IF(AND(B2&gt;=80, C2&gt;=80), &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<p class="wp-block-paragraph">B2が85、C2が90なら「合格」です。B2が85、C2が70なら「不合格」です。どちらか一方でも条件を満たさなければ「不合格」になります。</p>



<p class="wp-block-paragraph">AND関数には条件を3つ以上指定することもできます。</p>



<pre class="wp-block-code"><code>=IF(AND(B2&gt;=80, C2&gt;=80, D2&gt;=80), &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc11">OR条件（〜または〜）の書き方</span></h3>



<p class="wp-block-paragraph">OR関数（読み方: オア関数）は、英語の「OR（または）」に由来しています。<strong>いずれか1つでも条件が成立すればTRUEを返す関数</strong>です。</p>



<p class="wp-block-paragraph">「国語が80点以上」<strong>または</strong>「数学が80点以上」の場合に「合格」と表示します。</p>



<pre class="wp-block-code"><code>=IF(OR(B2&gt;=80, C2&gt;=80), &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<p class="wp-block-paragraph">B2が70、C2が90なら「合格」です。どちらか一方が80点以上であれば「合格」になります。B2が70、C2が60なら「不合格」です。</p>



<h3 class="wp-block-heading"><span id="toc12">AND/ORどちらを使うか迷ったときの判断フロー</span></h3>



<p class="wp-block-paragraph">迷ったときは次の基準で判断してみてください。</p>



<ul class="wp-block-list"><li><strong>すべて満たす必要がある</strong> → AND関数を使う</li><li><strong>どれか1つ満たせばよい</strong> → OR関数を使う</li></ul>



<p class="wp-block-paragraph">日本語で考えるとわかりやすいです。「〜<strong>かつ</strong>〜」ならAND、「〜<strong>または</strong>〜」ならORです。</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン</th><th>使う関数</th><th>例</th></tr></thead><tbody><tr><td>売上100万以上 <strong>かつ</strong> 利益率20%以上</td><td>AND</td><td>両方クリアで「A評価」</td></tr><tr><td>遅刻3回以上 <strong>または</strong> 欠席2回以上</td><td>OR</td><td>どちらかで「要面談」</td></tr><tr><td>在庫あり <strong>かつ</strong> 単価500円以下</td><td>AND</td><td>両方で「発注不要」</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>AND関数・OR関数はARRAYFORMULA（配列数式を展開する関数）と組み合わせられません。配列処理では *(AND相当) や +(OR相当) の演算子を使います。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc13">IF関数のネスト（入れ子）で3段階以上に分岐する</span></h2>



<p class="wp-block-paragraph">IF関数の中にIF関数を入れることを「ネスト」と呼びます。2択では足りないときに使います。</p>



<h3 class="wp-block-heading"><span id="toc14">ネストIFの書き方と実例</span></h3>



<p class="wp-block-paragraph">B列にテストの点数が入っているとします。90点以上を「A」、70点以上を「B」、それ未満を「C」と3段階で評価します。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=90, &quot;A&quot;, IF(B2&gt;=70, &quot;B&quot;, &quot;C&quot;))</code></pre>



<p class="wp-block-paragraph">処理の流れは次のとおりです。</p>



<ol class="wp-block-list"><li>B2が90以上か？ → YESなら「A」を返す</li><li>NOなら次のIF関数へ → B2が70以上か？ → YESなら「B」を返す</li><li>NOなら「C」を返す</li></ol>



<p class="wp-block-paragraph">B2が95なら「A」、80なら「B」、60なら「C」です。</p>



<p class="wp-block-paragraph">4段階にする場合はもう1段ネストします。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=90, &quot;A&quot;, IF(B2&gt;=70, &quot;B&quot;, IF(B2&gt;=50, &quot;C&quot;, &quot;D&quot;)))</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ネストする際は、条件を<strong>大きい方から順に</strong>判定するのがコツです。小さい方から書くと条件が複雑になりやすいので注意してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">ネストが深くなったらIFS関数に切り替えよう</span></h3>



<p class="wp-block-paragraph">ネストが3段階以上になると数式が読みにくくなります。そんなときはIFS関数への切り替えがおすすめです。</p>



<p class="wp-block-paragraph">IFS関数（読み方: イフス関数）は、IFを複数（Plural）扱えることを示す「S」を付けた名称です。「条件と値のペアを並べるだけ」で複数分岐を書けます。</p>



<pre class="wp-block-code"><code>=IFS(B2&gt;=90, &quot;A&quot;, B2&gt;=70, &quot;B&quot;, B2&gt;=50, &quot;C&quot;, TRUE, &quot;D&quot;)</code></pre>



<p class="wp-block-paragraph">ネストIFと同じ結果が得られますが、構造がフラットで読みやすいですよね。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ネストIF</th><th>IFS関数</th></tr></thead><tbody><tr><td>書き方</td><td>IFの中にIFを入れる</td><td>条件と値のペアを並べる</td></tr><tr><td>可読性</td><td>3段階以上で読みにくい</td><td>フラットで読みやすい</td></tr><tr><td>デフォルト値</td><td>最後のFALSE値で指定</td><td>末尾に TRUE, &#8220;値&#8221; で指定</td></tr><tr><td>全条件不一致</td><td>FALSE値が返る</td><td>#N/Aエラーになる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFS関数ですべての条件に一致しない場合は#N/Aエラーが返ります。末尾に TRUE, &#8220;デフォルト値&#8221; を入れておけば回避できますよ。</p>



<h2 class="wp-block-heading"><span id="toc16">IF関数でよくあるエラーと対処チェックリスト</span></h2>



<p class="wp-block-paragraph">IF関数で思った結果にならないケースをまとめました。</p>



<h3 class="wp-block-heading"><span id="toc17">TRUE・FALSEが表示される</span></h3>



<p class="wp-block-paragraph">「達成」「未達」と表示したいのに、TRUEやFALSEが表示されるケースです。</p>



<p class="wp-block-paragraph">原因はTRUE値・FALSE値の指定忘れです。次のように論理式だけを書いた場合に起こります。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=100)</code></pre>



<p class="wp-block-paragraph">この数式ではTRUE値・FALSE値が未指定です。そのため条件の判定結果（TRUE/FALSE）がそのまま表示されます。</p>



<p class="wp-block-paragraph">正しくは次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=100, &quot;達成&quot;, &quot;未達&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc18">TRUE値とFALSE値の順番が逆になっている</span></h3>



<p class="wp-block-paragraph">条件が成立したときの値（TRUE値）と、成立しなかったときの値（FALSE値）を逆に書くと、意図しない結果になります。</p>



<pre class="wp-block-code"><code>× =IF(B2&gt;=100, &quot;未達&quot;, &quot;達成&quot;)
○ =IF(B2&gt;=100, &quot;達成&quot;, &quot;未達&quot;)</code></pre>



<p class="wp-block-paragraph">「達成のつもりが未達と表示される」という場合は、第2引数と第3引数の順番を確認してください。</p>



<h3 class="wp-block-heading"><span id="toc19">文字列を返すときのダブルクォート忘れ</span></h3>



<p class="wp-block-paragraph">文字列をダブルクォーテーションで囲み忘れるとエラーになります。</p>



<pre class="wp-block-code"><code>× =IF(B2&gt;=100, 達成, 未達)
○ =IF(B2&gt;=100, &quot;達成&quot;, &quot;未達&quot;)</code></pre>



<p class="wp-block-paragraph">文字列は必ず &#8221; で囲んでください。数値を返す場合は不要です。</p>



<pre class="wp-block-code"><code>=IF(B2&gt;=100, 1, 0)</code></pre>



<h3 class="wp-block-heading"><span id="toc20">括弧の数が合わない</span></h3>



<p class="wp-block-paragraph">ネストIFを書くとき、開き括弧と閉じ括弧の数が合わないとエラーになります。</p>



<pre class="wp-block-code"><code>× =IF(B2&gt;=90, &quot;A&quot;, IF(B2&gt;=70, &quot;B&quot;, &quot;C&quot;)
○ =IF(B2&gt;=90, &quot;A&quot;, IF(B2&gt;=70, &quot;B&quot;, &quot;C&quot;))</code></pre>



<p class="wp-block-paragraph">ネストが深くなるほど括弧を数え間違えやすくなります。3段階以上のネストはIFS関数への切り替えを検討してみてください。</p>



<h3 class="wp-block-heading"><span id="toc21">#VALUE!が表示される</span></h3>



<p class="wp-block-paragraph">数式の型や構文に誤りがあると#VALUE!エラーが発生します。セルの表示形式が「文字列」に設定されていると、数値として扱われず比較が正しく機能しないことがあります。</p>



<p class="wp-block-paragraph">セルの書式を「数値」または「自動」に変更してから数式を入力し直してみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">IFERROR関数でエラー表示をきれいに消す</span></h3>



<p class="wp-block-paragraph">IF関数自体はエラーを出しにくい関数です。ただし他の関数と組み合わせると#N/Aや#VALUE!が出ることがあります。</p>



<p class="wp-block-paragraph">IFERROR関数は、<strong>数式がエラーを返した場合に代わりの値を表示する関数</strong>です。</p>



<pre class="wp-block-code"><code>=IFERROR(IF(B2/C2&gt;=1, &quot;達成&quot;, &quot;未達&quot;), &quot;データなし&quot;)</code></pre>



<p class="wp-block-paragraph">C2が0や空白の場合、B2/C2で#DIV/0!エラーが発生します。IFERROR関数で囲めば「データなし」と表示できます。</p>



<p class="wp-block-paragraph">エラーを放置すると見た目が悪く、集計にも影響します。ユーザーの目に触れるシートでは積極的に使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc23">まとめ｜IF関数をマスターして次のステップへ</span></h2>



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



<ul class="wp-block-list"><li>IF関数は「条件に応じて返す値を切り替える」関数</li><li>書き方: =IF(論理式, TRUE値, FALSE値)</li><li>文字列を返すにはダブルクォーテーションで囲む</li><li>複数条件はAND関数（かつ）・OR関数（または）で対応</li><li>3段階以上の分岐はネストIF、またはIFS関数で対応</li><li>TRUE/FALSEが表示されたらTRUE値・FALSE値の指定漏れを確認</li></ul>



<p class="wp-block-paragraph">まずは基本の =IF(B2>=100, &#8220;達成&#8221;, &#8220;未達&#8221;) から試してみてください。条件分岐ができると、データの自動判定がグッとラクになりますよ。</p>



<p class="wp-block-paragraph">IF関数に慣れたら、条件付きの集計関数にもチャレンジしてみましょう。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-countifs-function/">スプレッドシートのCOUNTIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sumifs-function/">スプレッドシートのSUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sumif-function/">スプレッドシートのSUMIF関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-if-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのIFERROR関数の使い方｜エラー時の代替値を設定する方法</title>
		<link>https://mashukabu.com/spreadsheet-iferror-function/</link>
					<comments>https://mashukabu.com/spreadsheet-iferror-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 13:57:06 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4699</guid>

					<description><![CDATA[スプレッドシートのIFERROR関数の使い方を基本から解説。エラー時に代替値を返す構文から、VLOOKUPやINDEX/MATCHとの組み合わせ、IFNA関数との違い、よくあるエラーの対処法まで実務シナリオで丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで数式を入れたら#N/Aや#DIV/0!が表示されてしまった」。こんな経験、ありませんか？</p>



<p class="wp-block-paragraph">エラーが並んだ表はそのまま共有しにくいですよね。見た目が悪いだけでなく、集計関数にも影響してしまいます。</p>



<p class="wp-block-paragraph">そんなときに使えるのが、スプレッドシートのIFERROR関数です。この記事では基本の書き方から、VLOOKUPとの組み合わせ、IFNA関数との違い、よくあるエラーの対処法まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのIFERROR関数とは？エラー処理の基本</a></li><li><a href="#toc2" tabindex="0">IFERROR関数の書き方（構文・引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">最もシンプルな使用例</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方3選</a><ol><li><a href="#toc7" tabindex="0">VLOOKUPのエラーを処理する（最頻出パターン）</a></li><li><a href="#toc8" tabindex="0">割り算のゼロ除算エラーを防ぐ</a></li><li><a href="#toc9" tabindex="0">INDEX/MATCHのエラーを処理する</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">IF関数と組み合わせる</a></li><li><a href="#toc13" tabindex="0">複数の検索を順番に試す（フォールバック検索）</a></li></ol></li><li><a href="#toc14" tabindex="0">IFERROR関数で処理できるエラーの種類</a></li><li><a href="#toc15" tabindex="0">IFERROR関数とIFNA関数の違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">どちらを使うべき？判断基準</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">エラーが処理されない</a></li><li><a href="#toc19" tabindex="0">第2引数を省略したときの注意点</a></li><li><a href="#toc20" tabindex="0">すべてのエラーが消えてデバッグできない</a></li><li><a href="#toc21" tabindex="0">IFERROR関数自体は正しいのにエラーが出る</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIFERROR関数とは？エラー処理の基本</span></h2>



<p class="wp-block-paragraph">IFERROR関数（読み方: イフエラー関数）は、<strong>数式がエラーを返したときに代わりの値を表示する関数</strong>です。「IF」は「もし」、「ERROR」は「エラーなら」という意味に由来しています。</p>



<p class="wp-block-paragraph">たとえば「VLOOKUPで検索値が見つからないとき、#N/Aの代わりに&#8221;該当なし&#8221;と表示する」という処理を考えてみましょう。IFERROR関数を使えば、エラー判定と代替値の指定を1つの数式で完結できます。</p>



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



<ul class="wp-block-list"><li>数式のエラーを任意の文字列や数値に置き換える</li><li>#N/A・#DIV/0!・#VALUE!など全7種のエラーを一括処理する</li><li>エラーでないときは元の数式の結果をそのまま返す</li><li>VLOOKUP・INDEX/MATCHなどの検索関数と組み合わせて使う</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>IFERROR関数はGoogleスプレッドシートの全バージョンで使えます。Excelでは2007以降に対応しているため、ファイルのやり取りでも安心です。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=IFERROR(値, エラー時の値)</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><tr><td>エラー時の値</td><td>任意</td><td>エラーだったときに返す値（省略時は空白）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数の「エラー時の値」は省略できます。省略するとエラー時に空白（空文字列）が返ります。ただし実務では「該当なし」や0などを明示するのが一般的ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>文字列を返す場合はダブルクォーテーションで囲みます。数値を返す場合は囲みません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">最もシンプルな使用例</span></h3>



<p class="wp-block-paragraph">B列の値をC列の値で割り算するとします。C列が0のときに#DIV/0!エラーが出るのを防いでみましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, 0)</code></pre>



<ul class="wp-block-list"><li><strong>B2/C2</strong>（値）: 割り算の数式</li><li><strong>0</strong>（エラー時の値）: エラーが出たら0を返す</li></ul>



<p class="wp-block-paragraph">C2が0でなければ割り算の結果が返ります。C2が0のときは#DIV/0!の代わりに0が表示されます。</p>



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



<p class="wp-block-paragraph">基本がわかったところで、仕事でよく使うパターンを見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">VLOOKUPのエラーを処理する（最頻出パターン）</span></h3>



<p class="wp-block-paragraph">商品コードをもとに商品名を検索するとします。<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>で該当がないと#N/Aエラーが出ます。IFERRORで「該当なし」に置き換えてみましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, E:F, 2, FALSE), &quot;該当なし&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>VLOOKUP(A2, E:F, 2, FALSE)</strong>: A2の商品コードをE列から検索</li><li><strong>&#8220;該当なし&#8221;</strong>: 検索値が見つからないときの表示</li></ul>



<p class="wp-block-paragraph">A2の値がE列に存在すれば商品名が返ります。存在しなければ「該当なし」と表示されます。検索系の関数でもっとも使われるパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">割り算のゼロ除算エラーを防ぐ</span></h3>



<p class="wp-block-paragraph">達成率を計算するとき、目標が0だと#DIV/0!エラーが出ます。IFERRORで「-」に置き換えましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, &quot;-&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>B2/C2</strong>: 実績を目標で割った達成率</li><li><strong>&#8220;-&#8220;</strong>: 目標が0のとき「-」を表示</li></ul>



<p class="wp-block-paragraph">売上報告書やKPI管理表でよく使うパターンです。0を返すと「達成率0%」と誤解されるため、「-」や「N/A」を返すほうが親切ですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">INDEX/MATCHのエラーを処理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>とMATCH関数を組み合わせた検索でも、該当なしのときに#N/Aエラーが出ます。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(B:B, MATCH(E2, A:A, 0)), &quot;未登録&quot;)</code></pre>



<ul class="wp-block-list"><li><strong>INDEX(B:B, MATCH(E2, A:A, 0))</strong>: E2をA列から検索し、B列の値を返す</li><li><strong>&#8220;未登録&#8221;</strong>: 該当がないときの表示</li></ul>



<p class="wp-block-paragraph">VLOOKUPよりも柔軟な検索ができるINDEX/MATCHですが、エラー処理の考え方は同じです。IFERRORで囲むだけで対応できます。</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">エラーを完全に非表示にしたい場合は、第2引数に空文字列を指定します。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">空文字列を指定すると、エラー時にセルが空白に見えます。印刷用の帳票や共有資料で、エラー表示を消したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc12">IF関数と組み合わせる</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>とIFERROR関数を組み合わせると、条件分岐とエラー処理を同時に行えます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, IFERROR(VLOOKUP(A2, E:F, 2, FALSE), &quot;該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">A2が空白ならそもそも検索しません。値が入っているときだけVLOOKUPを実行し、見つからなければ「該当なし」を返します。入力途中のデータを扱うときに便利なパターンですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">複数の検索を順番に試す（フォールバック検索）</span></h3>



<p class="wp-block-paragraph">IFERROR関数をネスト（入れ子）にすると、最初の検索が失敗したら次の検索を試せます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, シート2!A:B, 2, FALSE), &quot;どちらにも該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">まずシート1から検索します。見つからなければシート2を検索します。どちらにもなければ「どちらにも該当なし」を返します。複数の参照テーブルを持つ業務で活用できるパターンです。</p>



<h2 class="wp-block-heading"><span id="toc14">IFERROR関数で処理できるエラーの種類</span></h2>



<p class="wp-block-paragraph">IFERROR関数は、スプレッドシートで発生する<strong>全7種類のエラー</strong>を一括で処理できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>発生原因</th><th>対処例</th></tr></thead><tbody><tr><td>#N/A</td><td>検索値が見つからない</td><td><code>=IFERROR(VLOOKUP(...), "該当なし")</code></td></tr><tr><td>#DIV/0!</td><td>0で割り算した</td><td><code>=IFERROR(B2/C2, 0)</code></td></tr><tr><td>#VALUE!</td><td>引数のデータ型が不正</td><td><code>=IFERROR(A2+B2, "数値を入力")</code></td></tr><tr><td>#REF!</td><td>参照先のセルが削除された</td><td><code>=IFERROR(A2, "参照エラー")</code></td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td><td><code>=IFERROR(数式, "数式エラー")</code></td></tr><tr><td>#NUM!</td><td>数値として無効な計算結果</td><td><code>=IFERROR(SQRT(A2), "計算不可")</code></td></tr><tr><td>#NULL!</td><td>範囲の交差指定が不正</td><td><code>=IFERROR(数式, "範囲エラー")</code></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>IFERRORは全エラーをキャッチするため、数式のバグ（#REF!や#NAME?）も隠してしまう場合があります。検索系のエラー（#N/A）だけを処理したい場合は、後述するIFNA関数を使うほうが安全です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">IFERROR関数とIFNA関数の違い・使い分け</span></h2>



<p class="wp-block-paragraph">IFERROR関数と似た関数に、IFNA関数があります。大きな違いは「処理するエラーの範囲」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>対象エラー</td><td>全7種のエラー</td><td>#N/Aのみ</td></tr><tr><td>主な用途</td><td>汎用的なエラー処理</td><td>VLOOKUP等の「該当なし」だけ処理</td></tr><tr><td>バグ発見</td><td>エラーを隠す可能性あり</td><td>#N/A以外はエラーのまま表示される</td></tr><tr><td>構文</td><td>=IFERROR(値, エラー時の値)</td><td>=IFNA(値, N/A時の値)</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">どちらを使うべき？判断基準</span></h3>



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



<ul class="wp-block-list"><li><strong>VLOOKUPやMATCHの「該当なし」だけ処理したい</strong> → IFNA関数がおすすめ</li><li><strong>割り算のゼロ除算など、複数種のエラーをまとめて処理したい</strong> → IFERROR関数が便利</li><li><strong>数式のバグを見逃したくない</strong> → IFNA関数が安全</li></ul>



<p class="wp-block-paragraph">IFNA関数は#N/A以外のエラーをそのまま表示します。そのため、数式に問題があればすぐに気づけます。「なんでもIFERRORで囲む」のはやめて、用途に応じて使い分けてみてください。</p>



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



<p class="wp-block-paragraph">IFERROR関数自体でエラーが出ることはほとんどありません。ただし、意図した動作にならないケースがあります。</p>



<h3 class="wp-block-heading"><span id="toc18">エラーが処理されない</span></h3>



<p class="wp-block-paragraph">IFERRORの第1引数の外でエラーが発生している場合、処理されません。</p>



<p class="wp-block-paragraph">NGの例: IFERRORの外で割り算している</p>



<pre class="wp-block-code"><code>=IFERROR(A2, &quot;エラー&quot;) / B2</code></pre>



<p class="wp-block-paragraph">OKの例: エラーが出る数式全体をIFERRORで囲む</p>



<pre class="wp-block-code"><code>=IFERROR(A2/B2, &quot;エラー&quot;)</code></pre>



<p class="wp-block-paragraph">エラーが出る可能性のある数式全体を第1引数に入れるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc19">第2引数を省略したときの注意点</span></h3>



<p class="wp-block-paragraph">第2引数を省略すると空白が返ります。ただし、空白セルと空文字列は厳密には異なります。</p>



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



<p class="wp-block-paragraph">この数式でエラーが出ると空文字列(&#8220;&#8221;)が返ります。COUNTA関数（空白でないセルを数える関数）はこの空文字列をカウントします。集計に影響する場合は注意してください。</p>



<h3 class="wp-block-heading"><span id="toc20">すべてのエラーが消えてデバッグできない</span></h3>



<p class="wp-block-paragraph">IFERRORで全エラーを隠すと、数式のミスに気づけません。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKP(A2, B:C, 2, FALSE), &quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">上の例では「VLOOKUP」を「VLOOKP」とスペルミスしています。本来は#NAME?エラーで気づけるはずです。しかしIFERRORが「OK」を返してしまいます。数式を組み立てるときは、まずIFERRORなしで動作を確認してから囲むのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERROR関数自体は正しいのにエラーが出る</span></h3>



<p class="wp-block-paragraph">IFERROR関数の構文が正しくても、次のケースではエラーになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数式バーに文字列として表示される</td><td>セルの書式が「テキスト」</td><td>書式を「自動」に変更して再入力</td></tr><tr><td>括弧の数が合わないエラー</td><td>ネスト時の閉じ括弧の不足</td><td>開き括弧と閉じ括弧の数を確認</td></tr><tr><td>意図しない値が返る</td><td>第1引数がエラーではない</td><td>第1引数の数式を単体で確認</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">スプレッドシートのIFERROR関数について解説しました。ポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li>IFERROR関数は「数式がエラーなら代替値を返す」関数</li><li>構文は <code>=IFERROR(値, エラー時の値)</code> とシンプル</li><li>VLOOKUPの#N/A、割り算の#DIV/0!など全7種のエラーに対応</li><li>IFNA関数は#N/Aだけを処理する。バグを見逃したくないならIFNAが安全</li><li>数式のデバッグ時はIFERRORを外してエラーを確認する</li></ul>



<p class="wp-block-paragraph">IFERRORは便利ですが、なんでも囲むとバグを隠すリスクがあります。まずはIFERRORなしで数式が正しく動くことを確認してから囲むようにしてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-ifs-function/">スプレッドシートのIFS関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-iferror-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのDATEDIF関数の使い方｜日付の差を年月日で計算</title>
		<link>https://mashukabu.com/spreadsheet-datedif-function/</link>
					<comments>https://mashukabu.com/spreadsheet-datedif-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:49:57 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DATEDIF関数]]></category>
		<category><![CDATA[DATE関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[TODAY関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[勤続年数]]></category>
		<category><![CDATA[年齢計算]]></category>
		<category><![CDATA[日付計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4327</guid>

					<description><![CDATA[スプレッドシートのDATEDIF関数の使い方を基本から解説。6つの単位（Y/M/D/YM/MD/YD）の意味と実例、生年月日から年齢を自動計算する方法、勤続年数のX年Yヶ月表示、#NUM!エラーの対処法まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「入社日から今日まで何年何ヶ月か、パッと出せないかな？」。社員名簿や契約管理をしていると、こんな場面が出てきますよね。</p>



<p class="wp-block-paragraph">日付の引き算で日数は出せますが、「3年6ヶ月」のような年月表示にするのは意外と面倒です。</p>



<p class="wp-block-paragraph">GoogleスプレッドシートのDATEDIF関数を使えば、2つの日付の差を年・月・日の好きな単位で一発計算できます。</p>



<p class="wp-block-paragraph">この記事では基本の書き方から、年齢の自動計算や勤続年数の「X年Yヶ月」表示まで、実務で使えるテクニックをまとめて紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DATEDIF関数とは？スプレッドシートで日付の差を求める関数</a></li><li><a href="#toc2" tabindex="0">DATEDIF関数の書き方｜構文と引数</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">6つの単位の意味と使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">DATEDIF関数の使い方｜6つの単位を実例で確認</a></li><li><a href="#toc7" tabindex="0">実務で使えるDATEDIF活用例</a><ol><li><a href="#toc8" tabindex="0">生年月日から年齢を自動計算する</a></li><li><a href="#toc9" tabindex="0">勤続年数を「X年Yヶ月」形式で表示する</a></li><li><a href="#toc10" tabindex="0">契約の残り期間を計算する</a></li></ol></li><li><a href="#toc11" tabindex="0">DATEDIF関数のエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">#NUM!エラー（開始日が終了日より後の場合）</a></li><li><a href="#toc13" tabindex="0">IFERRORで安全にエラーを回避する</a></li><li><a href="#toc14" tabindex="0">#VALUE!エラー（日付が文字列の場合）</a></li></ol></li><li><a href="#toc15" tabindex="0">ExcelのDATEDIF関数との互換性</a></li><li><a href="#toc16" tabindex="0">YEAR関数を使った代替手段との比較</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">DATEDIF関数とは？スプレッドシートで日付の差を求める関数</span></h2>



<p class="wp-block-paragraph">DATEDIF関数（読み方: デイトディフ関数）は、<strong>2つの日付の間隔を年・月・日の単位で計算する関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「date（日付）」と「difference（差）」を組み合わせた造語です。</p>



<p class="wp-block-paragraph">通常の日付の引き算（=B1-A1）では結果が「日数」しか返りません。「1,278日」と出されても、それが何年何ヶ月なのかすぐにはわかりませんよね。</p>



<p class="wp-block-paragraph">DATEDIF関数なら、第3引数の「単位」を切り替えるだけで年数・月数・日数を自由に取り出せます。年齢計算や勤続年数の算出に欠かせない関数ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>DATEDIF関数はGoogleスプレッドシートでは公式にサポートされています。Excelでも使えますが、Excelでは公式ドキュメントに記載されていない「非公式関数」の扱いです。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=DATEDIF(開始日, 終了日, 単位)</code></pre>



<p class="wp-block-paragraph">カッコの中に「開始日」「終了日」「単位」の3つを順番に入れます。引数はすべて必須です。</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><tr><td>終了日</td><td>必須</td><td>期間の終了となる日付</td></tr><tr><td>単位</td><td>必須</td><td>結果の単位を指定する文字列（&#8221;Y&#8221;、&#8221;M&#8221;、&#8221;D&#8221;など）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">開始日は終了日より前の日付を指定してください。開始日が終了日より後になると#NUM!エラーが発生します。</p>



<h3 class="wp-block-heading"><span id="toc5">6つの単位の意味と使い分け</span></h3>



<p class="wp-block-paragraph">DATEDIF関数の最大のポイントは、第3引数の「単位」です。6種類あり、それぞれ返す値が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>意味</th><th>返す値</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td>年数</td><td>完了した年の数（端数切り捨て）</td></tr><tr><td>&#8220;M&#8221;</td><td>月数</td><td>完了した月の数（端数切り捨て）</td></tr><tr><td>&#8220;D&#8221;</td><td>日数</td><td>2つの日付の間の日数</td></tr><tr><td>&#8220;YM&#8221;</td><td>年を除いた月数</td><td>年の差を除いた残りの月数（0〜11）</td></tr><tr><td>&#8220;MD&#8221;</td><td>月を除いた日数</td><td>月の差を除いた残りの日数（0〜30）</td></tr><tr><td>&#8220;YD&#8221;</td><td>年を除いた日数</td><td>年の差を除いた残りの日数（0〜365）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上の3つ（Y/M/D）が「トータルの差」、下の3つ（YM/MD/YD）が「端数部分の差」です。この違いを押さえておくと迷わずに使えますよ。</p>



<h2 class="wp-block-heading"><span id="toc6">DATEDIF関数の使い方｜6つの単位を実例で確認</span></h2>



<p class="wp-block-paragraph">同じ日付ペアで6つの単位すべてを試してみましょう。開始日を「2020/4/1」、終了日を「2026/9/15」とします。</p>



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



<pre class="wp-block-code"><code>=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;Y&quot;)   → 6
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;M&quot;)   → 77
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;D&quot;)   → 2358
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;YM&quot;)  → 5
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;MD&quot;)  → 14
=DATEDIF(&quot;2020/4/1&quot;, &quot;2026/9/15&quot;, &quot;YD&quot;)  → 167</code></pre>



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



<p class="wp-block-paragraph">結果を表で整理すると、各単位の違いがはっきりわかります。</p>



<figure class="wp-block-table"><table><thead><tr><th>単位</th><th>数式</th><th>結果</th><th>読み方</th></tr></thead><tbody><tr><td>&#8220;Y&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","Y")</code></td><td>6</td><td>6年（7年目に届いていない）</td></tr><tr><td>&#8220;M&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","M")</code></td><td>77</td><td>トータル77ヶ月</td></tr><tr><td>&#8220;D&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","D")</code></td><td>2358</td><td>トータル2,358日</td></tr><tr><td>&#8220;YM&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","YM")</code></td><td>5</td><td>6年と<strong>5ヶ月</strong></td></tr><tr><td>&#8220;MD&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","MD")</code></td><td>14</td><td>5ヶ月と<strong>14日</strong></td></tr><tr><td>&#8220;YD&#8221;</td><td><code>=DATEDIF("2020/4/1","2026/9/15","YD")</code></td><td>167</td><td>6年と<strong>167日</strong></td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">&#8220;YM&#8221;の「5」と&#8221;MD&#8221;の「14」を合わせると「6年5ヶ月14日」です。「X年Yヶ月Z日」の表示を作るときは、Y・YM・MDの3つを組み合わせて使います。</p>



<h2 class="wp-block-heading"><span id="toc7">実務で使えるDATEDIF活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc8">生年月日から年齢を自動計算する</span></h3>



<p class="wp-block-paragraph">人事名簿でよく使うパターンです。A2に生年月日が入っているとします。</p>



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



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-today-function/">TODAY関数</a>は今日の日付を返す関数です。生年月日と今日の差を「年」の単位で求めるので、現在の満年齢が返ります。</p>



<p class="wp-block-paragraph">たとえばA2が「1990/5/20」で今日が「2026/3/19」なら、結果は「35」です。5月20日を過ぎたら自動で「36」に変わりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>社員が100人いても、数式を下にコピーするだけで全員の年齢が一括計算できます。手計算で年齢を更新する手間がなくなりますね。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc9">勤続年数を「X年Yヶ月」形式で表示する</span></h3>



<p class="wp-block-paragraph">入社日がB2に入っているとして、勤続年数を「X年Yヶ月」の文字列で表示してみましょう。</p>



<pre class="wp-block-code"><code>=DATEDIF(B2, TODAY(), &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(B2, TODAY(), &quot;YM&quot;) &amp; &quot;ヶ月&quot;</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/06_formula_datedif-tenure.png" alt="06 formula datedif tenure" /></figure>



<p class="wp-block-paragraph">「Y」で年数を、「YM」で年を除いた月数を取り出し、文字列結合演算子（&#038;）でつなげています。</p>



<p class="wp-block-paragraph">B2が「2020/4/1」で今日が「2026/3/19」なら、結果は「5年11ヶ月」です。</p>



<p class="wp-block-paragraph">さらに日数まで表示したい場合は、「MD」を追加します。</p>



<pre class="wp-block-code"><code>=DATEDIF(B2, TODAY(), &quot;Y&quot;) &amp; &quot;年&quot; &amp; DATEDIF(B2, TODAY(), &quot;YM&quot;) &amp; &quot;ヶ月&quot; &amp; DATEDIF(B2, TODAY(), &quot;MD&quot;) &amp; &quot;日&quot;</code></pre>



<p class="wp-block-paragraph">結果は「5年11ヶ月18日」のように表示されます。</p>



<h3 class="wp-block-heading"><span id="toc10">契約の残り期間を計算する</span></h3>



<p class="wp-block-paragraph">契約終了日がC2に入っているとして、今日からの残り期間を求めてみましょう。</p>



<pre class="wp-block-code"><code>=DATEDIF(TODAY(), C2, &quot;M&quot;) &amp; &quot;ヶ月&quot; &amp; DATEDIF(TODAY(), C2, &quot;MD&quot;) &amp; &quot;日&quot;</code></pre>



<p class="wp-block-paragraph">この場合はTODAY()を開始日、契約終了日を終了日にしています。C2が「2027/3/31」なら「12ヶ月12日」のように表示されます。</p>



<p class="wp-block-paragraph">契約管理やリース期間の算出に便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">DATEDIF関数のエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc12">#NUM!エラー（開始日が終了日より後の場合）</span></h3>



<p class="wp-block-paragraph">DATEDIF関数でもっとも多いエラーです。開始日が終了日より後の日付になっていると発生します。</p>



<pre class="wp-block-code"><code>=DATEDIF(&quot;2026/9/15&quot;, &quot;2020/4/1&quot;, &quot;Y&quot;)   → #NUM!</code></pre>



<p class="wp-block-paragraph">対処法はシンプルです。引数の順番を確認して、開始日を終了日より前に指定してください。</p>



<h3 class="wp-block-heading"><span id="toc13">IFERRORで安全にエラーを回避する</span></h3>



<p class="wp-block-paragraph">データに不備がある行でもエラー表示を防ぎたい場合は、IFERROR関数（エラーのとき代替値を返す関数）で囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(DATEDIF(A2, TODAY(), &quot;Y&quot;), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A2が空欄だったり不正な日付だったりしても、エラーの代わりに空白が表示されます。名簿のように大量の行がある場面では、IFERROR関数との組み合わせがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc14">#VALUE!エラー（日付が文字列の場合）</span></h3>



<p class="wp-block-paragraph">日付のセルが文字列として入力されていると#VALUE!エラーになることがあります。セルの表示形式を「日付」に変更するか、<a href="https://mashukabu.com/spreadsheet-date-function/">DATE関数</a>で日付データを作り直してください。</p>



<h2 class="wp-block-heading"><span id="toc15">ExcelのDATEDIF関数との互換性</span></h2>



<p class="wp-block-paragraph">DATEDIF関数はGoogleスプレッドシートとExcelの両方で使えます。ただし扱いに違いがあるので注意してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel</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>6つの単位</td><td>すべて使える</td><td>すべて使える</td></tr><tr><td>&#8220;MD&#8221;単位の精度</td><td>一部ケースで不正確な結果の報告あり</td><td>同様の問題あり</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excelでは入力候補に表示されないため「存在しない関数」と思われがちですが、実際にはExcel 2000以降のすべてのバージョンで動作します。</p>



<p class="wp-block-paragraph">スプレッドシートからExcelにファイルを変換しても、DATEDIF関数の数式はそのまま動作します。チーム内でファイル形式が混在していても安心ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>&#8220;MD&#8221;単位は、一部の日付の組み合わせで不正確な結果を返すことがあります。厳密な日数計算が必要な場合は、DAY関数を使った手動計算を検討してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">YEAR関数を使った代替手段との比較</span></h2>



<p class="wp-block-paragraph">DATEDIF関数を使わなくても、<a href="https://mashukabu.com/spreadsheet-year-function/">YEAR関数</a>やMONTH関数の引き算で年齢を求める方法もあります。</p>



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



<p class="wp-block-paragraph">この数式でも年の差は出ますが、誕生日を迎えたかどうかを考慮しません。たとえば「1990/12/1」生まれの人は、2026年3月の時点ではまだ35歳ですが、YEAR関数の引き算では「36」と出てしまいます。</p>



<p class="wp-block-paragraph">DATEDIF関数なら「完了した年数」を正確に返すので、満年齢の計算にはDATEDIF関数を使ってください。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>数式例</th><th>メリット</th><th>デメリット</th></tr></thead><tbody><tr><td>DATEDIF関数</td><td><code>=DATEDIF(A2,TODAY(),"Y")</code></td><td>満年齢が正確</td><td>関数名が長い</td></tr><tr><td>YEAR引き算</td><td><code>=YEAR(TODAY())-YEAR(A2)</code></td><td>シンプル</td><td>誕生日前でも1歳多く出る</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">DATEDIF関数は、2つの日付の差を年・月・日の単位で計算する関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=DATEDIF(開始日, 終了日, 単位)</code> の3引数</li><li>6つの単位のうち、Y/M/Dが「トータルの差」、YM/MD/YDが「端数部分の差」</li><li>年齢計算は <code>=DATEDIF(生年月日, TODAY(), "Y")</code> が定番</li><li>勤続年数は「Y」と「YM」を&#038;でつないで「X年Yヶ月」表示</li><li>開始日 > 終了日で#NUM!エラーが出るので、IFERRORで囲むと安全</li><li>Excelでも同じ構文で使える（非公式だが全バージョンで動作）</li></ul>



<p class="wp-block-paragraph">まずは <code>=DATEDIF(A2, TODAY(), "Y")</code> で年齢計算から試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-datedif-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIFERROR関数の使い方｜エラー処理の基本と実務活用</title>
		<link>https://mashukabu.com/excel-function-howto-use-iferror/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-iferror/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 28 Mar 2022 14:32:07 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[IFNA]]></category>
		<category><![CDATA[INDEX MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1476</guid>

					<description><![CDATA[ExcelのIFERROR関数の使い方を基本構文から実務パターンまで解説。VLOOKUP・XLOOKUP・INDEX MATCHとの組み合わせ方、IFNA・ISERRORとの違いと使い分け、エラーを隠しすぎない安全な設計のコツも実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで検索したら「#N/A」、割り算したら「#DIV/0!」&#8230;&#8230;。Excelを使っていると、こうしたエラー表示に悩まされますよね。せっかく作った資料にエラーが並んでいると見栄えも悪く、そのセルを参照する他の数式まで連鎖的にエラーになってしまいます。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがIFERROR関数です。この記事では、IFERROR関数の基本的な使い方からVLOOKUP・XLOOKUPとの組み合わせ、IFNA関数やISERROR関数との使い分けまで、実例付きで解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">IFERROR関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・意味</a></li><li><a href="#toc3" tabindex="0">何ができるか</a></li></ol></li><li><a href="#toc4" tabindex="0">IFERROR関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">IFERROR関数が検出できるエラー一覧</a></li></ol></li><li><a href="#toc8" tabindex="0">IFERROR関数の使い方と実務活用パターン</a><ol><li><a href="#toc9" tabindex="0">基本: エラーを空白・メッセージ・数値に置き換える</a></li><li><a href="#toc10" tabindex="0">パターン1: VLOOKUP+IFERRORで未登録データを処理する</a></li><li><a href="#toc11" tabindex="0">パターン2: XLOOKUP+IFERRORの使い分け</a></li><li><a href="#toc12" tabindex="0">パターン3: 割り算の#DIV/0!エラーを回避する</a></li><li><a href="#toc13" tabindex="0">パターン4: INDEX+MATCH+IFERRORで柔軟な検索をする</a></li><li><a href="#toc14" tabindex="0">パターン5: IFERRORのネストで複数テーブルを横断検索する</a></li><li><a href="#toc15" tabindex="0">パターン6: IF関数と組み合わせてエラーと空白を同時に処理する</a></li></ol></li><li><a href="#toc16" tabindex="0">エラー処理関数の比較（IFERROR・IFNA・ISERROR）</a><ol><li><a href="#toc17" tabindex="0">一覧比較表</a></li><li><a href="#toc18" tabindex="0">IFERRORとIFNAの違い</a></li><li><a href="#toc19" tabindex="0">IFERRORとIF+ISERRORの比較</a></li><li><a href="#toc20" tabindex="0">使い分けの判断基準</a></li></ol></li><li><a href="#toc21" tabindex="0">IFERROR関数のよくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">エラーを隠しすぎる問題への対策</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a><ol><li><a href="#toc24" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">IFERROR関数は、数式がエラーになったときに代わりの値を返してくれるExcelの関数です。エラー処理をたった1つの関数で完結できるので、実務で非常によく使われます。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方・意味</span></h3>



<p class="wp-block-paragraph">IFERROR（いふえらー）は「IF（もし）」+「ERROR（エラー）」を組み合わせた名前です。「もしエラーだったら、こっちの値を表示してね」という処理を1つの関数で実現します。</p>



<h3 class="wp-block-heading"><span id="toc3">何ができるか</span></h3>



<p class="wp-block-paragraph">IFERROR関数を使うと、次のようなことができます。</p>



<ul class="wp-block-list"><li>エラーの代わりに空白（&#8221;&#8221;）を表示して、セルをきれいに見せる</li><li>「該当なし」「データなし」などの任意メッセージを表示する</li><li>エラー時に別の計算式を実行する（代替処理）</li><li>他の数式への連鎖エラーを防止する</li></ul>



<p class="wp-block-paragraph">Excel 2007で導入された関数です。Microsoft 365やExcel 2024/2021でも使えます。Googleスプレッドシートでも同じ書き方で利用できますよ。</p>



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



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



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



<pre class="wp-block-code"><code>=IFERROR(値, エラーの場合の値)</code></pre>



<p class="wp-block-paragraph">引数はたったの2つだけ。覚えやすいですよね。</p>



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



<p class="wp-block-paragraph">それぞれの引数の意味を表で整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略</th><th>説明</th></tr></thead><tbody><tr><td>値</td><td>必須</td><td>エラーかどうかをチェックしたい数式やセル参照を指定します</td></tr><tr><td>エラーの場合の値</td><td>必須</td><td>エラーだった場合に表示する値を指定します。文字列・数値・数式のいずれもOKです</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>第2引数に何も指定しない場合</strong></p><p>第2引数を省略すると、エラー時に「0」が返されます。意図しない結果になることがあるので、空白にしたい場合は <code>""</code> を明示的に指定しましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc7">IFERROR関数が検出できるエラー一覧</span></h3>



<p class="wp-block-paragraph">IFERROR関数はExcelの全7種類のエラーをまとめてキャッチします。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>発生する主な原因</th></tr></thead><tbody><tr><td>#N/A</td><td><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>等で検索値が見つからない</td></tr><tr><td>#VALUE!</td><td>引数のデータ型が正しくない</td></tr><tr><td>#REF!</td><td>参照先のセルが削除された</td></tr><tr><td>#DIV/0!</td><td>0で割り算をした</td></tr><tr><td>#NUM!</td><td>数値が大きすぎる・小さすぎる</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス</td></tr><tr><td>#NULL!</td><td>セル範囲の指定が正しくない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">すべてのエラーをまとめて処理してくれるので、「とりあえずエラーを非表示にしたい」場面では便利です。ただし、本来気づくべきエラーまで隠れるリスクがある点は後述します。各エラーの詳しい原因は<a href="https://mashukabu.com/excel-error-value-list/">Excelエラーの種類と原因</a>も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc8">IFERROR関数の使い方と実務活用パターン</span></h2>



<p class="wp-block-paragraph">ここからは基本の使い方から実務パターンまで、まとめて見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">基本: エラーを空白・メッセージ・数値に置き換える</span></h3>



<p class="wp-block-paragraph">第2引数に指定する値を変えるだけで、3つの基本パターンを使い分けられます。</p>



<pre class="wp-block-code"><code>=IFERROR(A1/B1, &quot;&quot;)        … エラーを空白にする
=IFERROR(A1/B1, &quot;計算不可&quot;) … メッセージを表示する
=IFERROR(A1/B1, 0)         … 数値を返す</code></pre>



<p class="wp-block-paragraph">空白は印刷用の資料やプレゼンで、メッセージは原因を伝えたいときに、数値は<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-average/">AVERAGE関数</a>での集計でエラーを防ぎたいときに使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: VLOOKUP+IFERRORで未登録データを処理する</span></h3>



<p class="wp-block-paragraph">IFERROR関数の最も定番の使い方が、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>との組み合わせです。</p>



<p class="wp-block-paragraph">VLOOKUPは検索値が見つからないと「#N/A」エラーを返します。商品コードで商品マスタを検索するケースを考えてみましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">商品コードが見つからなければ「未登録」と表示します。大量のデータを突合するときに、この書き方は必須テクニックですよ。</p>



<p class="wp-block-paragraph">実務では、複数列を同時に検索するケースも多いですよね。商品名と単価を同時に引く場合は、それぞれのセルにIFERROR+VLOOKUPを設定します。</p>



<pre class="wp-block-code"><code>B2（商品名）: =IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE), &quot;未登録&quot;)
C2（単 価）: =IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), 0)</code></pre>



<p class="wp-block-paragraph">商品名は「未登録」、単価は0を返すことで、集計に影響しない設計にできます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: XLOOKUP+IFERRORの使い分け</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>が使える環境（Excel 2021/2024/Microsoft 365）なら、検索エラーの処理方法が2つあります。</p>



<p class="wp-block-paragraph"><strong>方法A: XLOOKUPの第4引数を使う（IFERROR不要）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!C:C, &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPには「見つからない場合の値」を指定する第4引数があるので、検索エラーの処理にIFERRORは不要です。</p>



<p class="wp-block-paragraph"><strong>方法B: IFERRORで囲む（全エラー対策）</strong></p>



<pre class="wp-block-code"><code>=IFERROR(XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!C:C), &quot;エラー&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPの第4引数で処理できるのは「検索値が見つからない」エラーだけです。数式自体の参照エラー（#REF!など）も含めて対策したい場合は、IFERRORで囲む方が安全ですよ。</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>XLOOKUP第4引数</td><td><code>=XLOOKUP(A2, ..., "未登録")</code></td><td>#N/Aのみ</td></tr><tr><td>IFERROR+XLOOKUP</td><td><code>=IFERROR(XLOOKUP(A2, ...), "エラー")</code></td><td>全7種類</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通常はXLOOKUPの第4引数で十分です。ただし、職場のExcelバージョンが混在している場合はIFERROR+VLOOKUPの方が互換性が高く安全ですね。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 割り算の#DIV/0!エラーを回避する</span></h3>



<p class="wp-block-paragraph">売上分析や在庫管理でよくある「0で割ってしまう」問題です。前年比や構成比を計算するとき、分母が0やブランクだとエラーになりますよね。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2, &quot;---&quot;)</code></pre>



<p class="wp-block-paragraph">データが未入力の行もきれいに処理できます。月次レポートや予実管理表で重宝するパターンです。</p>



<p class="wp-block-paragraph">達成率の計算にも使えます。</p>



<pre class="wp-block-code"><code>=IFERROR(B2/C2*100, 0)</code></pre>



<p class="wp-block-paragraph">目標値が未設定の行でもエラーにならず、集計に影響しません。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: INDEX+MATCH+IFERRORで柔軟な検索をする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>を組み合わせた検索でも、IFERRORは活躍します。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C:C, MATCH(A2, B:B, 0)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">VLOOKUPでは難しい「検索列より左側の値を取得する」パターンです。MATCH関数が検索値を見つけられないときに「該当なし」を返します。</p>



<p class="wp-block-paragraph">Excel 2021以降なら、MATCH関数の代わりに<a href="https://mashukabu.com/excel-function-howto-use-xmatch/">XMATCH関数</a>を使えばよりシンプルに書けます。</p>



<pre class="wp-block-code"><code>MATCH版 : =IFERROR(INDEX(C:C, MATCH(A2, B:B, 0)), &quot;該当なし&quot;)
XMATCH版: =IFERROR(INDEX(C:C, XMATCH(A2, B:B)), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XMATCHはデフォルトで完全一致検索なので、第3引数の <code>0</code> を省略できますね。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: IFERRORのネストで複数テーブルを横断検索する</span></h3>



<p class="wp-block-paragraph">IFERROR関数の第2引数に別のIFERROR関数を入れると、複数のテーブルを順番に検索できます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, シート2!A:B, 2, FALSE), &quot;どちらにもなし&quot;))</code></pre>



<p class="wp-block-paragraph">まずシート1で検索し、見つからなければシート2を検索します。どちらにもなければ「どちらにもなし」と表示する仕組みです。複数のマスタテーブルを横断検索したいときに便利なテクニックですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン6: IF関数と組み合わせてエラーと空白を同時に処理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>とIFERROR関数を組み合わせると、「空白セルはスキップ、エラーは代替値」という処理を1つの数式で実現できます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), &quot;未登録&quot;))</code></pre>



<p class="wp-block-paragraph">商品コード（A2）が空白ならセルも空白にし、入力されていればVLOOKUPを実行します。入力済みなのに見つからなければ「未登録」を表示。受注一覧や在庫管理表で、未入力行とデータ不一致を区別したいときに便利です。</p>



<h2 class="wp-block-heading"><span id="toc16">エラー処理関数の比較（IFERROR・IFNA・ISERROR）</span></h2>



<p class="wp-block-paragraph">IFERROR関数と似た機能を持つ関数を比較してみましょう。実務でどれを使うか迷ったときの判断基準にしてください。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対象エラー</th><th>戻り値</th><th>導入バージョン</th><th>主な用途</th></tr></thead><tbody><tr><td>IFERROR</td><td>全7種類</td><td>エラー時: 指定値 / 正常時: 元の値</td><td>Excel 2007</td><td>全エラーをまとめて処理</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA</a></td><td>#N/Aのみ</td><td>エラー時: 指定値 / 正常時: 元の値</td><td>Excel 2013</td><td>検索エラーだけを安全に処理</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR</a></td><td>全7種類</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>エラーの有無を判定（処理にはIF関数が必要）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-iserr/">ISERR</a></td><td>#N/A以外の6種類</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>#N/Aを除外したエラー判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA</a></td><td>#N/Aのみ</td><td>TRUE / FALSE</td><td>Excel 2003以前</td><td>#N/Aだけを判定</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE</a></td><td>全7種類</td><td>エラー番号（1-7）</td><td>Excel 2003以前</td><td>エラーの種類を番号で特定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">IFERRORとIFNAの違い</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>は#N/Aエラーだけを対象にする関数です。構文はIFERRORとまったく同じです。</p>



<pre class="wp-block-code"><code>IFERROR版: =IFERROR(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)
IFNA版  : =IFNA(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">この2つは、VLOOKUPで値が見つからないときの動作は同じです。違いは「#N/A以外のエラーが起きたとき」に現れます。</p>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>検索値が見つからない（#N/A）</td><td>「未登録」を表示</td><td>「未登録」を表示</td></tr><tr><td>参照範囲が壊れた（#REF!）</td><td>「未登録」を表示（バグが隠れる）</td><td>#REF!をそのまま表示（バグに気づける）</td></tr><tr><td>数式の型エラー（#VALUE!）</td><td>「未登録」を表示（バグが隠れる）</td><td>#VALUE!をそのまま表示（バグに気づける）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPやXLOOKUPの「見つからない」だけを処理するなら、IFNA関数の方が安全です。#REF!や#VALUE!といった数式バグはそのまま表示されるので、問題にすぐ気づけますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">IFERRORとIF+ISERRORの比較</span></h3>



<p class="wp-block-paragraph">Excel 2007より前のバージョンでは、エラー処理に<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を組み合わせていました。</p>



<pre class="wp-block-code"><code>IFERROR版    : =IFERROR(VLOOKUP(A2, B:C, 2, FALSE), &quot;未登録&quot;)
IF+ISERROR版 : =IF(ISERROR(VLOOKUP(A2, B:C, 2, FALSE)), &quot;未登録&quot;, VLOOKUP(A2, B:C, 2, FALSE))</code></pre>



<p class="wp-block-paragraph">IF+ISERRORだとVLOOKUPを2回書く必要があり、読みづらくなります。計算負荷も2倍になるので、Excel 2007以降ならIFERROR関数を使いましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">使い分けの判断基準</span></h3>



<p class="wp-block-paragraph">迷ったときは、次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li><strong>すべてのエラーをまとめて非表示にしたい</strong> → IFERROR関数</li><li><strong>#N/Aだけを処理し、他のエラーは残したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a></li><li><strong>エラーの種類を判定して処理を分けたい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a> + <a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE関数</a></li><li><strong>エラーの有無だけをTRUE/FALSEで判定したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a></li></ul>



<p class="wp-block-paragraph">これらの関数の使い分けは<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>でも整理しています。</p>



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



<p class="wp-block-paragraph">IFERROR関数自体はシンプルですが、使い方を間違えるとハマるポイントがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>本来気づくべきエラーまで隠れる</td><td>IFERROR関数が全エラーをキャッチするため</td><td><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>で#N/Aだけを対象にする</td></tr><tr><td>エラー時に意図しない「0」が表示される</td><td>第2引数を省略している</td><td>空白にしたい場合は <code>""</code> を明示的に指定する</td></tr><tr><td>#NAME?エラーが出る</td><td>第2引数の文字列にダブルクォーテーションがない</td><td>文字列は必ず <code>"文字列"</code> で囲む</td></tr><tr><td>数式の結果が正しくない</td><td>IFERRORの中の数式自体に誤りがある</td><td>IFERRORを外して元の数式だけで動作確認する</td></tr><tr><td>空白セルなのに0と表示される</td><td>エラーではなく空白セルの参照が原因</td><td>IFERROR関数はエラーのみ対象。空白の処理は<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>で分岐する</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>デバッグのコツ</strong></p><p>IFERRORを使っている数式のトラブルシューティングでは、まずIFERRORを外して中の数式だけをテストしましょう。エラーの原因が見えるようになりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc22">エラーを隠しすぎる問題への対策</span></h3>



<p class="wp-block-paragraph">IFERROR関数の最大の注意点は、すべてのエラーを非表示にしてしまうことです。本来気づくべき参照ミスや数式の誤りまで隠れてしまうリスクがあります。</p>



<p class="wp-block-paragraph">たとえば、VLOOKUPの範囲指定を間違えて#REF!が出ていても、IFERRORが「未登録」と表示してしまいます。数式のバグに気づけないまま、間違ったデータで資料を作ってしまう可能性があるんです。</p>



<p class="wp-block-paragraph">対策としては、以下の使い分けがおすすめです。</p>



<ul class="wp-block-list"><li><strong>作成中のシート</strong>: IFERRORを外しておき、エラーを確認しながら作業する</li><li><strong>完成版の資料</strong>: IFERRORで見た目を整える</li><li><strong>検索系のエラーだけ処理したい</strong>: <a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>を使う</li></ul>



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



<p class="wp-block-paragraph">IFERROR関数は、Excelのエラー処理をシンプルにしてくれる便利な関数です。</p>



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



<ul class="wp-block-list"><li>IFERROR関数の構文は <code>=IFERROR(値, エラーの場合の値)</code> の2つの引数だけ</li><li>エラーを空白にしたり、メッセージや数値を表示したりできる</li><li>VLOOKUP+IFERRORの組み合わせが実務で最も頻出</li><li>XLOOKUPなら第4引数でIFERRORが不要になるケースも</li><li>INDEX+MATCH+IFERRORで検索列の左側も取得できる</li><li>IF関数と組み合わせれば空白セルとエラーを同時に処理できる</li><li>すべてのエラーをキャッチするため、エラーの隠しすぎに注意</li><li>#N/Aだけを処理したい場合は<a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>の方が安全</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUP+IFERRORの組み合わせから試してみてください。エラーだらけだった集計表が、一気にスッキリしますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a> &#8212; 検索の基本</li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a> &#8212; 次世代の検索関数</li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a> &#8212; 柔軟なセル参照</li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方</a> &#8212; 位置を検索する</li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a> &#8212; 条件分岐の基本</li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a> &#8212; #N/A専用のエラー処理</li><li><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数の使い方</a> &#8212; エラー判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-error-type/">ERROR.TYPE関数の使い方</a> &#8212; エラー種類の特定</li><li><a href="https://mashukabu.com/excel-error-value-list/">Excelエラーの種類と原因</a> &#8212; エラー値の一覧</li><li><a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a> &#8212; 条件分岐関数の比較</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-iferror/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
