<?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>XLOOKUP &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/xlookup/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 22 Aug 2026 00:51:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>XLOOKUP &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのXLOOKUP・FILTERが使えない・#NAME?の原因と対処</title>
		<link>https://mashukabu.com/excel-xlookup-filter-name-error-version/</link>
					<comments>https://mashukabu.com/excel-xlookup-filter-name-error-version/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 20 Jun 2026 10:36:36 +0000</pubDate>
				<category><![CDATA[仕事効率化]]></category>
		<category><![CDATA[#NAME]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FILTER]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[トラブルシューティング]]></category>
		<category><![CDATA[対応バージョン]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=8045</guid>

					<description><![CDATA[ExcelでXLOOKUP・FILTERが#NAME?エラーになる・使えない原因はバージョン不一致です。関数×バージョンの対応表（9関数×5バージョン）、_xlfn.の意味、旧バージョン向けINDEX+MATCH代替パターンを解説します。受け取ったファイルのエラーも今日中に解決できます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">次のような症状に、心当たりはありませんか。</p>



<ul class="wp-block-list"><li>配布されたExcelブックを開いたら、数式が軒並み <code>#NAME?</code> になっていた</li><li>自分で <code>XLOOKUP</code> を入力したのに「使えない」と言われた</li><li>受け取ったファイルのセルに <code>_xlfn.XLOOKUP</code> という見慣れない文字列が並んでいる</li></ul>



<p class="wp-block-paragraph">こうした症状に出くわすと、数式の書き方を間違えたのかと不安になりますよね。</p>



<p class="wp-block-paragraph">結論から言うと、これらの多くは数式のミスではなく、<strong>お使いのExcelのバージョンがその関数に対応していない</strong>ことが原因です。</p>



<p class="wp-block-paragraph">XLOOKUPやFILTERといった比較的新しい関数は、特定のバージョン以降でしか動きません。古い版で開くと、Excelは「そんな関数は知らない」というサインとして <code>#NAME?</code> を返すのです。</p>



<p class="wp-block-paragraph">この記事では、どの関数がどのバージョンから使えるのかを一覧表で整理し、<code>_xlfn.</code> という謎の文字列の正体、そして自分の版で使えないときの代替方法までまとめて解説します。読み終わるころには、目の前のエラーが「なぜ起きたのか」「どう回避すればいいのか」がはっきりするはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: XLOOKUP・FILTER・UNIQUE・SORT・SORTBY は Microsoft 365（サブスクリプション版）または Excel 2021 以降が必要です。Excel 2019・2016・2013 では使用できません。TEXTJOIN・IFS・MAXIFS・MINIFS は Excel 2019 以降で使用可能です。</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">#NAME?が出る原因はバージョン不一致——まず結論</a></li><li><a href="#toc2" tabindex="0">関数×バージョン対応表（9関数×5バージョン）</a><ol><li><a href="#toc3" tabindex="0">Microsoft 365・Excel 2021で使える関数</a></li><li><a href="#toc4" tabindex="0">Excel 2019で追加された関数</a></li><li><a href="#toc5" tabindex="0">Excel 2016・2013では使えない関数</a></li><li><a href="#toc6" tabindex="0">自分のExcelバージョンを確認する方法</a></li></ol></li><li><a href="#toc7" tabindex="0">「_xlfn.XLOOKUP」と表示される理由</a><ol><li><a href="#toc8" tabindex="0">_xlfn.とは何か</a></li><li><a href="#toc9" tabindex="0">ファイル受け取り後に_xlfn.が出たときの対処</a></li></ol></li><li><a href="#toc10" tabindex="0">旧バージョン向け代替関数チートシート</a><ol><li><a href="#toc11" tabindex="0">XLOOKUPの代替：INDEX+MATCHのパターン3選</a></li><li><a href="#toc12" tabindex="0">FILTERの代替：IF配列数式パターン</a></li><li><a href="#toc13" tabindex="0">UNIQUEの代替：重複削除の手順</a></li><li><a href="#toc14" tabindex="0">ファイル受け渡し時のトラブルを防ぐ対策</a></li></ol></li><li><a href="#toc15" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc16" tabindex="0">Microsoft 365に更新すれば使えるようになりますか？</a></li><li><a href="#toc17" tabindex="0">Excel Onlineでは新関数が使えますか？</a></li><li><a href="#toc18" tabindex="0">会社のパソコンでバージョンを上げられない場合は？</a></li><li><a href="#toc19" tabindex="0">_xlfn.の文字を消せば直りますか？</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">#NAME?が出る原因はバージョン不一致——まず結論</span></h2>



<p class="wp-block-paragraph"><code>#NAME?</code> エラーには大きく2つの原因があります。1つは関数名のタイプミス（<code>VLOOKUP</code> を <code>VLOOOKUP</code> と打つなど）。もう1つが、今回のテーマである「そのバージョンに存在しない関数を呼び出した」ケースです。</p>



<p class="wp-block-paragraph">XLOOKUPやFILTERなどの新しい関数は、追加されたバージョンより前のExcelには文字どおり存在しません。存在しない関数を呼び出すと、Excelは名前を解決できず <code>#NAME?</code> を返します。</p>



<p class="wp-block-paragraph">つまり <code>#NAME?</code> は、Excelからの「この関数、うちのバージョンには入ってないよ」という合図なのです。</p>



<p class="wp-block-paragraph">ここで大切なのは、エラーが出ている本人のExcelが原因とは限らない点です。</p>



<p class="wp-block-paragraph">Microsoft 365を使う同僚がXLOOKUP入りのファイルを作り、それをExcel 2019の人が開くと、開いた側の画面で <code>#NAME?</code> になります。数式そのものは正しくても、開く環境が対応していなければエラーになる、という構図を押さえておきましょう。</p>



<p class="wp-block-paragraph">タイプミスが原因の <code>#NAME?</code> については、より広い視点で原因を切り分けたい場合に<a href="https://mashukabu.com/excel-reference-formula-errors/">Excelの参照エラー（#REF!・#NAME?・循環参照）の直し方</a>も参考になります。本記事は「バージョン不足による #NAME?」に絞って解説していきます。</p>



<h2 class="wp-block-heading"><span id="toc2">関数×バージョン対応表（9関数×5バージョン）</span></h2>



<p class="wp-block-paragraph">まずは全体像を一枚の表で確認しましょう。代表的な9つの関数を、5つのバージョンで整理しました。○は使用可能、×は非対応（開くと <code>#NAME?</code> になる）を表します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th style="text-align:center">Microsoft 365</th><th style="text-align:center">Excel 2021</th><th style="text-align:center">Excel 2019</th><th style="text-align:center">Excel 2016</th><th style="text-align:center">Excel 2013</th></tr></thead><tbody><tr><td>XLOOKUP</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>FILTER</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>UNIQUE</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>SORT</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>SORTBY</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>TEXTJOIN</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>IFS</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>MAXIFS</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr><tr><td>MINIFS</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">○</td><td style="text-align:center">×</td><td style="text-align:center">×</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表を見ると、関数が「いつ追加されたか」で3つの世代に分かれることがわかります。順番に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">Microsoft 365・Excel 2021で使える関数</span></h3>



<p class="wp-block-paragraph">XLOOKUP・FILTER・UNIQUE・SORT・SORTBYは、Microsoft 365（サブスクリプション版）またはExcel 2021以降で使えます。これらに加えて、XMATCH・SEQUENCE・RANDARRAYも同じ世代の関数です。</p>



<p class="wp-block-paragraph">このグループの多くは「動的配列関数」と呼ばれ、1つの数式が複数のセルへ結果を自動で展開する「スピル」という仕組みを持っています。便利な反面、この仕組みごと古い版には存在しないため、Excel 2019以前で開くと <code>#NAME?</code> になります。</p>



<p class="wp-block-paragraph">Web版のExcel（Excel for the web）でもこれらの関数は利用できます。ブラウザだけで作業している場合は、XLOOKUPもFILTERも問題なく動くと考えてよいでしょう。</p>



<h3 class="wp-block-heading"><span id="toc4">Excel 2019で追加された関数</span></h3>



<p class="wp-block-paragraph">TEXTJOIN・CONCAT・IFS・SWITCH・MAXIFS・MINIFSは、買い切り版ではExcel 2019から搭載されました。Microsoft 365では先行して提供されていた関数群です。</p>



<p class="wp-block-paragraph">つまり、Excel 2019であればこれらは使えますが、XLOOKUPやFILTERは使えない、という中間的な状態になります。「IFSは動くのにXLOOKUPは <code>#NAME?</code> になる」という現象は、まさにExcel 2019で起こりがちなパターンです。</p>



<p class="wp-block-paragraph">ここを混同すると原因の切り分けを誤ります。エラーになった関数が上の対応表のどの行にあるかを確認するのが、診断の近道です。</p>



<h3 class="wp-block-heading"><span id="toc5">Excel 2016・2013では使えない関数</span></h3>



<p class="wp-block-paragraph">Excel 2016の買い切り版とExcel 2013では、上の9関数はいずれも使えません。これらの版を使っている場合、新しい関数はほぼ使えないと考え、後述する代替方法に切り替えるのが現実的です。</p>



<p class="wp-block-paragraph">なお、同じ「2016」でもOffice 365サブスクリプション経由でインストールされた版では、一部の関数が先行提供されていたケースがあります。判断に迷うときは、次の章のバージョン確認方法で実際の製品名を確かめてください。</p>



<h3 class="wp-block-heading"><span id="toc6">自分のExcelバージョンを確認する方法</span></h3>



<p class="wp-block-paragraph">自分のExcelがどの世代かを知れば、対応表のどの列を見ればいいかが決まります。確認手順はかんたんです。</p>



<ol class="wp-block-list"><li>Excelを開く</li><li>画面左上の「ファイル」をクリック</li><li>左メニューの「アカウント」を選ぶ（見当たらない場合は「ヘルプ」>「バージョン情報」）</li><li>「製品情報」の欄に「Microsoft 365」「Excel 2021」「Excel 2019」などの名称が表示される</li></ol>



<p class="wp-block-paragraph">ここに表示される製品名が、あなたのExcelの世代です。</p>



<p class="wp-block-paragraph">「Microsoft 365」や「Microsoft 365 Apps」と書かれていればサブスクリプション版で、XLOOKUPもFILTERも使えます。「Excel 2019」「Excel 2016」のように西暦が付いていれば買い切り版で、対応表の該当列を確認してください。</p>



<p class="wp-block-paragraph">Web版（Excel for the web）はブラウザ上で動作するため、この手順では確認できません。ブラウザでExcelを開いて使っているなら、それがWeb版です。</p>



<p class="wp-block-paragraph">Web版ではXLOOKUPや動的配列関数（FILTER・UNIQUE・SORTなど）は利用できます。</p>



<p class="wp-block-paragraph">なお、TEXTSPLITやVSTACKなどの関数は2022年以降にMicrosoft 365へ追加されたもので、買い切り版（Excel 2021・2019）には含まれません。Web版では順次対応が進められています。</p>



<h2 class="wp-block-heading"><span id="toc7">「_xlfn.XLOOKUP」と表示される理由</span></h2>



<p class="wp-block-paragraph">受け取ったファイルを開いたら、セルに <code>=_xlfn.XLOOKUP(...)</code> のような文字列が表示されていた——これは多くの人がつまずくポイントです。仕組みを知れば落ち着いて対処できます。</p>



<h3 class="wp-block-heading"><span id="toc8">_xlfn.とは何か</span></h3>



<p class="wp-block-paragraph">Excelは新しい関数をファイルに保存するとき、後方互換のために <code>_xlfn.関数名</code> という内部表記を使います。これは古い版でファイルを開いてもファイル自体が壊れないようにするための仕組みです。</p>



<p class="wp-block-paragraph">そのファイルを、その関数に対応していない旧版で開くと、Excelは関数名を解決できません。その結果、数式バーやセルに <code>_xlfn.XLOOKUP(...)</code> という表記がそのまま見えてしまい、計算結果は <code>#NAME?</code> になります。</p>



<pre class="wp-block-code"><code>新しい版で作成: =XLOOKUP(A2,商品表!A:A,商品表!B:B)
       ↓ 旧版で開く
旧版での表示:   =_xlfn.XLOOKUP(A2,商品表!A:A,商品表!B:B)  → #NAME?</code></pre>



<p class="wp-block-paragraph">動的配列関数の場合は <code>_xlfn._xlws.FILTER</code> のような表記になることもあります。暗黙的交差を示す <code>@</code> 記号が付く場合もあるでしょう。いずれも「この関数は今の版では使えない」という同じサインです。</p>



<h3 class="wp-block-heading"><span id="toc9">ファイル受け取り後に_xlfn.が出たときの対処</span></h3>



<p class="wp-block-paragraph"><code>_xlfn.</code> が表示されたファイルを受け取ったときの選択肢は、おもに次の3つです。</p>



<ol class="wp-block-list"><li>自分のExcelをMicrosoft 365またはExcel 2021以降に更新する（最も根本的な解決）</li><li>旧版でも使える数式に作り直す（後述の代替関数チートシートを参照）</li><li>ファイルの作成者に、旧版でも開ける形に直してもらうよう依頼する</li></ol>



<p class="wp-block-paragraph">注意したいのは、<code>_xlfn.</code> の文字を手作業で消すだけでは解決しないことです。関数自体が存在しないので、文字を削っても計算はできません。あくまで「対応する版で開く」か「対応する数式に置き換える」かのどちらかが必要です。</p>



<pre class="wp-block-code"><code>やってはいけない: _xlfn. の部分だけ消す → 関数は復活しない
正しい対処:       対応版で開く / 旧版用の数式に置き換える</code></pre>



<h2 class="wp-block-heading"><span id="toc10">旧バージョン向け代替関数チートシート</span></h2>



<p class="wp-block-paragraph">「会社のExcelは2016のままで、今すぐ更新できない」という人のために、代替手段をまとめました。まずは早見表で全体を確認し、よく使うものは下の例で具体的な数式を見てください。</p>



<figure class="wp-block-table"><table><thead><tr><th>使えない関数</th><th>旧版での代替</th><th>備考</th></tr></thead><tbody><tr><td>XLOOKUP</td><td>VLOOKUP / INDEX+MATCH</td><td>左方向検索や複数条件はINDEX+MATCHが有利</td></tr><tr><td>FILTER</td><td>オートフィルタ / 詳細設定フィルタ / 配列数式（IF+SMALL+ROW）</td><td>配列数式はCtrl+Shift+Enterで確定</td></tr><tr><td>UNIQUE</td><td>データ > 重複の削除 / ピボットテーブル</td><td>関数化は難しい</td></tr><tr><td>SORT / SORTBY</td><td>データ > 並べ替え（手動）</td><td>&nbsp;</td></tr><tr><td>TEXTJOIN</td><td>CONCATENATE / &#038; 連結</td><td>区切り文字は手動で挟む</td></tr><tr><td>IFS</td><td>ネストしたIF</td><td>&nbsp;</td></tr><tr><td>SWITCH</td><td>ネストしたIF / CHOOSE+MATCH</td><td>&nbsp;</td></tr><tr><td>MAXIFS / MINIFS</td><td>配列数式 MAX(IF(&#8230;))</td><td>Ctrl+Shift+Enterで確定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc11">XLOOKUPの代替：INDEX+MATCHのパターン3選</span></h3>



<p class="wp-block-paragraph">XLOOKUPの代わりは、まずVLOOKUPが候補ですが、左方向の検索などVLOOKUPが苦手な場面ではINDEX+MATCHが頼りになります。コピペで使える3パターンを用意しました。</p>



<pre class="wp-block-code"><code>パターン1：基本の縦方向検索（VLOOKUPと同じ用途）
=INDEX(B:B,MATCH(A2,商品表!A:A,0))

パターン2：左方向の検索（検索列より左の値を取り出す）
=INDEX(商品表!A:A,MATCH(A2,商品表!B:B,0))

パターン3：見つからないときに空欄を返す（IFERRORで包む）
=IFERROR(INDEX(B:B,MATCH(A2,商品表!A:A,0)),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">INDEXは「指定した範囲の何番目を取り出すか」、MATCHは「検索値が何番目にあるか」を返す関数です。この2つを組み合わせると、XLOOKUPと同じ「キーで引いて値を返す」動きが旧版でも再現できます。</p>



<p class="wp-block-paragraph">エラー時の表示を整えたいときは、パターン3のようにIFERRORで包むと扱いやすくなります。</p>



<p class="wp-block-paragraph">代替の選び方をもう少し深く知りたい場合は、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX+MATCHの比較と使い分け</a>で違いを整理しています。エラー処理だけ補強したいなら<a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方</a>も参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">FILTERの代替：IF配列数式パターン</span></h3>



<p class="wp-block-paragraph">FILTERは「条件に合う行だけを抜き出す」関数ですが、旧版では同じことをワンクリックで実現する手段がありません。一番手軽なのはオートフィルタやデータの並べ替えなどの操作機能です。</p>



<p class="wp-block-paragraph">数式で再現したい場合は、IFとSMALL・ROWを組み合わせた配列数式を使います。</p>



<pre class="wp-block-code"><code>条件に合うデータを上詰めで抽出する配列数式（一例）
=IFERROR(INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100=&quot;東京&quot;,ROW($A$2:$A$100)-1),ROW()-1)),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">この数式はExcel 2019以前では確定時にCtrl+Shift+Enterを押す必要があります（配列数式として確定される）。ただし設定がやや複雑なので、まずはオートフィルタや詳細設定フィルタで代用できないかを検討するのが現実的です。</p>



<h3 class="wp-block-heading"><span id="toc13">UNIQUEの代替：重複削除の手順</span></h3>



<p class="wp-block-paragraph">UNIQUE（重複を除いた一覧を作る関数）は、旧版では関数で再現するのが難しいため、操作機能で対応します。手順は次のとおりです。</p>



<ol class="wp-block-list"><li>対象の列を選択する</li><li>リボンの「データ」タブ > 「重複の削除」をクリック</li><li>対象列にチェックを入れて「OK」</li></ol>



<p class="wp-block-paragraph">元データを残したい場合は、いったん別のシートや列に値を貼り付けてから重複の削除を実行してください。集計の切り口として使いたいなら、ピボットテーブルの行ラベルに項目を置くだけでも一意の一覧が得られます。</p>



<h3 class="wp-block-heading"><span id="toc14">ファイル受け渡し時のトラブルを防ぐ対策</span></h3>



<p class="wp-block-paragraph"><code>#NAME?</code> トラブルの多くは、版の違う相手とファイルをやり取りするときに起きます。事前のひと手間で防げるので、配布前のチェックを習慣にしましょう。</p>



<h4 class="wp-block-heading">互換性チェックを事前に実行する</h4>



<p class="wp-block-paragraph">Excelには、古い版で問題が起きそうな箇所を事前に教えてくれる機能があります。</p>



<ol class="wp-block-list"><li>「ファイル」 > 「情報」を開く</li><li>「問題のチェック」 > 「互換性チェック」をクリック</li><li>古い版で再現できない機能の一覧が表示される</li></ol>



<p class="wp-block-paragraph">ここで新しい関数が使われていると警告が出るので、配布前に把握できます。相手の版がわかっているなら、対応していない関数を上のチートシートに沿って置き換えてから渡すと親切です。</p>



<h4 class="wp-block-heading">保存形式と共有相手のバージョン確認</h4>



<p class="wp-block-paragraph">ファイルを共有する前に、相手のExcelのバージョンをひとこと確認しておくとトラブルを未然に防げます。「XLOOKUPを使っているけど、お使いのExcelは365か2021ですか?」と聞くだけで十分ですよ。</p>



<p class="wp-block-paragraph">相手が旧版だとわかった場合は、代替関数で作り直すか、計算結果を「値として貼り付け」してから渡す方法もあります。値貼り付けにすれば数式そのものが消えるので、どの版で開いても <code>#NAME?</code> にはなりません。</p>



<p class="wp-block-paragraph">ただし後から数式を編集できなくなる点には注意してください。</p>



<p class="wp-block-paragraph">数式が思ったとおりに反映されない、計算されないといった別系統のトラブルが疑われる場合は、<a href="https://mashukabu.com/excel-formula-not-calculating/">Excelの関数が計算されない・反映されない原因と対処</a>もあわせて確認しておくと安心です。</p>



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



<h3 class="wp-block-heading"><span id="toc16">Microsoft 365に更新すれば使えるようになりますか？</span></h3>



<p class="wp-block-paragraph">はい。Microsoft 365にすればXLOOKUP・FILTERをはじめとする新しい関数が使えるようになります。すでに <code>_xlfn.XLOOKUP</code> 表示や <code>#NAME?</code> になっているファイルも、Microsoft 365で開き直せば正しく計算されるようになります。</p>



<p class="wp-block-paragraph">ただし会社のパソコンの場合、更新には情報システム部門の許可が必要なことが多いので、勝手にアップグレードする前に確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc17">Excel Onlineでは新関数が使えますか？</span></h3>



<p class="wp-block-paragraph">Web版のExcel（Excel for the web）でも、XLOOKUPや動的配列関数（FILTER・UNIQUE・SORTなど）は利用できます。ブラウザだけで作業している人なら、これらの関数は問題なく動くと考えてよいでしょう。</p>



<p class="wp-block-paragraph">なお、2022年以降にMicrosoft 365へ追加されたTEXTSPLITやVSTACKなどの最新関数は、Web版では順次対応となっています。XLOOKUPが使える環境になったら、使い方は<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方</a>で確認してください。</p>



<h3 class="wp-block-heading"><span id="toc18">会社のパソコンでバージョンを上げられない場合は？</span></h3>



<p class="wp-block-paragraph">その場合は、この記事の代替関数チートシートに沿って数式を作り直すのが最も確実です。XLOOKUPはINDEX+MATCHで、IFSはネストしたIFで、というように、旧版でも動く形に置き換えれば <code>#NAME?</code> を回避できます。</p>



<p class="wp-block-paragraph">受け取ったファイルが新関数まみれで手に負えないときは、作成者に「旧版でも開ける形に直してほしい」と依頼するのも有効な手です。</p>



<h3 class="wp-block-heading"><span id="toc19">_xlfn.の文字を消せば直りますか？</span></h3>



<p class="wp-block-paragraph">いいえ。<code>_xlfn.</code> は関数が今の版に存在しないことを示す表記なので、文字だけ消しても計算はできません。直すには、対応するバージョン（Microsoft 365・Excel 2021以降）で開くか、旧版でも使える数式に置き換えるかのどちらかが必要です。</p>



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



<p class="wp-block-paragraph">XLOOKUPやFILTERが「使えない」「<code>#NAME?</code> になる」原因の多くは、<strong>数式のミスではなくバージョン不足</strong>です。</p>



<p class="wp-block-paragraph">これらの動的配列関数はMicrosoft 365またはExcel 2021以降でないと動かず、TEXTJOINやIFSはExcel 2019以降が必要、という対応関係を押さえるのが第一歩です。</p>



<p class="wp-block-paragraph">受け取ったファイルに <code>_xlfn.</code> が表示されたら、それは「この関数は今の版には存在しない」というサイン。文字を消すのではなく、対応する版で開くか、INDEX+MATCHなどの代替数式に置き換えて対処しましょう。</p>



<p class="wp-block-paragraph">まずは「ファイル > アカウント」で自分のExcelの世代を確認し、対応表のどの列に当たるかを見極めてください。</p>



<p class="wp-block-paragraph">版の壁さえ理解できれば、目の前の <code>#NAME?</code> は怖くありません。今すぐ更新できない環境でも、この記事の代替手段で十分に乗り切れます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-xlookup-filter-name-error-version/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel #VALUE!エラーの直し方｜症状別早見表で即特定</title>
		<link>https://mashukabu.com/excel-value-error/</link>
					<comments>https://mashukabu.com/excel-value-error/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 28 May 2026 11:16:53 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[ISTEXT]]></category>
		<category><![CDATA[VALUEエラー]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー対処]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7121</guid>

					<description><![CDATA[Excelで#VALUE!エラーが出たら、症状から原因を一発で特定できる早見表で解決。VLOOKUP・SUMIF・DATEDIF・XLOOKUPなど関数別の対処法から、数式の検証・F9キーでの原因特定、IFERRORによる予防設計まで、症状別にすぐ使える手順でわかりやすく解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで数式を入れたのに、セルに <code>#VALUE!</code> の文字だけが出ていませんか。</p>



<p class="wp-block-paragraph">次のような症状に心当たりがあれば、この記事はそのまま使えます。</p>



<ul class="wp-block-list"><li>見た目は数字なのに、足し算しただけで <code>#VALUE!</code> になる</li><li>空欄にしか見えないセルを計算に入れると <code>#VALUE!</code> が出る</li><li>CSVから貼り付けた日付をDATEDIFに渡すと <code>#VALUE!</code> になる</li><li>XLOOKUPが <code>#N/A</code> ではなく <code>#VALUE!</code> を返してくる</li></ul>



<p class="wp-block-paragraph">原因が見えないまま数式を書き換え続けると、直したはずの箇所がまた崩れますよね。</p>



<p class="wp-block-paragraph">安心してください。<code>#VALUE!</code> が知らせているのは「データの型が合っていない」という1点だけ。症状別と関数別の早見表を先に用意したので、気になる行から読み飛ばして構いません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: <code>#VALUE!</code> 自体は Microsoft 365・Excel 2021・2019・2016・Excel for the web のどれでも同じように出ます。ただし後述の「数式の検証」には版差あり。公式の操作手順が Excel for Windows（デスクトップ版）前提で書かれており、Web版のリボンには見当たりません。Web版の方はISTEXT・LENを使った診断に読み替えてください。</p></blockquote>




  <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のVALUEエラー（#VALUE!）とは｜症状から原因を探す早見表</a><ol><li><a href="#toc2" tabindex="0">#VALUE!の意味（「型が合っていない」というサイン）</a></li><li><a href="#toc3" tabindex="0">症状から探す早見表（見た目・操作から一発で探す）</a></li><li><a href="#toc4" tabindex="0">関数別早見表（VLOOKUP・SUMIF・DATEDIF・XLOOKUPほか）</a></li></ol></li><li><a href="#toc5" tabindex="0">原因別の診断と直し方【5パターン】</a><ol><li><a href="#toc6" tabindex="0">パターン1：文字列が数値計算に混ざっている</a></li><li><a href="#toc7" tabindex="0">パターン2：スペースや非表示文字が混ざっている</a></li><li><a href="#toc8" tabindex="0">パターン3：日付や時刻の型が合っていない（DATEDIFのVALUEエラーもここ）</a></li><li><a href="#toc9" tabindex="0">パターン4：範囲や配列のサイズが合っていない（XLOOKUPのVALUEエラーもここ）</a></li><li><a href="#toc10" tabindex="0">パターン5：関数の引数の型が違っている（VLOOKUP・SUMIFの引数ミスもここ）</a></li></ol></li><li><a href="#toc11" tabindex="0">原因の箇所を特定する診断テクニック</a><ol><li><a href="#toc12" tabindex="0">数式の検証で1ステップずつ追う（デスクトップ版向け）</a></li><li><a href="#toc13" tabindex="0">F9キーで数式の一部だけを計算してみる</a></li><li><a href="#toc14" tabindex="0">ISTEXTとLENでセルの中身を確認する</a></li></ol></li><li><a href="#toc15" tabindex="0">#VALUE!を防ぐ予防的な数式設計</a><ol><li><a href="#toc16" tabindex="0">IFERRORでエラー時の表示を整える</a></li><li><a href="#toc17" tabindex="0">ISTEXTで入力をチェックする</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">#VALUE!エラーでよくある質問</a><ol><li><a href="#toc21" tabindex="0">SUM関数なら#VALUE!は出ないのですか？</a></li><li><a href="#toc22" tabindex="0">VLOOKUPで#VALUE!が出るのはなぜですか？</a></li><li><a href="#toc23" tabindex="0">全角スペースなのに見た目で気づけないのはなぜですか？</a></li><li><a href="#toc24" tabindex="0">IFERRORで隠すのは良くないのですか？</a></li><li><a href="#toc25" tabindex="0">エラーを判定だけしたい場合はどうすればいいですか？</a></li></ol></li><li><a href="#toc26" tabindex="0">まとめ｜#VALUE!は早見表で症状から見つけて直す</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのVALUEエラー（#VALUE!）とは｜症状から原因を探す早見表</span></h2>



<h3 class="wp-block-heading"><span id="toc2">#VALUE!の意味（「型が合っていない」というサイン）</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code>（読み方はバリュー）は、数式や関数に「想定していない種類のデータ」が渡されたときに出るエラーです。</p>



<p class="wp-block-paragraph">Excelのデータには、大きく「数値」と「文字列」という型があります。足し算や掛け算は数値どうしで行う計算。計算できない文字が混ざると、Excelは合図として <code>#VALUE!</code> を返します。</p>



<p class="wp-block-paragraph">大事なのは、このエラーが<strong>場所ではなく種類しか教えてくれない</strong>という点。似た見た目のエラーと混同すると、調べる方向ごとズレてしまいます。</p>



<p class="wp-block-paragraph"><code>#N/A</code> は「検索値が見つからない」、<code>#REF!</code> は「参照先が無効」、<code>#NUM!</code> は「数値として計算できない」というサイン。どれも <code>#VALUE!</code> とは原因が別です。全体像は<a href="https://mashukabu.com/excel-error-value-list/">Excelエラー値12種類の原因と対処法一覧</a>で確認できます。</p>



<h3 class="wp-block-heading"><span id="toc3">症状から探す早見表（見た目・操作から一発で探す）</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>セルには数字が見えているのに、<code>=A1+B1</code> の足し算だけで <code>#VALUE!</code> になる</td><td>数字に見えて中身が文字列</td><td>パターン1</td></tr><tr><td>引き算だけがエラーになる。マイナス記号のあたりが怪しい</td><td>マイナス記号が別の記号に化けている</td><td>パターン1</td></tr><tr><td>空欄にしか見えないセルを計算に入れた瞬間 <code>#VALUE!</code> が出る</td><td>スペースや非表示文字の混入</td><td>パターン2</td></tr><tr><td>Webページや基幹システムからコピーした値だけがエラーになる</td><td>ノーブレークスペースなど特殊な空白</td><td>パターン2</td></tr><tr><td>CSVから貼り付けた日付を計算に使うとエラー。日付が左揃えで表示されている</td><td>日付が文字列のまま保存されている</td><td>パターン3</td></tr><tr><td>DATEDIFで年齢や勤続年数を出そうとすると <code>#VALUE!</code> になる</td><td>開始日・終了日が日付として認識されていない</td><td>パターン3</td></tr><tr><td>XLOOKUPが <code>#N/A</code> ではなく <code>#VALUE!</code> を返してくる</td><td>検索範囲と戻り範囲のサイズ違い</td><td>パターン4</td></tr><tr><td>SUMPRODUCTや範囲どうしの計算でエラーになる</td><td>配列の行数・列数がそろっていない</td><td>パターン4</td></tr><tr><td>VLOOKUPでエラー。列番号を指定したところが怪しい</td><td>第3引数（列番号）の指定ミス</td><td>パターン5</td></tr><tr><td>数式は正しそうなのに、参照先のセルがすでにエラーになっている</td><td>別のエラーが連鎖している</td><td>パターン5</td></tr><tr><td>「10個」と単位付きで入力したセルを計算に使うとエラーになる</td><td>数値セルに単位の文字を直接入力している</td><td>予防設計</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">症状が2つ以上当てはまるときは、表の上から順に確認するのが早道。とくに多いのはパターン1とパターン2です。</p>



<p class="wp-block-paragraph">なお <code>#VALUE!</code> すら出ず、数式の文字がそのまま表示される症状なら原因は別の場所。そちらは<a href="https://mashukabu.com/excel-formula-not-calculating/">Excel 計算されない原因と直し方｜症状別早見表で即解決</a>にまとめました。</p>



<h3 class="wp-block-heading"><span id="toc4">関数別早見表（VLOOKUP・SUMIF・DATEDIF・XLOOKUPほか）</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> は「関数名＋エラー名」で検索されることの多いエラー。取り違えが起きやすいのは、同じ関数が状況によって別のエラーを返すケースです。</p>



<p class="wp-block-paragraph">右の列も合わせて見てください。エラー名を取り違えると、まったく違う場所を直すことになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th><code>#VALUE!</code> になりやすいケース</th><th>別のエラーになるケース（取り違え注意）</th><th>ジャンプ先</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>第3引数（列番号）に1未満の数を指定した</td><td>列番号が範囲の列数を超えると <code>#REF!</code> ／ 完全一致で見つからないと <code>#N/A</code></td><td>パターン5</td></tr><tr><td>XLOOKUP</td><td>検索範囲と戻り範囲の行数・列数が一致しない</td><td>検索値が見つからないと <code>#N/A</code> ／ 展開先にデータがあると <code>#SPILL!</code></td><td>パターン4</td></tr><tr><td>DATEDIF</td><td>開始日・終了日が日付として認識されない文字列</td><td>開始日が終了日より後、単位文字列が無効だと <code>#NUM!</code></td><td>パターン3</td></tr><tr><td>SUM</td><td>文字列は無視されるため出にくい。範囲内に別のエラー値があるとそのまま伝わる</td><td>—</td><td>よくある質問</td></tr><tr><td>SUMIF</td><td>条件範囲・合計範囲に他のエラー値が混ざっているとき</td><td>—</td><td>パターン5</td></tr><tr><td>IF</td><td>参照先のセルがエラー／分岐の中で文字列と数値を計算している</td><td>ネストしたVLOOKUPが「見つからない」場合は <code>#N/A</code></td><td>パターン5</td></tr><tr><td>VALUE</td><td>数値として解釈できない文字列を渡した</td><td>—</td><td>パターン1</td></tr><tr><td>DATEVALUE・TIMEVALUE</td><td>日付・時刻として解釈できない文字列を渡した</td><td>—</td><td>パターン3</td></tr><tr><td>SUMPRODUCT</td><td>引数に渡した配列の行数・列数がそろっていない</td><td>—</td><td>パターン4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XLOOKUPは範囲サイズの不一致なら <code>#VALUE!</code>、範囲がそろっているのに見つからないなら <code>#N/A</code>。症状別の対処は<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">6症状で直すXLOOKUP関数の使い方｜別シート参照・空白が0になる問題まで</a>で扱っています。</p>



<p class="wp-block-paragraph">DATEDIFは日付が文字列なら <code>#VALUE!</code>、日付は正しいのに順番や単位が変なら <code>#NUM!</code> です。使い方そのものは<a href="https://mashukabu.com/excel-function-howto-use-datedif/">ExcelのDATEDIF関数の使い方｜年齢・勤続年数を計算</a>をどうぞ。</p>



<h2 class="wp-block-heading"><span id="toc5">原因別の診断と直し方【5パターン】</span></h2>



<p class="wp-block-paragraph">ここからは5つの原因を「症状」「原因」「直し方」の順に見ていきます。早見表で当たりを付けたところから読み進めてください。</p>



<h3 class="wp-block-heading"><span id="toc6">パターン1：文字列が数値計算に混ざっている</span></h3>



<p class="wp-block-paragraph"><strong>症状</strong>: <code>=A1+B1</code> のような単純な計算なのに <code>#VALUE!</code> が出ます。セルの見た目は数字なのに計算できません。</p>



<p class="wp-block-paragraph"><strong>原因</strong>: 算術演算子（<code>+</code> <code>-</code> <code>*</code> <code>/</code>）は、数値として読み取れない文字が混ざると計算をあきらめます。A1が <code>100</code>、B1が <code>abc</code> ならエラーです。</p>



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



<p class="wp-block-paragraph"><code>200</code> のような数字だけの文字列は、足し算では数値として読み取られることも。<strong>見た目が数字なのにエラーになるなら、単位の文字・全角スペース・非表示文字あたりが混ざっているサイン</strong>です。</p>



<p class="wp-block-paragraph"><strong>診断方法</strong></p>



<p class="wp-block-paragraph">ISTEXT関数（値が文字列ならTRUEを返す関数）で中身の型が分かります。書式を変えていないセルなら、数値は右揃え、文字列は左揃えで表示されるのも手がかり。</p>



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



<p class="wp-block-paragraph"><strong>直し方その1：SUM関数に置き換える</strong></p>



<p class="wp-block-paragraph">合計を出したいだけなら、<code>+</code> をやめてSUM関数にするのが手軽。関数の多くは範囲内の文字列を無視して、数値だけを計算します。</p>



<pre class="wp-block-code"><code>=SUM(A1:B1)</code></pre>



<p class="wp-block-paragraph">ただし万能ではありません。文字列になっている数字も一緒に無視されるため、エラーは消えても合計が実態とズレることがあります。</p>



<p class="wp-block-paragraph"><strong>直し方その2：VALUE関数で数値に変換する</strong></p>



<p class="wp-block-paragraph"><code>1234</code> のように数値を表す文字列なら、VALUE関数（文字列を数値に変換する関数）で型をそろえられます。</p>



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



<p class="wp-block-paragraph"><code>$1,000</code> のような通貨記号付きの文字列も、公式の使用例では変換できるとされています。ただし認識できる書式は地域設定で変わる可能性があり、環境次第では期待どおりにならないことも。</p>



<p class="wp-block-paragraph">使いどころは<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方｜文字列を数値に変換してSUMやVLOOKUPのエラーを解消する</a>にまとめました。区切り記号を自分で指定するなら<a href="https://mashukabu.com/excel-function-howto-use-numbervalue/">ExcelのNUMBERVALUE関数の使い方｜文字列を数値に変換する方法</a>の書き方が向いています。</p>



<p class="wp-block-paragraph"><strong>直し方その3：元データごと数値に直す</strong></p>



<p class="wp-block-paragraph">数式で毎回変換するより、列そのものを数値に戻したほうが後で楽なケースも多いもの。手順は<a href="https://mashukabu.com/excel-number-stored-as-text-convert/">Excelの文字列数値を一括変換する4つの方法｜「数値が文字列として保存されています」を解除</a>で追えます。</p>



<p class="wp-block-paragraph"><strong>引き算だけエラーになるとき</strong></p>



<p class="wp-block-paragraph">公式は原因の1つとして、マイナス記号が別の記号に置き換わっているケースを挙げています。数式バーで記号を選び直し、キーボードの <code>-</code> を入力し直してみてください。</p>



<h3 class="wp-block-heading"><span id="toc7">パターン2：スペースや非表示文字が混ざっている</span></h3>



<p class="wp-block-paragraph"><strong>症状</strong>: 見た目は空欄なのに、そのセルを計算に入れた瞬間 <code>#VALUE!</code> が出ます。中身を消したつもりでもエラーが消えません。</p>



<p class="wp-block-paragraph"><strong>原因</strong>: 空白に見えて、実際には文字が入っています。公式も「実際にはセルは空白ではないのに、空白に見えることがあります」と説明しているところ。セル内のアポストロフィ1つでもこの状態になります。</p>



<p class="wp-block-paragraph">全角スペース・半角スペース・改行・システム由来の制御文字は、すべて文字列。見た目が空欄でも、計算に使えばエラーになるわけです。</p>



<p class="wp-block-paragraph"><strong>診断方法：LENとUNICODEで正体を突き止める</strong></p>



<p class="wp-block-paragraph">LEN関数（文字数を返す関数）を使えば、空欄に見えるセルの中身を数で確かめられます。</p>



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



<p class="wp-block-paragraph">上の式が1以上なら、何かしらの文字が入っている証拠。下の式は余分な半角スペースの数を返します。ただし<strong>全角スペースやノーブレークスペースはTRIMで除去されないため、下の式では検出できません</strong>。</p>



<p class="wp-block-paragraph">そこまで見分けたいときは、UNICODE関数（文字のコード番号を返す関数）の出番。</p>



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



<p class="wp-block-paragraph">先頭1文字のコード番号が返ります。<code>32</code> なら半角スペース、<code>12288</code> なら全角スペース、<code>160</code> ならノーブレークスペース（Webページのコピーに紛れ込みやすい特殊な空白）です。</p>



<p class="wp-block-paragraph">似た関数のCODEは環境差を受けるため、判定にはUNICODEを使いましょう。</p>



<p class="wp-block-paragraph"><strong>直し方その1：TRIMとSUBSTITUTEを組み合わせる</strong></p>



<p class="wp-block-paragraph">余分なスペースの除去といえばTRIM関数。ただし対象は半角スペースだけです。全角スペースやノーブレークスペースが原因なら、SUBSTITUTE関数（指定した文字を置き換える関数）で半角に変換してからTRIMに渡します。</p>



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



<p class="wp-block-paragraph">TRIMの守備範囲は<a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方｜余分なスペースを一括削除する方法</a>で詳しく扱っています。</p>



<p class="wp-block-paragraph"><strong>直し方その2：CLEANで制御文字を落とす</strong></p>



<p class="wp-block-paragraph">改行やタブが混ざっているなら、CLEAN関数（印刷できない制御文字を削除する関数）の出番。ただし消せるのはコード0〜31の制御文字だけです。</p>



<p class="wp-block-paragraph">ノーブレークスペースも全角スペースも通常の半角スペースも、CLEANでは消えません。ここが実務で誤解されやすいポイント。取りきれない文字はSUBSTITUTEで個別に指定します。</p>



<p class="wp-block-paragraph">取り込みデータをまとめて掃除してから数値化するなら、次の形が定番です。</p>



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



<p class="wp-block-paragraph">長く見えますが、やっているのは内側から順の置き換えだけ。</p>



<ul class="wp-block-list"><li>CLEANで制御文字を落とす</li><li>SUBSTITUTEでノーブレークスペースと全角スペースを半角に変える</li><li>TRIMで前後の余白を削る</li><li>VALUEで数値に変換する</li></ul>



<p class="wp-block-paragraph"><strong>直し方その3：検索と置換でまとめて消す</strong></p>



<p class="wp-block-paragraph">数式を増やしたくないなら、<code>Ctrl</code> + <code>H</code> の「検索と置換」が手軽です。「検索する文字列」にスペースを1つ入力し、「置換後の文字列」は空欄のまま「すべて置換」をクリック。全角スペースなら、入力するスペースを全角に変えてください。</p>



<p class="wp-block-paragraph">全角の数字が原因のときは、<a href="https://mashukabu.com/excel-function-howto-use-asc/">ExcelのASC関数の使い方｜全角を半角に一括変換する方法</a>で表記をそろえる手もあります。</p>



<h3 class="wp-block-heading"><span id="toc8">パターン3：日付や時刻の型が合っていない（DATEDIFのVALUEエラーもここ）</span></h3>



<p class="wp-block-paragraph"><strong>症状</strong>: 他システムやCSVから取り込んだ日付を計算に使うと <code>#VALUE!</code> になります。DATEDIFで年齢や勤続年数を出そうとしてエラー、というのも典型的な入り口。</p>



<p class="wp-block-paragraph"><strong>原因</strong>: その日付が「日付のように見えるテキスト」になっています。Excelは日付をシリアル値（1900年1月1日を1として数える連番）で管理する仕組み。テキストのままでは計算対象になりません。</p>



<p class="wp-block-paragraph"><strong>診断方法</strong></p>



<p class="wp-block-paragraph">書式を変えていないセルなら、正しい日付は右揃え、テキストの日付は左揃えで表示されます。</p>



<p class="wp-block-paragraph">確実に見るなら、表示形式をいったん「標準」に変えてみてください。<code>45900</code> のような5桁の数値になればシリアル値、日付の文字が残ればテキストです。</p>



<p class="wp-block-paragraph"><strong>直し方その1：DATEVALUEでシリアル値に変換する</strong></p>



<p class="wp-block-paragraph">テキストの日付は、DATEVALUE関数（文字列の日付をシリアル値に変換する関数）で型をそろえられます。</p>



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



<p class="wp-block-paragraph">返るのは数値なので、結果のセルには日付の表示形式を設定してください。逆に、すでに日付として認識されているセルへ使うとエラーになることも。使い分けは<a href="https://mashukabu.com/excel-function-howto-use-datevalue/">ExcelのDATEVALUE関数の使い方｜文字列の日付をシリアル値に変換する方法</a>を参考にどうぞ。</p>



<p class="wp-block-paragraph"><strong>直し方その2：区切り位置で列ごと日付に変える</strong></p>



<p class="wp-block-paragraph">件数が多いときは、列まるごと変換したほうが速いですよね。デスクトップ版なら次の手順です。</p>



<ol class="wp-block-list"><li>日付が入っている列を選択する</li><li>「データ」タブの「区切り位置」をクリックする</li><li>ウィザードを「次へ」で進める</li><li>3画面目の「列のデータ形式」で「日付」を選ぶ</li><li>「完了」をクリックする</li></ol>



<p class="wp-block-paragraph">バージョンによっては「テキストから列へ」という名前ですが、中身は同じウィザード。DATE関数で日付を組み立てるときも、年・月・日の引数はすべて数値です。全角数字や漢数字を渡さないよう気をつけてください。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン4：範囲や配列のサイズが合っていない（XLOOKUPのVALUEエラーもここ）</span></h3>



<p class="wp-block-paragraph"><strong>症状</strong>: 複数の範囲を組み合わせる数式で <code>#VALUE!</code> が出ます。1つ1つの範囲は正しいのに、組み合わせた途端にエラーになるのが特徴。</p>



<p class="wp-block-paragraph"><strong>原因</strong>: 対応させるべき範囲どうしで、行数や列数がそろっていません。Excelは「1行目どうし、2行目どうし」と対応付けて計算するため、数が合わないと処理できないわけです。</p>



<p class="wp-block-paragraph"><strong>XLOOKUPの場合</strong></p>



<p class="wp-block-paragraph">検索範囲と戻り範囲の行数・列数が一致しないと <code>#VALUE!</code> になります。よくあるのは、片方だけ見出し行を含めてしまうケース。</p>



<p class="wp-block-paragraph">範囲サイズはそろっているのに検索値が見つからない場合は <code>#N/A</code> です。原因も対処も別物なので、まずは範囲の始点と終点をそろえて確認してみてください。</p>



<p class="wp-block-paragraph"><strong>SUMPRODUCTの場合</strong></p>



<p class="wp-block-paragraph">渡した配列の行数・列数がそろっていないとエラーになります。次の式は3行と4行を掛け合わせようとしていて、対応が取れません。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A1:A3,B1:B4)</code></pre>



<p class="wp-block-paragraph"><code>=SUMPRODUCT(A1:A3,B1:B3)</code> のように終点をそろえれば、計算が通ります。</p>



<p class="wp-block-paragraph"><strong>単一セルを想定する場所に範囲を書いた場合</strong></p>



<p class="wp-block-paragraph"><code>A1:A3</code> のように、1つの値を求める場所へ範囲を書いた数式です。ここは使っているバージョンで結果が変わります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: 動的配列（スピル）は Microsoft 365 / Excel 2021 以降の機能です。Excel 2019 以前では、数式のある行と範囲が重ならないときに <code>#VALUE!</code> になります。</p></blockquote>



<p class="wp-block-paragraph">動的配列に対応した版では、同じ数式が複数セルへ展開（スピル）されます。展開先にデータが残っていると出るのは <code>#SPILL!</code>。この場合はまず展開先のセルを空けてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン5：関数の引数の型が違っている（VLOOKUP・SUMIFの引数ミスもここ）</span></h3>



<p class="wp-block-paragraph"><strong>症状</strong>: 関数の書き方は合っているように見えるのに <code>#VALUE!</code> が出ます。参照先のセルを見ると、そこがすでにエラーになっていることも。</p>



<p class="wp-block-paragraph"><strong>VLOOKUPの場合</strong></p>



<p class="wp-block-paragraph">第3引数（列番号）に1未満の数を指定するとエラーになります。列番号を別セルから参照していて、そこが空欄や <code>0</code> になっているパターンが多いですね。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2,$D$2:$F$100,0,FALSE)</code></pre>



<p class="wp-block-paragraph">この式は列番号が <code>0</code> なので <code>#VALUE!</code> です。<code>2</code> や <code>3</code> のように、範囲の左端から数えた実際の列番号を指定してください。</p>



<p class="wp-block-paragraph">ここも取り違えに注意。列番号が範囲の列数を超えていれば <code>#REF!</code>、完全一致で見つからなければ <code>#N/A</code> になります。</p>



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



<p class="wp-block-paragraph">参照先のセルがエラーを返していると、そのエラーがIFの結果に出ます。分岐の中で文字列と数値の計算を組み込んでいる場合も同じ。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;10,B1*1.1,&quot;対象外&quot;)</code></pre>



<p class="wp-block-paragraph">B1に「10個」のような単位付きの文字列が入っていると、掛け算のところでエラーになります。なお、ネストしたVLOOKUPが「見つからない」ことに起因するエラーは <code>#N/A</code>。IF自体の型不一致とは別問題です。</p>



<p class="wp-block-paragraph"><strong>SUMIFの場合</strong></p>



<p class="wp-block-paragraph">条件範囲や合計範囲に他のエラー値が混ざっていると、その影響が結果に出ることがあります。まず範囲の中に既存のエラーが残っていないか確認してみてください。</p>



<p class="wp-block-paragraph">条件の書き方にも制限があり、255文字を超える文字列との照合は正しい結果にならないとされています。条件が長いときは、作業列で判定を先に済ませるのが安全です。</p>



<p class="wp-block-paragraph"><strong>エラーの連鎖を断つ</strong></p>



<p class="wp-block-paragraph"><code>#VALUE!</code> は伝染します。1か所のエラーが参照元となって、下流の集計まで全部エラーになるのはよくある光景。</p>



<p class="wp-block-paragraph">直すときは、エラーが出ているセルではなく<strong>いちばん上流のセル</strong>から手を付けてください。上流を直せば、下流のエラーもまとめて消えることが多いです。</p>



<h2 class="wp-block-heading"><span id="toc11">原因の箇所を特定する診断テクニック</span></h2>



<p class="wp-block-paragraph">原因のパターンが分かっても、関数が入れ子になった長い数式では「どこで」エラーになっているか見えません。箇所を絞り込む3つのやり方を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc12">数式の検証で1ステップずつ追う（デスクトップ版向け）</span></h3>



<p class="wp-block-paragraph">ネストした数式なら、「数式の検証」が頼りになります。計算順に1ステップずつ実行して、途中経過を見せてくれる機能です。</p>



<ol class="wp-block-list"><li>エラーが出ているセルを選択する</li><li>「数式」タブをクリックする</li><li>「ワークシート分析」グループの「数式の検証」をクリックする</li><li>「検証」ボタンを押して1ステップずつ進める</li></ol>



<p class="wp-block-paragraph">どのステップで <code>#VALUE!</code> が現れたかを見れば、犯人のいる場所が分かります。バージョンによっては「数式の監査」「数式を評価する」という表記。</p>



<p class="wp-block-paragraph">この機能はExcel for Windows（デスクトップ版）を前提に案内されているもので、Web版のリボンには見当たりません。Web版なら次の診断へ切り替えてください。</p>



<h3 class="wp-block-heading"><span id="toc13">F9キーで数式の一部だけを計算してみる</span></h3>



<p class="wp-block-paragraph">数式バーで一部だけを選択して <code>F9</code> を押すと、その部分の計算結果だけが表示されます。デスクトップ版で使える、手軽な絞り込み方法です。</p>



<p class="wp-block-paragraph">たとえば <code>=A1+B1+C1</code> のうち <code>A1+B1</code> だけを選べば、その時点の結果が見られます。ここでエラーが出たなら、原因はA1かB1のどちらか。</p>



<p class="wp-block-paragraph">注意が1つ。確認が終わったら <code>Esc</code> キーで元の数式に戻してください。<code>Enter</code> で確定すると、数式がその場の値に置き換わってしまいます。</p>



<h3 class="wp-block-heading"><span id="toc14">ISTEXTとLENでセルの中身を確認する</span></h3>



<p class="wp-block-paragraph">Web版でもデスクトップ版でも使えて、しかも結果が残るのがこの方法。作業列に次の3つを並べます。</p>



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



<p class="wp-block-paragraph">ISTEXTが <code>TRUE</code> なら文字列、ISNUMBERが <code>TRUE</code> なら数値または日付です。LENで予想外の文字数が出たら、見えない文字が入っている合図。</p>



<p class="wp-block-paragraph"><code>"19"</code> のように引用符で囲まれた数字はテキスト扱いのため、ISNUMBERは <code>FALSE</code> を返します。「数字に見えるのに <code>FALSE</code>」なら、それが原因の証拠。</p>



<p class="wp-block-paragraph">判定関数の使い方は<a href="https://mashukabu.com/excel-function-howto-use-istext/">ExcelのISTEXT関数の使い方｜セルの値が文字列かどうかを判定する方法</a>で解説しています。診断が終わったら、作業列は消しておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc15">#VALUE!を防ぐ予防的な数式設計</span></h2>



<p class="wp-block-paragraph">原因を直したら、次は再発を防ぐ番。日々の作業に組み込みやすい4つの工夫です。</p>



<h3 class="wp-block-heading"><span id="toc16">IFERRORでエラー時の表示を整える</span></h3>



<p class="wp-block-paragraph">IFERROR関数を使うと、エラーになったときの表示を空白や任意のメッセージに差し替えられます。</p>



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



<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> の7種類。Excel 2007以降で使える関数ですよ。</p>



<p class="wp-block-paragraph">ただし、これは原因を隠しているだけ。本当に直すべきエラーまで見えなくなるので、原因を特定してからの仕上げに使うのがおすすめです。詳しい使い分けは<a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方｜エラー処理の基本と実務活用</a>にまとめました。</p>



<h3 class="wp-block-heading"><span id="toc17">ISTEXTで入力をチェックする</span></h3>



<p class="wp-block-paragraph">そもそも文字列が入ってこないよう、計算の前に型をチェックする方法もあります。</p>



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



<p class="wp-block-paragraph">文字列が入っていれば警告を表示し、数値のときだけ計算する形。入力担当者が自分で気づけるので、複数人で使う集計シートほど効果が出やすい書き方です。</p>



<h3 class="wp-block-heading"><span id="toc18">取り込んだデータは先にクレンジングする</span></h3>



<p class="wp-block-paragraph">CSVや基幹システムから取り込んだデータは、スペースや制御文字が混ざりやすいもの。取り込み → クレンジング → 集計の3段構えにして、パターン2の作業列を1つ挟んでおくと安心です。</p>



<p class="wp-block-paragraph">毎月同じ形式のファイルを扱うなら、その作業列ごとテンプレート化してしまいましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">表示形式で単位を扱う（数値セルに「個」「円」を直接入力しない）</span></h3>



<p class="wp-block-paragraph">意外と見落とされがちなのが、単位の直接入力です。数量欄に「10個」、金額欄に「1200円」と入力すると、そのセルは数値ではなく文字列になります。</p>



<p class="wp-block-paragraph">厄介なのは、症状が2通りに分かれること。掛け算に使えば <code>#VALUE!</code> が出ますが、SUMで合計すると<strong>エラーは出ないまま静かに無視されます</strong>。</p>



<p class="wp-block-paragraph">解決策は、単位を表示形式で見せる方法。中身は数値のまま、画面上だけ単位付きにできます。</p>



<ol class="wp-block-list"><li>単位を付けたいセル範囲を選択する</li><li><code>Ctrl</code> + <code>1</code> で「セルの書式設定」を開く</li><li>「表示形式」タブで「ユーザー定義」を選ぶ</li><li>「種類」の欄に <code>0"個"</code> と入力する</li><li>「OK」をクリックする</li></ol>



<p class="wp-block-paragraph">これで <code>10</code> と入力すれば「10個」と表示され、セルの中身は数値の <code>10</code> のまま。金額なら <code>#,##0"円"</code> で「1,200円」のように桁区切り付きで見せられます。</p>



<p class="wp-block-paragraph">単位は書式で見せるとチームで決めておけば、この手のエラーは起きにくくなりますよ。</p>



<h2 class="wp-block-heading"><span id="toc20">#VALUE!エラーでよくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc21">SUM関数なら#VALUE!は出ないのですか？</span></h3>



<p class="wp-block-paragraph">SUM関数は範囲内の文字列や空白を無視して数値だけを合計するため、<code>+</code> 演算子より <code>#VALUE!</code> は出にくい性質があります。ただし「出ない」わけではありません。</p>



<p class="wp-block-paragraph">範囲内に <code>#REF!</code> や <code>#DIV/0!</code> など別のエラー値があると、そのエラーがそのまま結果に出ます。またエラーが消える代わりに、文字列の数字が無視されて合計がズレることも。エラーが出なくなったときこそ、合計値が想定どおりか確かめてみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">VLOOKUPで#VALUE!が出るのはなぜですか？</span></h3>



<p class="wp-block-paragraph">いちばん多いのは、第3引数（列番号）に1未満の数を指定しているケース。列番号を別セルから参照していて、そこが空欄や <code>0</code> になっている状況ですね。</p>



<p class="wp-block-paragraph">大事なのは、エラー名を正確に読むこと。<code>#VALUE!</code> なら列番号そのものを、<code>#N/A</code> なら検索値の表記ゆれを疑ってください。列番号が範囲の列数を超えている場合は <code>#REF!</code> です。</p>



<h3 class="wp-block-heading"><span id="toc23">全角スペースなのに見た目で気づけないのはなぜですか？</span></h3>



<p class="wp-block-paragraph">全角スペースは画面上ではただの空白で、半角スペースとの区別もつきません。それでいてセルの中では立派な1文字。この「見えないのに存在する」性質が、原因特定を難しくしているわけです。</p>



<p class="wp-block-paragraph">さらにやっかいなのが、TRIM関数で消えないこと。判定には <code>=UNICODE(LEFT(A1,1))</code> を使いましょう。<code>12288</code> なら全角スペース、<code>32</code> なら半角スペース、<code>160</code> ならノーブレークスペースです。</p>



<h3 class="wp-block-heading"><span id="toc24">IFERRORで隠すのは良くないのですか？</span></h3>



<p class="wp-block-paragraph">IFERROR自体はとても便利な関数です。問題は使うタイミングにあります。</p>



<p class="wp-block-paragraph">原因を特定しないままIFERRORで包むと、計算に含めるべき数値が抜け落ちたまま表が完成してしまいます。集計結果が静かにズレていても、画面はきれいなので誰も気づきません。</p>



<p class="wp-block-paragraph">まず原因を直し、入力途中で一時的にエラーが出る箇所だけを整える。この順番なら、IFERRORは頼れる仕上げの道具になります。</p>



<h3 class="wp-block-heading"><span id="toc25">エラーを判定だけしたい場合はどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">セルがエラーかどうかをTRUE/FALSEで判定したいときは、ISERROR関数が向いています。7種類のエラー値をまとめて判定できるので、チェック用の列を作るのに便利。</p>



<p class="wp-block-paragraph"><code>#N/A</code> を除外したいならISERR、<code>#N/A</code> だけを見たいならISNAという使い分けもできます。条件付き書式の数式欄ではIFERRORが使えないため、ISERRORを使ってください。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ExcelのISERROR関数の使い方｜すべてのエラーをまとめて判定する方法【図解あり】</a>をどうぞ。</p>



<h2 class="wp-block-heading"><span id="toc26">まとめ｜#VALUE!は早見表で症状から見つけて直す</span></h2>



<p class="wp-block-paragraph">Excelの <code>#VALUE!</code> について、症状からの探し方と原因別の直し方を見てきました。要点を整理します。</p>



<ul class="wp-block-list"><li><code>#VALUE!</code> は「<strong>渡されたデータの型が合っていない</strong>」という1点だけを知らせるサイン</li><li><code>#N/A</code>（見つからない）・<code>#REF!</code>（参照できない）・<code>#NUM!</code>（計算できない数値）とは原因も直し方も別物</li><li>原因は<strong>文字列の混入・スペースや非表示文字・日付の型違い・範囲サイズの不一致・引数の型違い</strong>の5パターン</li><li>TRIMは半角スペースのみ、CLEANは制御文字のみが対象。<strong>全角スペースとノーブレークスペースはSUBSTITUTEで個別に指定する</strong></li><li>VLOOKUPは列番号1未満、XLOOKUPは範囲サイズ不一致、DATEDIFは日付が文字列のときに <code>#VALUE!</code></li><li>場所の特定には「数式の検証」（デスクトップ版）と <code>F9</code> の部分評価、ISTEXT・LENの作業列が効く</li></ul>



<p class="wp-block-paragraph">原因の幅が広いぶん戸惑いやすいエラーですが、症状さえ言葉にできれば探す場所は絞り込めます。まずはそのセルの中身が数値なのか文字列なのか、確かめるところから始めてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-value-error/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのVLOOKUP・XLOOKUP・INDEX/MATCH 使い分けガイド｜どの検索関数を選ぶか</title>
		<link>https://mashukabu.com/sheets-vlookup-xlookup-index-match/</link>
					<comments>https://mashukabu.com/sheets-vlookup-xlookup-index-match/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 11:44:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INDEX/MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6410</guid>

					<description><![CDATA[GoogleスプレッドシートのVLOOKUP・XLOOKUP・INDEX/MATCHを3軸で徹底比較。3ステップ選択フローで迷わず選べる判断基準、書き換え手順、#N/Aエラー対処まで実例付きで解説。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Googleスプレッドシートで「別の表から値を取り出したい」場面、毎日のように出てきますよね。</p>



<p class="wp-block-paragraph">VLOOKUPは定番の検索関数ですが、使い込むほど「左側の列が返せない」「列を挿入したら番号がズレた」「Excelで開いたら#NAME?エラーになった」といった壁にぶつかります。そこでXLOOKUPやINDEX/MATCHが候補に挙がるのですが、「結局3つのうちどれを使えばいいのか」で迷う方も多いのではないでしょうか。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートの3つの検索関数を「検索方向」「複数列返却」「Excel互換性」など7項目で徹底比較します。3つの質問に答えるだけで使うべき関数が決まる選択フロー、VLOOKUPからXLOOKUPへの書き換え手順（4パターン）、#N/Aだけでなく#REF!や#VALUE!も含めたエラー対処、そして実務シーン別のおすすめパターン集まで一気通貫で解説します。</p>



<p class="wp-block-paragraph">読み終わるころには「自分のケースはこれ」と迷いなく選べるようになりますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">3つの検索関数の違いを30秒で理解する【結論】</a><ol><li><a href="#toc2" tabindex="0">各関数の役割を一文で言うと</a></li><li><a href="#toc3" tabindex="0">「最新のXLOOKUPだけ使えばいい」が成立しない3つの理由</a></li></ol></li><li><a href="#toc4" tabindex="0">VLOOKUP・XLOOKUP・INDEX/MATCH 機能比較表（7項目）</a><ol><li><a href="#toc5" tabindex="0">検索方向の違い（左方向検索ができるか）</a></li><li><a href="#toc6" tabindex="0">複数列を一度に返せるか（スピル機能）</a></li><li><a href="#toc7" tabindex="0">Excelファイルで開いたときの互換性</a></li><li><a href="#toc8" tabindex="0">列挿入時のズレ耐性</a></li></ol></li><li><a href="#toc9" tabindex="0">3ステップ選択フロー｜どの検索関数を使うか3つの質問で決める</a><ol><li><a href="#toc10" tabindex="0">STEP1：左側の列を検索する必要があるか</a></li><li><a href="#toc11" tabindex="0">STEP2：Excelで開くことがあるか</a></li><li><a href="#toc12" tabindex="0">STEP3：2次元検索が必要か</a></li><li><a href="#toc13" tabindex="0">3ステップを1枚にまとめると</a></li></ol></li><li><a href="#toc14" tabindex="0">VLOOKUPからXLOOKUPへの書き換え手順【4パターン】</a><ol><li><a href="#toc15" tabindex="0">パターン1：基本の書き換え（1列を返す）</a></li><li><a href="#toc16" tabindex="0">パターン2：複数列を一度に返す（スピル活用）</a></li><li><a href="#toc17" tabindex="0">パターン3：エラー処理を組み込む</a></li><li><a href="#toc18" tabindex="0">パターン4：ワイルドカード検索</a></li></ol></li><li><a href="#toc19" tabindex="0">INDEX/MATCHが真価を発揮する3つの場面</a><ol><li><a href="#toc20" tabindex="0">場面1：左方向検索（部署名から社員IDを引く）</a></li><li><a href="#toc21" tabindex="0">場面2：2次元検索（行×列キーで値を特定）</a></li><li><a href="#toc22" tabindex="0">場面3：Excel互換性が必要な複雑な検索</a></li></ol></li><li><a href="#toc23" tabindex="0">検索関数で頻出する#N/A・#REF!・#VALUE!エラーの対処法</a><ol><li><a href="#toc24" tabindex="0">#N/Aエラー（一致する値が見つからない）</a></li><li><a href="#toc25" tabindex="0">#REF!エラー（参照範囲が無効）</a></li><li><a href="#toc26" tabindex="0">#VALUE!エラー（引数の型が不正）</a></li></ol></li><li><a href="#toc27" tabindex="0">ケース別おすすめパターン集（実務シーン6選）</a><ol><li><a href="#toc28" tabindex="0">シーン1：商品マスタから単価を引いてくる（請求書作成など）</a></li><li><a href="#toc29" tabindex="0">シーン2：社員名簿から氏名・部署を一度に取り出す（人事系資料）</a></li><li><a href="#toc30" tabindex="0">シーン3：部署名から代表者の社員IDを逆引きする</a></li><li><a href="#toc31" tabindex="0">シーン4：月×支店のクロス集計から値を取り出す</a></li><li><a href="#toc32" tabindex="0">シーン5：取引先名を「あいまい検索」で引く</a></li><li><a href="#toc33" tabindex="0">シーン6：Excel 2016と共有しつつ左方向検索が必要</a></li></ol></li><li><a href="#toc34" tabindex="0">まとめ｜スプレッドシートでの検索関数ベストプラクティス</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">3つの検索関数の違いを30秒で理解する【結論】</span></h2>



<p class="wp-block-paragraph">まずは結論から押さえましょう。VLOOKUP・XLOOKUP・INDEX/MATCHの3つは、それぞれ得意な場面が違います。</p>



<h3 class="wp-block-heading"><span id="toc2">各関数の役割を一文で言うと</span></h3>



<p class="wp-block-paragraph">3つを乱暴に一言でまとめると、次のようになります。</p>



<ul class="wp-block-list"><li><strong>VLOOKUP</strong>: 表の先頭列で検索して、右側の列の値を返す。シンプルだけど制限が多い「定番」関数</li><li><strong>XLOOKUP</strong>: VLOOKUPの制限を解消した後継。左右どちらにも検索でき、エラー処理も内蔵されている「最新型」</li><li><strong>INDEX/MATCH</strong>: 2つの関数を組み合わせて使う「上級者向け万能ナイフ」。2次元検索や左方向検索に強い</li></ul>



<p class="wp-block-paragraph">VLOOKUPは「範囲の先頭列を検索して、右側の列を返す」関数です。構文がシンプルで、Excelとも互換性が高いのが強みです。ただし、検索キーは必ず先頭列（左端列）に置く必要があり、左方向の検索はできません。</p>



<p class="wp-block-paragraph">XLOOKUPは2022年8月にGoogleスプレッドシートで使えるようになった、比較的新しい関数です。VLOOKUPの制限を解消し、左右どちらの方向にも検索できます。第4引数（missing_value）に値を指定すれば、IFERROR（エラー発生時に代替値を返す関数）なしで#N/A対策ができます。</p>



<p class="wp-block-paragraph">INDEX/MATCHは2つの関数を組み合わせた検索パターンです。INDEX関数（指定した行・列の値を返す関数）とMATCH関数（値の相対位置を返す関数）を組み合わせて使います。検索列と返す列を独立して指定できるため、柔軟性が最も高い方法です。</p>



<h3 class="wp-block-heading"><span id="toc3">「最新のXLOOKUPだけ使えばいい」が成立しない3つの理由</span></h3>



<p class="wp-block-paragraph">「いちばん新しいXLOOKUPを使えば全部解決では？」と思いがちですが、実務ではそう単純ではありません。理由は3つあります。</p>



<ol class="wp-block-list"><li><strong>Excel互換性の壁</strong>: Excel 2016/2019で開くと#NAME?エラーになる</li><li><strong>2次元検索の壁</strong>: 行キー×列キーの検索はINDEX/MATCHのほうがシンプル</li><li><strong>既存資産の壁</strong>: VLOOKUPで組まれた数百本の数式を一気に書き換えるのは現実的でない</li></ol>



<p class="wp-block-paragraph">Excelとのファイル共有が必要な場面では、VLOOKUPかINDEX/MATCHのほうが安全です。XLOOKUPはExcel 2021またはMicrosoft 365以降でしか動かないからです。</p>



<p class="wp-block-paragraph">行と列の両方でキーを指定する2次元検索を1つの数式で完結させたい場合は、INDEX/MATCHが最も扱いやすい選択肢になります。XLOOKUPでも2次元検索はできますが、XLOOKUPを入れ子にする書き方になり、かえって読みにくくなります。</p>



<p class="wp-block-paragraph">また、すでにVLOOKUPで構築された既存テンプレートが社内に多く存在する場合、それを全部XLOOKUPへ置き換える工数とリスクを考えると、新規分だけXLOOKUPを採用する方が現実的なこともあります。</p>



<p class="wp-block-paragraph">つまり「3つを場面で使い分ける」のが最も実務的なんです。次の章で詳しく比較していきましょう。</p>



<h2 class="wp-block-heading"><span id="toc4">VLOOKUP・XLOOKUP・INDEX/MATCH 機能比較表（7項目）</span></h2>



<p class="wp-block-paragraph">3関数の違いを7つの観点で表にまとめました。手元のケースと照らし合わせて、どれが当てはまるか見てみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>機能</th><th>VLOOKUP</th><th>XLOOKUP</th><th>INDEX/MATCH</th></tr></thead><tbody><tr><td>左側の列を検索できるか</td><td>不可</td><td>可</td><td>可</td></tr><tr><td>複数列を一度に返せるか</td><td>不可</td><td>可（スピル）</td><td>可（要工夫）</td></tr><tr><td>Excel 2016/2019との互換性</td><td>対応</td><td>非対応（#NAME?エラー）</td><td>対応</td></tr><tr><td>#N/Aエラー処理の簡潔さ</td><td>IFERROR/IFNAが必要</td><td>第4引数で直接指定可</td><td>IFERROR/IFNAが必要</td></tr><tr><td>2次元検索（行・列キー指定）</td><td>不可</td><td>可（入れ子で対応）</td><td>可（最も書きやすい）</td></tr><tr><td>列挿入時のズレ耐性</td><td>弱い（列番号が手動）</td><td>強い（列を直接参照）</td><td>強い（列を直接参照）</td></tr><tr><td>数式の複雑さ</td><td>低（単関数）</td><td>低（単関数）</td><td>中〜高（2関数の組み合わせ）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">検索方向の違い（左方向検索ができるか）</span></h3>



<p class="wp-block-paragraph">VLOOKUPで最も多く遭遇する制限が「左方向検索ができない」問題です。</p>



<p class="wp-block-paragraph">たとえば、A列に社員ID、B列に氏名、C列に部署名という名簿があるとします。「部署名から社員IDを調べたい」場合、VLOOKUPでは対応できません。返したい列（A列の社員ID）が、検索したい列（C列の部署名）より左にあるからです。</p>



<p class="wp-block-paragraph">XLOOKUPとINDEX/MATCHはこの制限がなく、どの方向にも検索できます。具体的な書き方は後の章で見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">複数列を一度に返せるか（スピル機能）</span></h3>



<p class="wp-block-paragraph">XLOOKUPはresult_range（返す範囲）に複数列を指定すれば、該当行の複数値を一度に返せます。スピル機能（1つの数式で複数セルに値が広がる機能）に対応しているからです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A2:A100, B2:D100)</code></pre>



<p class="wp-block-paragraph">この数式1本で、商品名・単価・在庫の3列を一度に取り出せます。VLOOKUPは1数式で1列しか返せないため、3列欲しければ3本の数式を書く必要があります。</p>



<p class="wp-block-paragraph">INDEX/MATCHでも複数列を返せますが、MATCHを別セルに切り出して参照する形にするのが一般的です。</p>



<h3 class="wp-block-heading"><span id="toc7">Excelファイルで開いたときの互換性</span></h3>



<p class="wp-block-paragraph">XLOOKUPはExcel 2021またはMicrosoft 365以降でのみ動作します。Excel 2016・2019（永続ライセンス版）は非対応です。</p>



<p class="wp-block-paragraph">スプレッドシートで作成したXLOOKUP数式をExcel形式（.xlsx）でダウンロードし、古いExcelで開くと、#NAME?エラーが表示されます。#NAME?は「関数名を認識できない」ときに出るエラーです。</p>



<p class="wp-block-paragraph">Excelファイルを社外に共有する機会がある場合や、古いバージョンを使う方と協働する場合は、VLOOKUPかINDEX/MATCHを選ぶほうが安心です。</p>



<h3 class="wp-block-heading"><span id="toc8">列挿入時のズレ耐性</span></h3>



<p class="wp-block-paragraph">VLOOKUPの第3引数「2」「3」という列番号指定は、列を追加・削除したときに崩れるリスクがあります。</p>



<p class="wp-block-paragraph">たとえば次の数式を考えてみてください。</p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A:Cの範囲でF2を検索し、2列目（B列）を返す数式です。ここでA列とB列の間に「商品略称」列を挿入すると、もともとのB列はC列にズレます。しかしVLOOKUPの「2」はそのままなので、新しい「商品略称」列を返してしまいます。</p>



<p class="wp-block-paragraph">XLOOKUPとINDEX/MATCHは列を直接参照する（<code>B:B</code>のように書く）ため、列の挿入があっても参照が自動更新され、ズレません。この差はメンテナンス性に大きく影響します。</p>



<h2 class="wp-block-heading"><span id="toc9">3ステップ選択フロー｜どの検索関数を使うか3つの質問で決める</span></h2>



<p class="wp-block-paragraph">「比較表は見たけど、結局自分はどれを使えばいいの？」という方のために、3つの質問に答えるだけで決まる選択フローを用意しました。</p>



<h3 class="wp-block-heading"><span id="toc10">STEP1：左側の列を検索する必要があるか</span></h3>



<p class="wp-block-paragraph">「検索キーより左にある列の値を返したい」場合は、VLOOKUPは使えません。XLOOKUPかINDEX/MATCHに進んでください。</p>



<p class="wp-block-paragraph">検索キーが左端列にあり、返す値は右側にある場合は、VLOOKUPも選択肢になります。STEP2へ進みましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">STEP2：Excelで開くことがあるか</span></h3>



<p class="wp-block-paragraph">スプレッドシートだけで完結するなら、XLOOKUPがおすすめです。数式が短く、エラー処理も簡単です。</p>



<p class="wp-block-paragraph">Excel 2016・2019などの古いバージョンでファイルを開く可能性があるなら、VLOOKUPかINDEX/MATCHを選んでください。Excel 2021 / Microsoft 365のみなら、XLOOKUPでも問題ありません。</p>



<h3 class="wp-block-heading"><span id="toc12">STEP3：2次元検索が必要か</span></h3>



<p class="wp-block-paragraph">行と列の両方でキーを指定したい場合（例：「4月×東京支店の売上」を取り出す）は、INDEX/MATCHが最適です。</p>



<p class="wp-block-paragraph">STEP1・2でVLOOKUPやXLOOKUPを選んだ場合でも、2次元検索が必要な場面ではINDEX/MATCHに切り替えましょう。</p>



<h3 class="wp-block-heading"><span id="toc13">3ステップを1枚にまとめると</span></h3>



<p class="wp-block-paragraph">3ステップをまとめると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件の組み合わせ</th><th>おすすめ関数</th></tr></thead><tbody><tr><td>左方向検索が不要 &#038; Excel共有が不要</td><td><strong>XLOOKUP</strong></td></tr><tr><td>左方向検索が不要 &#038; Excel共有が必要（古いExcel含む）</td><td><strong>VLOOKUP</strong></td></tr><tr><td>左方向検索が必要</td><td><strong>INDEX/MATCH</strong>（共有不要ならXLOOKUPも可）</td></tr><tr><td>2次元検索が必要（行×列キー）</td><td><strong>INDEX/MATCH</strong></td></tr><tr><td>Excel 2021 / Microsoft 365のみで共有</td><td><strong>XLOOKUP</strong>（Excelでも動作可）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったら「Excelとの共有があるかどうか」を最初に確認するのがコツです。社内資料や社外提出が絡む場面では互換性が最優先になりますよ。</p>



<h2 class="wp-block-heading"><span id="toc14">VLOOKUPからXLOOKUPへの書き換え手順【4パターン】</span></h2>



<p class="wp-block-paragraph">XLOOKUPは、スプレッドシート専用でExcel共有が不要なら、VLOOKUPよりシンプルに書けます。既存のVLOOKUP数式をXLOOKUPへ書き換える4つのパターンを見ていきましょう。</p>



<p class="wp-block-paragraph">次のサンプルデータを共通で使います。F2セルに商品コードを入力する想定です。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品コード）</th><th>B列（商品名）</th><th>C列（単価）</th><th>D列（在庫数）</th></tr></thead><tbody><tr><td>A001</td><td>りんご</td><td>120</td><td>50</td></tr><tr><td>A002</td><td>バナナ</td><td>80</td><td>80</td></tr><tr><td>A003</td><td>みかん</td><td>150</td><td>30</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">パターン1：基本の書き換え（1列を返す）</span></h3>



<p class="wp-block-paragraph">最もシンプルな書き換えパターンです。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（ビフォー）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">A:Cの先頭列（A列）でF2を検索し、2列目（B列）の値を返します。</p>



<p class="wp-block-paragraph"><strong>XLOOKUP（アフター）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B)</code></pre>



<p class="wp-block-paragraph">A:AでF2を検索し、B:Bの値を返します。「何列目」ではなく、列を直接指定しているのがポイントです。F2が「A002」のとき、どちらの数式も「バナナ」を返します。</p>



<p class="wp-block-paragraph">VLOOKUPの「2」が、XLOOKUPでは「B:B」という列の直接参照に置き換わっていますね。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン2：複数列を一度に返す（スピル活用）</span></h3>



<p class="wp-block-paragraph">商品名・単価・在庫を1数式で取り出したい場合です。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（3本必要）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(F2, A:D, 2, FALSE)  // 商品名
=VLOOKUP(F2, A:D, 3, FALSE)  // 単価
=VLOOKUP(F2, A:D, 4, FALSE)  // 在庫</code></pre>



<p class="wp-block-paragraph"><strong>XLOOKUP（1本でOK）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:D)</code></pre>



<p class="wp-block-paragraph">B:Dという複数列の範囲を指定するだけで、スピル機能により隣の2セルにも値が自動で広がります。数式の本数が3本→1本になり、メンテナンスもラクになります。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン3：エラー処理を組み込む</span></h3>



<p class="wp-block-paragraph">「見つからなかったときに『該当なし』と表示したい」場合の書き換えです。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP + IFERROR</strong></p>



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



<p class="wp-block-paragraph"><strong>XLOOKUP（第4引数）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPは第4引数（missing_value）にエラー時の値を直接書けるため、IFERRORで外側を囲む必要がありません。数式が1段短くなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン4：ワイルドカード検索</span></h3>



<p class="wp-block-paragraph">「商品コードの一部だけ覚えている」場合などに使うワイルドカード（<code>*</code>や<code>?</code>）検索の書き換えです。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP（完全一致モードでワイルドカード可）</strong></p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;A00*&quot;, A:C, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">VLOOKUPでは第4引数を <code>FALSE</code>（完全一致）にした状態であれば、<code>*</code>（任意の文字列）や <code>?</code>（任意の1文字）が使えます。</p>



<p class="wp-block-paragraph"><strong>XLOOKUP（一致モードに2を指定）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;A00*&quot;, A:A, B:B, &quot;該当なし&quot;, 2)</code></pre>



<p class="wp-block-paragraph">XLOOKUPでは第5引数（一致モード）に「2」を指定すると、ワイルドカードが有効になります。指定しないと完全一致モード（既定値0）で動くため、<code>*</code>や<code>?</code>が文字列として扱われてしまいます。</p>



<p class="wp-block-paragraph">書き換え時にこの引数を忘れがちなので注意してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc19">INDEX/MATCHが真価を発揮する3つの場面</span></h2>



<p class="wp-block-paragraph">「INDEX/MATCHは古い・複雑そう」と敬遠されがちですが、3つの場面では今でも最強の選択肢です。</p>



<h3 class="wp-block-heading"><span id="toc20">場面1：左方向検索（部署名から社員IDを引く）</span></h3>



<p class="wp-block-paragraph">A列に社員ID、B列に氏名、C列に部署という名簿で、「営業部の社員IDを取り出したい」場合を考えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（社員ID）</th><th>B列（氏名）</th><th>C列（部署）</th></tr></thead><tbody><tr><td>E001</td><td>山田太郎</td><td>営業部</td></tr><tr><td>E002</td><td>鈴木花子</td><td>経理部</td></tr><tr><td>E003</td><td>佐藤次郎</td><td>総務部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>INDEX/MATCH</strong></p>



<pre class="wp-block-code"><code>=INDEX(A:A, MATCH(&quot;営業部&quot;, C:C, 0))</code></pre>



<p class="wp-block-paragraph">MATCHで「営業部」がC列の何行目にあるかを調べ、その行のA列の値をINDEXで取り出します。MATCHの第3引数「0」は完全一致を意味します。</p>



<p class="wp-block-paragraph">XLOOKUPでも同じことができますが、INDEX/MATCHは「検索列と返す列を完全に独立して指定する」発想なので、表構造の柔軟性ではINDEX/MATCHのほうが一枚上手です。</p>



<h3 class="wp-block-heading"><span id="toc21">場面2：2次元検索（行×列キーで値を特定）</span></h3>



<p class="wp-block-paragraph">月別×支店別の売上クロス集計表から、「5月の大阪支店の売上」を取り出す場合です。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>4月</th><th>5月</th><th>6月</th></tr></thead><tbody><tr><td>東京</td><td>500</td><td>600</td><td>550</td></tr><tr><td>大阪</td><td>400</td><td>450</td><td>480</td></tr><tr><td>名古屋</td><td>300</td><td>350</td><td>320</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">シート上のA1:D4にこの表があるとします。F2に「大阪」、G2に「5月」が入力されている前提です。</p>



<p class="wp-block-paragraph"><strong>INDEX/MATCH/MATCH</strong></p>



<pre class="wp-block-code"><code>=INDEX(B2:D4, MATCH(F2, A2:A4, 0), MATCH(G2, B1:D1, 0))</code></pre>



<ul class="wp-block-list"><li>1つ目のMATCHで「大阪」が行のどこにあるか（2行目）を調べる</li><li>2つ目のMATCHで「5月」が列のどこにあるか（2列目）を調べる</li><li>INDEXで「2行目・2列目」の値である450を返す</li></ul>



<p class="wp-block-paragraph"><strong>XLOOKUPで書くと（入れ子になる）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A2:A4, XLOOKUP(G2, B1:D1, B2:D4))</code></pre>



<p class="wp-block-paragraph">XLOOKUPでも書けますが、内側のXLOOKUPが配列を返し、それを外側のXLOOKUPが処理する構造で、慣れていないと読みにくいです。INDEX/MATCH/MATCHのほうが「行を決める→列を決める→値を取る」という発想がそのまま数式に表れていて、可読性が高いです。</p>



<h3 class="wp-block-heading"><span id="toc22">場面3：Excel互換性が必要な複雑な検索</span></h3>



<p class="wp-block-paragraph">「Excel 2016を使う取引先と共有するが、左方向検索も必要」という板挟みの状況では、INDEX/MATCH一択になります。XLOOKUPはExcel 2016では#NAME?エラー、VLOOKUPは左方向検索ができないため、両方の制約を満たせるのはINDEX/MATCHだけです。</p>



<p class="wp-block-paragraph">特に経理・人事系のテンプレートはExcelで作られていることが多いので、その業務領域ではINDEX/MATCHを覚えておく価値が高いですよ。</p>



<h2 class="wp-block-heading"><span id="toc23">検索関数で頻出する#N/A・#REF!・#VALUE!エラーの対処法</span></h2>



<p class="wp-block-paragraph">検索関数を使っていると遭遇する3大エラーと、それぞれの対処法をまとめます。</p>



<h3 class="wp-block-heading"><span id="toc24">#N/Aエラー（一致する値が見つからない）</span></h3>



<p class="wp-block-paragraph">最も多く遭遇するのが#N/Aです。検索キーが範囲内に存在しない場合に表示されます。</p>



<p class="wp-block-paragraph"><strong>対処法1: IFERROR で全エラーを処理</strong></p>



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



<p class="wp-block-paragraph">ただしIFERRORは#N/A以外のエラー（#REF!や#VALUE!）も同じ「該当なし」に置き換えてしまうため、数式のバグを見逃すリスクがあります。</p>



<p class="wp-block-paragraph"><strong>対処法2: IFNA で #N/A のみ処理（推奨）</strong></p>



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



<p class="wp-block-paragraph">IFNAは#N/Aだけを処理し、他のエラーはそのまま表示します。バグに気づきやすくなるため、こちらの方が安全です。</p>



<p class="wp-block-paragraph"><strong>対処法3: XLOOKUP の第4引数（最もシンプル）</strong></p>



<pre class="wp-block-code"><code>=XLOOKUP(F2, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">XLOOKUPなら第4引数を指定するだけで完結します。</p>



<p class="wp-block-paragraph">3つの方法を比較すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>方式</th><th>数式の長さ</th><th>#N/A以外のエラー</th><th>デバッグ</th></tr></thead><tbody><tr><td>IFERROR</td><td>長い</td><td>隠れる（危険）</td><td>しにくい</td></tr><tr><td>IFNA</td><td>やや長い</td><td>表示される</td><td>しやすい</td></tr><tr><td>XLOOKUP第4引数</td><td>短い</td><td>表示される</td><td>しやすい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">XLOOKUPが使える状況ならXLOOKUP第4引数方式、VLOOKUP/INDEX/MATCHならIFNAを使うのが鉄板です。IFERROR/IFNAの詳しい使い分けは<a href="https://mashukabu.com/sheets-if-ifs-iferror-ifna/">スプレッドシートのIF・IFS・IFERROR・IFNAの使い分けガイド</a>も参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc25">#REF!エラー（参照範囲が無効）</span></h3>



<p class="wp-block-paragraph">#REF!は「参照しているセルや列が削除された」「数式の参照範囲が無効になった」場合に発生します。</p>



<p class="wp-block-paragraph">検索関数で発生する典型ケース:</p>



<ul class="wp-block-list"><li>VLOOKUPの範囲内の列を削除した</li><li>別シート参照の元シートを削除した</li><li>スピル範囲が他のセルとぶつかった（XLOOKUPの複数列返却時）</li></ul>



<p class="wp-block-paragraph">対処は「数式の参照を見直す」のが基本です。エラーを覆い隠さず、原因を特定してから修正しましょう。</p>



<h3 class="wp-block-heading"><span id="toc26">#VALUE!エラー（引数の型が不正）</span></h3>



<p class="wp-block-paragraph">#VALUE!は「数値が必要な引数に文字列を入れた」など、引数の型が合わない場合に発生します。</p>



<p class="wp-block-paragraph">検索関数での典型ケース:</p>



<ul class="wp-block-list"><li>VLOOKUPの第3引数（列番号）に数値ではなく文字列を入れた</li><li>検索キーのセルに半角全角の混在がある（見た目が同じでも別物と判定される）</li><li>数値が文字列として保存されている（セルの左上に緑の三角マークが出る）</li></ul>



<p class="wp-block-paragraph">検索キー側と検索範囲側で、数値と文字列の型が一致しているかをまず確認しましょう。</p>



<h2 class="wp-block-heading"><span id="toc27">ケース別おすすめパターン集（実務シーン6選）</span></h2>



<p class="wp-block-paragraph">実務でよくある6つのシーンで、どの関数を選ぶべきかを整理しました。</p>



<h3 class="wp-block-heading"><span id="toc28">シーン1：商品マスタから単価を引いてくる（請求書作成など）</span></h3>



<p class="wp-block-paragraph">検索キー（商品コード）が左端にあり、右側の単価を返すだけのシンプルなケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（短くて読みやすい）</li><li><strong>Excel共有あり</strong>: VLOOKUP（互換性最優先）</li></ul>



<h3 class="wp-block-heading"><span id="toc29">シーン2：社員名簿から氏名・部署を一度に取り出す（人事系資料）</span></h3>



<p class="wp-block-paragraph">社員IDから氏名・部署を引く定番パターン。複数列返却が必要な場面です。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（スピル機能で1数式にまとめられる）</li><li><strong>Excel共有あり</strong>: VLOOKUP（列数だけ数式を書く）</li></ul>



<h3 class="wp-block-heading"><span id="toc30">シーン3：部署名から代表者の社員IDを逆引きする</span></h3>



<p class="wp-block-paragraph">返したい列（社員ID）が、検索したい列（部署）より左にある左方向検索ケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP または INDEX/MATCH</li><li><strong>Excel共有あり（古いExcel含む）</strong>: INDEX/MATCH一択</li></ul>



<h3 class="wp-block-heading"><span id="toc31">シーン4：月×支店のクロス集計から値を取り出す</span></h3>



<p class="wp-block-paragraph">行と列の両方でキー指定が必要な2次元検索ケース。</p>



<ul class="wp-block-list"><li><strong>どの場面でも</strong>: INDEX/MATCH/MATCH（最も読みやすい）</li></ul>



<h3 class="wp-block-heading"><span id="toc32">シーン5：取引先名を「あいまい検索」で引く</span></h3>



<p class="wp-block-paragraph">「株式会社」をつけ忘れた取引先名でも引きたい場合のワイルドカード検索ケース。</p>



<ul class="wp-block-list"><li><strong>Excel共有なし</strong>: XLOOKUP（第5引数に2を指定）</li><li><strong>Excel共有あり</strong>: VLOOKUP（完全一致モードで<code>*</code>や<code>?</code>が使える）</li></ul>



<h3 class="wp-block-heading"><span id="toc33">シーン6：Excel 2016と共有しつつ左方向検索が必要</span></h3>



<p class="wp-block-paragraph">互換性と機能制約のダブルパンチ。INDEX/MATCH一択です。</p>



<ul class="wp-block-list"><li><strong>どの場面でも</strong>: INDEX/MATCH（XLOOKUPは#NAME?、VLOOKUPは方向制限）</li></ul>



<p class="wp-block-paragraph">迷ったらこの6シーンを思い出してみてください。実務の8割はこれでカバーできるはずですよ。</p>



<h2 class="wp-block-heading"><span id="toc34">まとめ｜スプレッドシートでの検索関数ベストプラクティス</span></h2>



<p class="wp-block-paragraph">Googleスプレッドシートの3つの検索関数を改めてまとめます。</p>



<ul class="wp-block-list"><li><strong>XLOOKUP</strong>: Excelとのファイル共有が不要なら第一候補。シンプルな構文と第4引数によるエラー処理、複数列のスピル返却が強みです</li><li><strong>VLOOKUP</strong>: Excelとの互換性を最優先する場面や、既存数式を大量に抱えているときに有効です</li><li><strong>INDEX/MATCH</strong>: 左方向検索・2次元検索・Excel互換性が同時に必要な場面での最強の組み合わせです</li></ul>



<p class="wp-block-paragraph">まずは「Excelファイル共有が必要かどうか」を判定基準の最上位に置きましょう。共有が不要ならXLOOKUPで統一、共有が必要ならVLOOKUPまたはINDEX/MATCHに切り替える、という指針で迷いが激減します。</p>



<p class="wp-block-paragraph">そのうえで、左方向検索や2次元検索といった「特殊な検索パターン」が出てきたら、INDEX/MATCHを取り出してくる、というのが実務の鉄板フローです。</p>



<p class="wp-block-paragraph">各関数の詳細な使い方は以下の記事で解説しています。本記事と合わせてご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/sheets-vlookup-guide/">スプレッドシートのVLOOKUP完全ガイド｜基本から応用まで使い方を解説</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方｜INDEX+MATCHで左側も検索できる</a></li></ul>



<p class="wp-block-paragraph">ExcelでもVLOOKUP・XLOOKUP・INDEX/MATCHを比較したい方は、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">Excel版の使い分けガイド</a>もあわせてご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/sheets-vlookup-xlookup-index-match/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのLOOKUP関数の使い方｜VLOOKUPとの違い</title>
		<link>https://mashukabu.com/excel-function-howto-use-lookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-lookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:52 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[HLOOKUP]]></category>
		<category><![CDATA[LOOKUP関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[ベクトル形式]]></category>
		<category><![CDATA[引き継ぎ]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[近似一致]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5918</guid>

					<description><![CDATA[ExcelのLOOKUP関数の基本構文（ベクトル形式・配列形式）から、VLOOKUPやXLOOKUPとの違い、昇順ルールと近似一致の動作、引き継いだファイルの読み解き方まで実務目線で解説。古いExcelファイルに含まれるLOOKUP関数を正確に理解できます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「引き継いだExcelファイルにLOOKUP関数が入っていたけど、VLOOKUPとどう違うの？」と戸惑った経験はありませんか。LOOKUPはVLOOKUPよりも古くからある検索関数です。今でも社内ファイルのなかで現役で動いています。ただ、引数の書き方がVLOOKUPと異なるため、初めて見ると読み解きにくいですよね。</p>



<p class="wp-block-paragraph">この記事では、ExcelのLOOKUP関数の基本構文から、VLOOKUPやXLOOKUPとの違いまで解説します。「今さら覚える必要があるのか」という疑問にも最初に答えますよ。読み終えるころには、LOOKUP関数の数式を自信を持って読めるようになるはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong><br>&#8211; 引き継いだファイルのLOOKUP関数を読み解きたい人<br>&#8211; VLOOKUPとLOOKUPの違いを整理したい人<br>&#8211; LOOKUP・VLOOKUP・XLOOKUPの使い分けを知りたい人</p></blockquote>




  <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">ExcelのLOOKUP関数とは：まず3関数の立ち位置を整理する</a><ol><li><a href="#toc2" tabindex="0">LOOKUP・VLOOKUP・XLOOKUPの違いを一言で</a></li><li><a href="#toc3" tabindex="0">LOOKUP関数はいつから存在するのか</a></li></ol></li><li><a href="#toc4" tabindex="0">LOOKUP関数の書き方【ベクトル形式】</a><ol><li><a href="#toc5" tabindex="0">基本構文と3つの引数の意味</a></li><li><a href="#toc6" tabindex="0">昇順ルールとは：昇順でないと正しい値が返らない理由</a></li><li><a href="#toc7" tabindex="0">使用例：社員番号から氏名を取り出す</a></li></ol></li><li><a href="#toc8" tabindex="0">LOOKUP関数の書き方【配列形式】</a><ol><li><a href="#toc9" tabindex="0">配列形式の構文（引数2つ）</a></li><li><a href="#toc10" tabindex="0">配列形式が使われる場面と現在の推奨度</a></li></ol></li><li><a href="#toc11" tabindex="0">VLOOKUP・XLOOKUPと何が違うのか：3関数比較</a><ol><li><a href="#toc12" tabindex="0">LOOKUP近似一致 vs VLOOKUP近似一致（動作差分）</a></li></ol></li><li><a href="#toc13" tabindex="0">LOOKUP関数が今でも使われている場面</a><ol><li><a href="#toc14" tabindex="0">近似一致ランク判定の実例：評価区分を昇順マスタで自動判定</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#N/Aエラーの原因と対処</a></li><li><a href="#toc17" tabindex="0">想定外の近似値が返るケース：昇順ルール違反</a></li></ol></li><li><a href="#toc18" tabindex="0">まとめ：今から書くならXLOOKUP、古いファイルはLOOKUPで読む</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのLOOKUP関数とは：まず3関数の立ち位置を整理する</span></h2>



<h3 class="wp-block-heading"><span id="toc2">LOOKUP・VLOOKUP・XLOOKUPの違いを一言で</span></h3>



<p class="wp-block-paragraph">LOOKUP（ルックアップ）は「指定した値を検索して、対応する値を返す」関数です。名前の由来はそのまま「Look Up＝探す」ですね。</p>



<p class="wp-block-paragraph">Excelの検索関数にはLOOKUP・VLOOKUP・XLOOKUPの3つがあります。それぞれの位置づけを一言でまとめると次のとおりです。</p>



<ul class="wp-block-list"><li><strong>LOOKUP</strong>: 最も古い検索関数。引数が少なくシンプルだが、近似一致しかできない</li><li><strong>VLOOKUP</strong>: LOOKUPの後継。完全一致・近似一致を切り替えられる。全バージョン対応</li><li><strong>XLOOKUP</strong>: 最新の検索関数。検索方向の制約がなく最も柔軟。Excel 2021／Microsoft 365以降</li></ul>



<p class="wp-block-paragraph">結論から言うと、<strong>新しい数式を書くならXLOOKUPかVLOOKUPがおすすめ</strong>です。ただし古いファイルにLOOKUPが残っているケースは多いので、「読めるようにしておく」ことが大切ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">LOOKUP関数はいつから存在するのか</span></h3>



<p class="wp-block-paragraph">LOOKUP関数はExcelの初期バージョンから搭載されている互換関数です。Excel 2016からMicrosoft 365まで、すべてのバージョンで使えます。</p>



<p class="wp-block-paragraph">VLOOKUPやHLOOKUPが登場する前から存在しています。古い社内テンプレートや引き継ぎファイルでよく見かけますよ。「見たことない関数が入っている」と感じたら、このLOOKUPである可能性が高いです。</p>



<h2 class="wp-block-heading"><span id="toc4">LOOKUP関数の書き方【ベクトル形式】</span></h2>



<p class="wp-block-paragraph">LOOKUP関数には「ベクトル形式」と「配列形式」の2種類があります。実務で使われるのはほとんどベクトル形式です。まずはこちらから解説しますね。</p>



<h3 class="wp-block-heading"><span id="toc5">基本構文と3つの引数の意味</span></h3>



<p class="wp-block-paragraph">ベクトル形式の構文はこちらです。</p>



<pre class="wp-block-code"><code>=LOOKUP(検索値, 検索範囲, [結果範囲])</code></pre>



<p class="wp-block-paragraph">引数は最大3つです。VLOOKUPの4つに比べて少ないのが特徴です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th><th>指定例</th></tr></thead><tbody><tr><td>検索値</td><td>必須</td><td>探したい値</td><td>A2</td></tr><tr><td>検索範囲</td><td>必須</td><td>検索する1行または1列の範囲</td><td>B2:B10</td></tr><tr><td>結果範囲</td><td>省略可</td><td>結果を返す1行または1列の範囲</td><td>C2:C10</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VLOOKUPでは「表全体」を範囲に指定します。一方LOOKUPでは「検索する列」と「結果を返す列」を別々に指定します。この仕組みのおかげで、検索列が左端にない表でも使えるのがLOOKUPの利点です。</p>



<h3 class="wp-block-heading"><span id="toc6">昇順ルールとは：昇順でないと正しい値が返らない理由</span></h3>



<p class="wp-block-paragraph">LOOKUP関数を使うとき、最も重要なルールが1つあります。<strong>検索範囲のデータは必ず昇順に並んでいなければなりません</strong>。</p>



<p class="wp-block-paragraph">VLOOKUPには「検索の型」という引数があります。完全一致（FALSE）と近似一致（TRUE）を選べます。しかしLOOKUP関数にはこの引数がありません。常に近似一致で動作します。</p>



<p class="wp-block-paragraph">近似一致とは、検索値とぴったり一致する値がない場合に、<strong>検索値を超えない最大の値</strong>を返す仕組みです。この動作はデータが昇順に並んでいることが前提です。</p>



<p class="wp-block-paragraph">昇順になっていないデータにLOOKUPを使うと、誤った値が返ることがあります。引き継いだファイルでLOOKUP関数を見かけたら、まず検索範囲が昇順かどうかを確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc7">使用例：社員番号から氏名を取り出す</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>1001</td><td>田中太郎</td></tr><tr><td>1002</td><td>佐藤花子</td></tr><tr><td>1003</td><td>鈴木一郎</td></tr><tr><td>1004</td><td>高橋美咲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">社員番号1003の氏名を取り出すには、次のように書きます。</p>



<pre class="wp-block-code"><code>=LOOKUP(1003, A2:A5, B2:B5)</code></pre>



<p class="wp-block-paragraph">結果は「鈴木一郎」です。A列（検索範囲）が昇順に並んでいるので、正しく動作します。</p>



<p class="wp-block-paragraph">もし社員番号1005（存在しない値）を検索するとどうなるでしょうか。</p>



<pre class="wp-block-code"><code>=LOOKUP(1005, A2:A5, B2:B5)</code></pre>



<p class="wp-block-paragraph">結果は「高橋美咲」です。1005を超えない最大値は1004なので、1004に対応する値が返ります。完全一致ではなく近似一致で動作する点に注意してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc8">LOOKUP関数の書き方【配列形式】</span></h2>



<h3 class="wp-block-heading"><span id="toc9">配列形式の構文（引数2つ）</span></h3>



<p class="wp-block-paragraph">LOOKUP関数にはもう一つ「配列形式」があります。引数は2つだけです。</p>



<pre class="wp-block-code"><code>=LOOKUP(検索値, 配列)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>意味</th></tr></thead><tbody><tr><td>検索値</td><td>必須</td><td>探したい値</td></tr><tr><td>配列</td><td>必須</td><td>検索と結果を含むセル範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">配列形式では、指定した範囲の形状によって動作が変わります。</p>



<ul class="wp-block-list"><li><strong>縦長または正方形の範囲</strong>: 最初の列で検索し、最後の列の値を返す</li><li><strong>横長の範囲</strong>: 最初の行で検索し、最後の行の値を返す</li></ul>



<h3 class="wp-block-heading"><span id="toc10">配列形式が使われる場面と現在の推奨度</span></h3>



<p class="wp-block-paragraph">配列形式はVLOOKUPやHLOOKUPで代替できます。Microsoftも互換性維持のための形式と位置づけています。新しくこの形式を使う必要はほとんどありません。</p>



<p class="wp-block-paragraph">古いファイルで引数が2つだけのLOOKUP関数を見かけたら、「配列形式だな」と判断できます。検索範囲と結果範囲が1つの配列にまとまっているだけです。やっていること自体はベクトル形式と同じですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">VLOOKUP・XLOOKUPと何が違うのか：3関数比較</span></h2>



<p class="wp-block-paragraph">LOOKUPとVLOOKUP、XLOOKUPの違いを表で整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>LOOKUP</th><th>VLOOKUP</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>引数の数</td><td>2〜3個</td><td>4個（必須3）</td><td>3〜6個</td></tr><tr><td>検索方向</td><td>縦・横を自動判定</td><td>縦方向のみ</td><td>縦・横どちらも対応</td></tr><tr><td>一致モード</td><td>近似一致のみ</td><td>完全一致／近似一致を選択</td><td>完全一致／近似一致／ワイルドカード等</td></tr><tr><td>検索列の制約</td><td>なし（検索と結果を独立指定）</td><td>検索列は範囲の左端のみ</td><td>なし（自由に指定可）</td></tr><tr><td>昇順必須</td><td>常に必須</td><td>近似一致（TRUE）のときだけ必須</td><td>不要</td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>全バージョン</td><td>Excel 2021／Microsoft 365</td></tr><tr><td>現在の推奨度</td><td>低（読み取り用途）</td><td>中（互換性が必要な環境）</td><td>高（新規作成の第一候補）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">LOOKUP近似一致 vs VLOOKUP近似一致（動作差分）</span></h3>



<p class="wp-block-paragraph">LOOKUPとVLOOKUP（第4引数TRUE）はどちらも近似一致で動作します。ただし使い勝手に違いがあります。</p>



<pre class="wp-block-code"><code>' LOOKUP — 検索の型を指定する引数がない（常に近似一致）
=LOOKUP(75, A2:A5, B2:B5)

' VLOOKUP — 第4引数TRUEで近似一致を明示
=VLOOKUP(75, A2:B5, 2, TRUE)</code></pre>



<p class="wp-block-paragraph">LOOKUPは「完全一致モードがない」のが最大の違いです。VLOOKUPなら第4引数をFALSEにすれば完全一致検索ができます。LOOKUPにはその切り替えがありません。</p>



<p class="wp-block-paragraph">一方でLOOKUPには独自の利点もあります。検索範囲と結果範囲を別々に指定できるので、検索列が左端にない表でも対応できます。VLOOKUPの「検索列が左端になければ使えない」という制約に縛られません。</p>



<p class="wp-block-paragraph">それぞれの関数について詳しく知りたい方は、以下の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li>VLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-vlookup/">ExcelのVLOOKUP関数の使い方</a></li><li>XLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">ExcelのXLOOKUP関数の使い方</a></li><li>HLOOKUPの使い方: <a href="https://mashukabu.com/excel-function-howto-use-hlookup/">ExcelのHLOOKUP関数の使い方</a></li><li>検索関数の選び方: <a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX+MATCHの違いと使い分け</a></li></ul>



<h2 class="wp-block-heading"><span id="toc13">LOOKUP関数が今でも使われている場面</span></h2>



<p class="wp-block-paragraph">「わざわざLOOKUPを使う場面なんてあるの？」と思うかもしれません。実は、近似一致の特性を活かしたランク判定で今でも使われているケースがあります。</p>



<h3 class="wp-block-heading"><span id="toc14">近似一致ランク判定の実例：評価区分を昇順マスタで自動判定</span></h3>



<p class="wp-block-paragraph">テストの点数に応じてA〜Dの評価をつけたい場面を考えてみましょう。次のような基準表を用意します。</p>



<figure class="wp-block-table"><table><thead><tr><th>D列（点数の下限）</th><th>E列（評価）</th></tr></thead><tbody><tr><td>0</td><td>D</td></tr><tr><td>60</td><td>C</td></tr><tr><td>70</td><td>B</td></tr><tr><td>80</td><td>A</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">点数が75のとき、評価を自動で判定する数式がこちらです。</p>



<pre class="wp-block-code"><code>=LOOKUP(75, D2:D5, E2:E5)</code></pre>



<p class="wp-block-paragraph">結果は「B」です。75は70以上80未満なので、70に対応する「B」が返ります。</p>



<p class="wp-block-paragraph">この数式が動く仕組みは、LOOKUP関数の近似一致です。検索値75を超えない最大値（70）を見つけて、対応する結果を返しています。</p>



<p class="wp-block-paragraph">同じことはVLOOKUP(75, D2:E5, 2, TRUE)でも実現できます。ただしLOOKUPは検索列と結果列を独立して指定できるので、基準表のレイアウトを自由に組めますよ。古いファイルでこのパターンを見かけたら、「ランク判定をしているんだな」と読み解けるはずです。</p>



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



<h3 class="wp-block-heading"><span id="toc16">#N/Aエラーの原因と対処</span></h3>



<p class="wp-block-paragraph">LOOKUP関数で最も多いエラーが#N/Aです。主な原因は次の2つです。</p>



<ul class="wp-block-list"><li><strong>検索値が検索範囲の最小値より小さい</strong>: 検索範囲が{60, 70, 80}のとき、検索値30を指定すると#N/Aになります。近似一致では「検索値を超えない最大値」を探しますが、最小値60より小さい値には候補がないためです</li><li><strong>検索範囲が空、または指定が間違っている</strong>: 範囲の指定ミスで空のセルを参照しているケースも原因になります</li></ul>



<p class="wp-block-paragraph">対処法としては、検索範囲の先頭に十分小さい値を追加しておくと安心です。</p>



<pre class="wp-block-code"><code>' 検索範囲の先頭に0を追加してエラーを防ぐ
=LOOKUP(30, {0,60,70,80}, {&quot;対象外&quot;,&quot;C&quot;,&quot;B&quot;,&quot;A&quot;})</code></pre>



<h3 class="wp-block-heading"><span id="toc17">想定外の近似値が返るケース：昇順ルール違反</span></h3>



<p class="wp-block-paragraph">「エラーは出ないけど、返ってくる値がおかしい」というケースもあります。ほとんどの場合、検索範囲が昇順に並んでいないことが原因です。</p>



<p class="wp-block-paragraph">LOOKUP関数はバイナリサーチ（二分探索）という方法でデータを検索します。昇順を前提としたアルゴリズムです。データの順序が乱れると、検索の途中で間違った位置を見てしまいます。</p>



<p class="wp-block-paragraph">対処法は次の2つです。</p>



<ul class="wp-block-list"><li>検索範囲のデータを昇順に並べ替える</li><li>完全一致が必要な場合はVLOOKUP（第4引数FALSE）やXLOOKUPに書き換える</li></ul>



<p class="wp-block-paragraph">引き継いだファイルで結果がおかしいと感じたら、まず検索範囲のソート順を確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc18">まとめ：今から書くならXLOOKUP、古いファイルはLOOKUPで読む</span></h2>



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



<ul class="wp-block-list"><li>LOOKUP関数はExcelの初期から搭載されている検索関数。引数は2〜3個でシンプル</li><li>ベクトル形式（検索範囲と結果範囲を別々に指定）が実務の主流</li><li><strong>常に近似一致で動作する</strong>ため、検索範囲は必ず昇順に並べておく</li><li>VLOOKUPとの最大の違いは「完全一致モードがないこと」と「検索列の位置が自由なこと」</li><li>新しく数式を書くなら<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP</a>が最適。LOOKUPは「古いファイルを読み解くため」に知っておくと安心</li></ul>



<p class="wp-block-paragraph">LOOKUP関数を新規で使う場面は限られます。ただし引き継いだファイルに入っていることは珍しくありません。この記事で解説した構文と近似一致の動作を押さえておけば、いざというときに慌てずに対応できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-lookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのHLOOKUP関数の使い方｜横方向検索の基本と応用</title>
		<link>https://mashukabu.com/spreadsheet-hlookup-function/</link>
					<comments>https://mashukabu.com/spreadsheet-hlookup-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:26 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[HLOOKUP]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[横方向検索]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4664</guid>

					<description><![CDATA[スプレッドシートのHLOOKUP関数の使い方を基本から解説。横方向の表から値を取得する構文・引数の意味、VLOOKUPとの違い、#N/Aエラーの対処法まで実務で使えるサンプルつきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「月ごとに横に並んだ表から、特定の月の値を取り出したい」。スプレッドシートを使っていると、こんな場面に出会いますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>は縦方向の検索には強いですが、横方向のデータには対応していません。</p>



<p class="wp-block-paragraph">そんなときに活躍するのがHLOOKUP関数です。この記事では基本の書き方からVLOOKUPとの違い、エラー対処まで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのHLOOKUP関数とは？</a></li><li><a href="#toc2" tabindex="0">HLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">「並べ替え済み」（FALSE / TRUE）の使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">HLOOKUP関数の基本的な使い方</a></li><li><a href="#toc7" tabindex="0">HLOOKUP関数の実践的な使い方・応用例</a><ol><li><a href="#toc8" tabindex="0">月別データから特定月の値を取得する</a></li><li><a href="#toc9" tabindex="0">IFERROR関数と組み合わせてエラーを回避する</a></li><li><a href="#toc10" tabindex="0">別シートのデータを横方向に検索する</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">#N/Aエラー</a></li><li><a href="#toc13" tabindex="0">#REF!エラー</a></li><li><a href="#toc14" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc15" tabindex="0">間違った値が返る</a></li></ol></li><li><a href="#toc16" tabindex="0">VLOOKUPとの違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">どちらを使うべき？</a></li></ol></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">スプレッドシートのHLOOKUP関数とは？</span></h2>



<p class="wp-block-paragraph">HLOOKUP関数（読み方: エイチルックアップ関数）は、範囲の上端行を横方向に検索する関数です。一致した列から、指定した行の値を返してくれます。</p>



<p class="wp-block-paragraph">名前はHorizontal（水平）+ Lookup（検索）が由来です。「月名から売上を引っ張る」「支店名から経費を取得する」。こうした横方向の表引きを数式1つで片付けてくれます。</p>



<p class="wp-block-paragraph">ポイントは<strong>検索する行が範囲の上端（1行目）にある</strong>ことです。上端以外の行で検索したい場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討してください。</p>



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



<ul class="wp-block-list"><li>横方向に並んだ表から値を自動取得する</li><li>月別・支店別など横向きのデータを検索する</li><li>近似一致で料金ランク・成績判定を行う</li><li>ワイルドカードで部分一致検索をする</li></ul>



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



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



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



<p class="wp-block-paragraph">HLOOKUP関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=HLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])</code></pre>



<p class="wp-block-paragraph">引数は4つあります。最後の「並べ替え済み」だけ省略できます。</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><th>指定例</th></tr></thead><tbody><tr><td>検索キー</td><td>必須</td><td>上端行から探したい値。セル参照が一般的</td><td>&#8220;4月&#8221;</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象の表。上端行に検索キーを含むこと</td><td>B1:M3</td></tr><tr><td>番号</td><td>必須</td><td>上端行から数えて何行目を返すか（1以上）</td><td>2</td></tr><tr><td>並べ替え済み</td><td>省略可</td><td>FALSE = 完全一致 / TRUE = 近似一致</td><td>FALSE</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>Excelでは「検索値・行番号・検索の型」と呼びますが、スプレッドシートでは「検索キー・番号・並べ替え済み」です。動作は同じなので、Excel経験者はそのまま読み替えてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">「並べ替え済み」（FALSE / TRUE）の使い分け</span></h3>



<p class="wp-block-paragraph">ここがHLOOKUPでつまずきやすい部分です。</p>



<p class="wp-block-paragraph"><strong>FALSE（完全一致）</strong> は、検索キーとぴったり一致するデータだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーになります。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;4月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph"><strong>TRUE（近似一致）</strong> は、検索キー以下の最大値を返します。スコア帯やランク判定に使います。ただし上端行が昇順ソートされていることが前提です。</p>



<pre class="wp-block-code"><code>=HLOOKUP(A2, B1:F3, 2, TRUE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「並べ替え済み」を省略するとデフォルトはTRUEです。「なぜか変な値が返る」の原因は、たいていこの省略です。迷ったらFALSEを明示してください。</p></blockquote>



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



<p class="wp-block-paragraph">支店別の売上データから、特定の支店の値を取り出す例で見てみましょう。</p>



<p class="wp-block-paragraph">次のような横方向の表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>東京</td><td>大阪</td><td>名古屋</td><td>福岡</td></tr><tr><td>2</td><td>売上</td><td>500</td><td>350</td><td>280</td><td>200</td></tr><tr><td>3</td><td>経費</td><td>120</td><td>80</td><td>65</td><td>50</td></tr><tr><td>4</td><td>利益</td><td>380</td><td>270</td><td>215</td><td>150</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<p class="wp-block-paragraph">東京の利益（380）を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, B1:E4, 4, FALSE)</code></pre>



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



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



<ul class="wp-block-list"><li>&#8220;東京&#8221;: 検索キー（上端行から「東京」を探す）</li><li>B1:E4: 範囲（支店データ全体）</li><li>4: 上端行から4行目（利益の行）を返す</li><li>FALSE: 完全一致で検索</li></ul>



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



<p class="wp-block-paragraph">行番号を「2」に変えれば売上（500）が返ります。「3」にすれば経費（120）を取得できますよ。</p>



<p class="wp-block-paragraph">セル参照を使うこともできます。G1セルに支店名が入力されている場合は、こう書けます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(G1, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">G1の値を変更するだけで、取得する支店を切り替えられます。</p>



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



<h3 class="wp-block-heading"><span id="toc8">月別データから特定月の値を取得する</span></h3>



<p class="wp-block-paragraph">実務では、月別に横方向に並んだ集計表をよく見かけますよね。こういったデータからHLOOKUP関数で特定の月の値を取り出せます。</p>



<p class="wp-block-paragraph">次のような月別売上表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>&#8230;</th><th>M</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>1月</td><td>2月</td><td>3月</td><td>&#8230;</td><td>12月</td></tr><tr><td>2</td><td>売上</td><td>100</td><td>120</td><td>150</td><td>&#8230;</td><td>200</td></tr><tr><td>3</td><td>目標</td><td>110</td><td>110</td><td>140</td><td>&#8230;</td><td>190</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3月の売上を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">結果は「150」です。番号を3にすれば、目標値（140）を取得できます。</p>



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



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



<p class="wp-block-paragraph">HLOOKUP関数で検索キーが見つからないと、#N/Aエラーが表示されます。報告資料で見栄えが悪いですし、後続の計算にも影響します。</p>



<p class="wp-block-paragraph">IFERROR関数（エラー時に別の値を返す関数）で囲めば解決です。</p>



<pre class="wp-block-code"><code>=IFERROR(HLOOKUP(&quot;札幌&quot;, B1:E4, 4, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">検索キーが見つからない場合に「該当なし」と表示されます。空文字「&#8221;&#8221;」を指定するケースも多いです。</p>



<h3 class="wp-block-heading"><span id="toc10">別シートのデータを横方向に検索する</span></h3>



<p class="wp-block-paragraph">検索先が別シートにある場合は、シート名のあとに「!」をつけて範囲を指定します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, マスタ!B1:E4, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">シート名に空白を含む場合はシングルクォーテーションで囲みます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京&quot;, '売上 マスタ'!B1:E4, 2, FALSE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>別シートの範囲をマウスで選択すると、シート名と「!」が自動入力されます。手入力よりミスが減るのでおすすめです。</p></blockquote>



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



<p class="wp-block-paragraph">HLOOKUP関数を使っていると、思わぬエラーに遭遇することがあります。エラーの種類別に原因と対処法を整理しました。</p>



<h3 class="wp-block-heading"><span id="toc12">#N/Aエラー</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>データを追加するかIFERRORで対処</td></tr><tr><td>データ型の不一致</td><td>数値と文字列が混在していないか</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で型を統一</td></tr><tr><td>余分なスペース</td><td>見えない空白が入っていないか</td><td><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で除去</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">行番号が範囲の行数を超えているときに出ます。</p>



<p class="wp-block-paragraph">たとえば範囲がB1:E3の3行なのに、番号に4を指定した場合です。範囲の行数を確認して、番号が範囲内に収まるよう修正してください。</p>



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



<p class="wp-block-paragraph">番号に1未満の数値や文字列を指定したときに出ます。番号には必ず1以上の整数を指定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">間違った値が返る</span></h3>



<p class="wp-block-paragraph">エラーにはならないのに期待と違う値が返る。これが一番やっかいなケースです。</p>



<p class="wp-block-paragraph">最も多い原因は「並べ替え済みを省略してTRUEになっている」パターンです。FALSEを明示すれば解決します。</p>



<p class="wp-block-paragraph">もう1つは範囲の上端行が検索対象と一致していないケースです。範囲の開始行を見直してみてください。</p>



<h2 class="wp-block-heading"><span id="toc16">VLOOKUPとの違い・使い分け</span></h2>



<p class="wp-block-paragraph">HLOOKUP関数とよく比較される検索関数との違いを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>HLOOKUP</th><th>VLOOKUP</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>検索方向</td><td>横方向（行）</td><td>縦方向（列）</td><td>縦横両方向</td></tr><tr><td>検索位置</td><td>上端行のみ</td><td>左端列のみ</td><td>任意の範囲</td></tr><tr><td>デフォルトの一致方式</td><td>近似一致（TRUE）</td><td>近似一致（TRUE）</td><td>完全一致</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>IFERROR必要</td><td>引数で指定可</td></tr></tbody></table></figure>



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



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



<ul class="wp-block-list"><li><strong>データが横方向に並んでいる</strong> → HLOOKUP関数</li><li><strong>データが縦方向に並んでいる</strong> → <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a></li><li><strong>縦横どちらにも対応したい</strong> → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a></li></ul>



<p class="wp-block-paragraph">実務ではデータが縦方向に並ぶケースのほうが多いです。そのためVLOOKUPのほうが使用頻度は高くなります。</p>



<p class="wp-block-paragraph">ただし、月別集計表やシフト表など横方向の表も少なくありません。そうした場面ではHLOOKUP関数が頼りになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>XLOOKUP関数は縦横両方に対応していますが、Googleスプレッドシートでも使えます。新しい関数に抵抗がなければ、XLOOKUPへの移行も選択肢です。</p></blockquote>



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



<p class="wp-block-paragraph">HLOOKUP関数のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>名前はHorizontal（水平）+ Lookupが由来。<strong>横方向に検索</strong>する関数</li><li>構文は <code>=HLOOKUP(検索キー, 範囲, 番号, 並べ替え済み)</code> の4引数</li><li>「並べ替え済み」は省略せずFALSEを明示するのが安全</li><li>#N/Aエラーはデータ型の不一致やスペース混入を疑う</li><li>縦方向の検索には<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>を使う</li></ul>



<p class="wp-block-paragraph">まずは基本の完全一致検索からはじめてみてください。IFERRORと組み合わせれば、実務のほとんどの場面に対応できます。</p>



<h3 class="wp-block-heading"><span id="toc19">関連記事</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-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-value-function/">スプレッドシートのVALUE関数の使い方｜文字列を数値に変換</a></li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">スプレッドシートのTRIM関数の使い方｜余分なスペースを一括削除</a></li><li><a href="https://mashukabu.com/spreadsheet-find-function/">スプレッドシートのFIND関数の使い方｜文字の位置を検索</a></li><li><a href="https://mashukabu.com/spreadsheet-search-function/">スプレッドシートのSEARCH関数の使い方｜大文字小文字を区別しない検索</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-hlookup-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</title>
		<link>https://mashukabu.com/spreadsheet-vlookup-function/</link>
					<comments>https://mashukabu.com/spreadsheet-vlookup-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:12:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[別シート参照]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4650</guid>

					<description><![CDATA[スプレッドシートのVLOOKUP関数の使い方を基本から丁寧に解説。構文・引数の意味、別シート参照、#N/Aエラーの対処法、XLOOKUP・INDEX+MATCHとの使い分けまで実務で使えるサンプルつきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「商品コードを入れたら商品名を自動で表示したい」。スプレッドシートを使っていると、こんな場面によく出会いますよね。</p>



<p class="wp-block-paragraph">手作業で1つずつ探していたら時間がかかりますし、コピペミスも起きがちです。</p>



<p class="wp-block-paragraph">そんなときに活躍するのがVLOOKUP関数です。検索値を指定するだけで、表から対応するデータを一発で取得できます。この記事では基本の書き方から別シート参照、エラー対処、XLOOKUPとの使い分けまで紹介します。</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">スプレッドシートのVLOOKUP関数とは？</a></li><li><a href="#toc2" tabindex="0">VLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">「並べ替え済み」（FALSE / TRUE）の使い分け</a></li></ol></li><li><a href="#toc6" tabindex="0">VLOOKUP関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">同じシート内でデータを検索する</a></li><li><a href="#toc8" tabindex="0">別シートのデータを参照する</a></li><li><a href="#toc9" tabindex="0">範囲を固定するコツ（絶対参照）</a></li></ol></li><li><a href="#toc10" tabindex="0">VLOOKUP関数の実務活用パターン</a><ol><li><a href="#toc11" tabindex="0">IFERROR関数と組み合わせてエラーを防ぐ</a></li><li><a href="#toc12" tabindex="0">近似一致（TRUE）で料金ランク判定する</a></li><li><a href="#toc13" tabindex="0">ワイルドカードで部分一致検索する</a></li><li><a href="#toc14" tabindex="0">IMPORTRANGE関数と組み合わせて別ファイルを参照する</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">#N/Aエラー</a></li><li><a href="#toc18" tabindex="0">#REF!エラー</a></li><li><a href="#toc19" tabindex="0">間違った値が返る</a></li></ol></li><li><a href="#toc20" tabindex="0">VLOOKUP関数と他の検索関数の使い分け</a><ol><li><a href="#toc21" tabindex="0">VLOOKUPの3つの制約</a></li><li><a href="#toc22" tabindex="0">VLOOKUP / XLOOKUP / INDEX+MATCH 比較表</a></li><li><a href="#toc23" tabindex="0">どの関数を選べばいい？</a></li></ol></li><li><a href="#toc24" tabindex="0">まとめ</a><ol><li><a href="#toc25" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">VLOOKUP関数（読み方: ブイルックアップ関数）は、範囲の先頭列を縦方向に検索する関数です。一致した行から、指定した列の値を返してくれます。</p>



<p class="wp-block-paragraph">名前はVertical（垂直）+ Lookup（検索）が由来です。「商品コードから商品名を引っ張る」「社員番号から部署名を取得する」。こうした「表引き」作業を数式1つで片付けてくれます。</p>



<p class="wp-block-paragraph">ポイントは<strong>検索する列が範囲の先頭（左端）にある</strong>ことです。左端以外の列で検索したい場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討してください。</p>



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



<ul class="wp-block-list"><li>マスタ表から名前・価格・区分などを自動取得する</li><li>別シートや別ファイルのデータを参照する</li><li>近似一致で料金ランク・成績判定を行う</li><li>ワイルドカードで部分一致検索をする</li></ul>



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



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



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



<p class="wp-block-paragraph">VLOOKUP関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])</code></pre>



<p class="wp-block-paragraph">引数は4つあります。最後の「並べ替え済み」だけ省略できます。</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><th>指定例</th></tr></thead><tbody><tr><td>検索キー</td><td>必須</td><td>探したい値。セル参照が一般的</td><td>A2</td></tr><tr><td>範囲</td><td>必須</td><td>検索対象の表。先頭列に検索キーを含むこと</td><td>B2:E100</td></tr><tr><td>番号</td><td>必須</td><td>範囲の左端から数えて何列目を返すか（1以上）</td><td>3</td></tr><tr><td>並べ替え済み</td><td>省略可</td><td>FALSE = 完全一致 / TRUE = 近似一致</td><td>FALSE</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>Excelでは「検索値・列番号・検索の型」と呼びますが、スプレッドシートでは「検索キー・番号・並べ替え済み」です。動作は同じなので、Excel経験者はそのまま読み替えてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">「並べ替え済み」（FALSE / TRUE）の使い分け</span></h3>



<p class="wp-block-paragraph">ここがVLOOKUPで一番つまずきやすい部分です。</p>



<p class="wp-block-paragraph"><strong>FALSE（完全一致）</strong> は、検索キーとぴったり一致するデータだけを探します。実務の9割はこちらです。一致しなければ#N/Aエラーになります。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, B2:D100, 2, FALSE)</code></pre>



<p class="wp-block-paragraph"><strong>TRUE（近似一致）</strong> は、検索キー以下の最大値を返します。料金表やランク判定に使います。ただし先頭列が昇順ソートされていることが前提です。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, F2:G10, 2, TRUE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>「並べ替え済み」を省略するとデフォルトはTRUEです。「なぜか変な値が返る」の原因は、たいていこの省略です。迷ったらFALSEを明示してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">同じシート内でデータを検索する</span></h3>



<p class="wp-block-paragraph">商品コードから商品名を取得する例で見てみましょう。</p>



<p class="wp-block-paragraph">A列〜C列に商品マスタがあるとします。A列が商品コード、B列が商品名、C列が価格です。</p>



<p class="wp-block-paragraph">E2に入力したコードから商品名を取得するにはこう書きます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(E2, A2:C100, 2, FALSE)</code></pre>



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



<ul class="wp-block-list"><li>E2: 検索キー（入力した商品コード）</li><li>A2:C100: 範囲（商品マスタ全体）</li><li>2: 範囲の左から2列目（商品名）を返す</li><li>FALSE: 完全一致で検索</li></ul>



<p class="wp-block-paragraph">E2に「P-001」と入力すると、A列から「P-001」を探し、同じ行のB列の値を返します。</p>



<h3 class="wp-block-heading"><span id="toc8">別シートのデータを参照する</span></h3>



<p class="wp-block-paragraph">実務では検索先が別シートにあることがほとんどです。シート名のあとに「!」をつけて範囲を指定します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, マスタ!A:D, 3, FALSE)</code></pre>



<p class="wp-block-paragraph">シート名に空白を含む場合はシングルクォーテーションで囲みます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, '商品 マスタ'!A:D, 3, FALSE)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>別シートの範囲をマウスで選択すると、シート名と「!」が自動で入力されます。手入力よりもミスが減るのでおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">範囲を固定するコツ（絶対参照）</span></h3>



<p class="wp-block-paragraph">VLOOKUPを下方向にコピーすると、範囲がズレることがあります。範囲は絶対参照で固定しましょう。</p>



<p class="wp-block-paragraph">セル参照を選択した状態でF4キーを押すと「$」がつきます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, $B$2:$D$100, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">検索キーのA2は相対参照のまま、範囲だけ固定するのが正解です。</p>



<p class="wp-block-paragraph">なお、列全体を参照する書き方（A:Dなど）ならコピーしてもズレません。ただしデータ量が多いと処理が遅くなる場合があります。</p>



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



<h3 class="wp-block-heading"><span id="toc11">IFERROR関数と組み合わせてエラーを防ぐ</span></h3>



<p class="wp-block-paragraph">VLOOKUPは検索キーが見つからないと#N/Aエラーを返します。資料として見栄えが悪いですし、後続の計算にも影響します。</p>



<p class="wp-block-paragraph">IFERROR関数（エラー時に別の値を返す関数）で囲めば、エラーを防げます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2, マスタ!A:D, 3, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">実務では「該当なし」や空文字「&#8221;&#8221;」を指定するケースが多いです。</p>



<h3 class="wp-block-heading"><span id="toc12">近似一致（TRUE）で料金ランク判定する</span></h3>



<p class="wp-block-paragraph">売上金額からランクを判定する場面では、近似一致が便利です。</p>



<p class="wp-block-paragraph">ランク表が次のようになっているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>下限金額</th><th>ランク</th></tr></thead><tbody><tr><td>0</td><td>C</td></tr><tr><td>100000</td><td>B</td></tr><tr><td>300000</td><td>A</td></tr><tr><td>500000</td><td>S</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表がF2:G5にあるとします。B2の金額に対してランクを返すにはこう書きます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(B2, $F$2:$G$5, 2, TRUE)</code></pre>



<p class="wp-block-paragraph">B2が250,000なら「B」が返ります。250,000以下の最大値は100,000なので、その行のランクが返る仕組みです。</p>



<p class="wp-block-paragraph">近似一致を使うときは下限金額を必ず昇順で並べてください。</p>



<h3 class="wp-block-heading"><span id="toc13">ワイルドカードで部分一致検索する</span></h3>



<p class="wp-block-paragraph">「並べ替え済み」をFALSEにした状態でワイルドカードが使えます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;*東京*&quot;, A2:C100, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">「*」は任意の文字列にマッチします。「東京」を含む最初のデータを探したいときに使えます。</p>



<p class="wp-block-paragraph">セル参照を使う場合は「&#038;」で連結します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(&quot;*&quot;&amp;E2&amp;&quot;*&quot;, A2:C100, 2, FALSE)</code></pre>



<h3 class="wp-block-heading"><span id="toc14">IMPORTRANGE関数と組み合わせて別ファイルを参照する</span></h3>



<p class="wp-block-paragraph">スプレッドシートならではの活用法です。IMPORTRANGE関数（別ファイルのデータを取得する関数）で取り込んだ範囲をVLOOKUPの検索対象にできます。</p>



<pre class="wp-block-code"><code>=VLOOKUP(A2, IMPORTRANGE(&quot;スプレッドシートURL&quot;, &quot;マスタ!A:D&quot;), 3, FALSE)</code></pre>



<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>IMPORTRANGEは共有ドライブの大規模マスタなどで重宝します。ただしファイルが重くなりやすいので、必要な列だけに絞ると安心です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">複数条件で検索する（補助列の活用）</span></h3>



<p class="wp-block-paragraph">VLOOKUPは検索キーを1つしか指定できません。「部署」と「役職」の2条件で検索したい場合は、補助列を作ります。</p>



<p class="wp-block-paragraph">補助列に2つの値を「&#038;」で連結した値を入れます。</p>



<pre class="wp-block-code"><code>=A2&amp;&quot;-&quot;&amp;B2</code></pre>



<p class="wp-block-paragraph">VLOOKUPの検索キーも同じ形式で連結します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(E2&amp;&quot;-&quot;&amp;F2, 補助列を含む範囲, 列番号, FALSE)</code></pre>



<p class="wp-block-paragraph">補助列を使いたくない場合は、<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>やFILTER関数も検討してみてください。</p>



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



<h3 class="wp-block-heading"><span id="toc17">#N/Aエラー</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>データを追加するかIFERRORで対処</td></tr><tr><td>データ型の不一致</td><td>数値と文字列が混在していないか</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で型を統一</td></tr><tr><td>余分なスペース</td><td>見えない空白が入っていないか</td><td><a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>で除去</td></tr><tr><td>範囲がズレている</td><td>絶対参照をつけ忘れていないか</td><td>F4キーで$をつける</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">列番号が範囲の列数を超えているときに出ます。</p>



<p class="wp-block-paragraph">たとえば範囲がA:Cの3列なのに、番号に4を指定した場合です。列を削除した直後にも起こりやすいので、範囲と番号の対応を確認してください。</p>



<h3 class="wp-block-heading"><span id="toc19">間違った値が返る</span></h3>



<p class="wp-block-paragraph">エラーにはならないのに期待と違う値が返る。これが一番やっかいなケースです。</p>



<p class="wp-block-paragraph">最も多い原因は「並べ替え済みを省略してTRUEになっている」パターンです。FALSEを明示すれば解決します。</p>



<p class="wp-block-paragraph">もう1つは範囲の先頭列が検索対象と一致していないケースです。範囲の開始列を見直してみてください。</p>



<h2 class="wp-block-heading"><span id="toc20">VLOOKUP関数と他の検索関数の使い分け</span></h2>



<p class="wp-block-paragraph">VLOOKUPは便利ですが、万能ではありません。場面に応じた関数選びのポイントを整理します。</p>



<h3 class="wp-block-heading"><span id="toc21">VLOOKUPの3つの制約</span></h3>



<ol class="wp-block-list"><li><strong>左方向に検索できない</strong>: 範囲の先頭列でしか検索できません</li><li><strong>列番号がハードコード</strong>: 列の挿入や削除で番号がズレます</li><li><strong>最初の一致しか返さない</strong>: 重複があっても先頭の1件だけです</li></ol>



<h3 class="wp-block-heading"><span id="toc22">VLOOKUP / XLOOKUP / INDEX+MATCH 比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>特徴</th><th>VLOOKUP</th><th>XLOOKUP</th><th>INDEX+MATCH</th></tr></thead><tbody><tr><td>左方向検索</td><td>不可</td><td>可能</td><td>可能</td></tr><tr><td>列追加への耐性</td><td>弱い</td><td>強い</td><td>強い</td></tr><tr><td>エラー時の既定値</td><td>IFERROR必要</td><td>引数で指定可</td><td>IFERROR必要</td></tr><tr><td>デフォルトの一致方式</td><td>近似一致</td><td>完全一致</td><td>完全一致（0指定）</td></tr><tr><td>複数列を一括で返す</td><td>不可</td><td>可能</td><td>不可</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>シンプル</td><td>やや複雑</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">どの関数を選べばいい？</span></h3>



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



<ul class="wp-block-list"><li><strong>左方向の値を取りたい</strong> → <a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>がベスト</li><li><strong>複数列の結果を一括で返したい</strong> → XLOOKUP関数がベスト</li><li><strong>条件に合う複数行を抽出したい</strong> → <a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の出番</li><li><strong>シンプルな右方向の表引き</strong> → VLOOKUPで十分</li></ul>



<p class="wp-block-paragraph">VLOOKUPは「古い関数」と言われることもあります。ただ、構文がシンプルで直感的なのは大きなメリットです。左方向検索が不要な場面ではVLOOKUPのほうが読みやすい数式になります。</p>



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



<p class="wp-block-paragraph">VLOOKUP関数のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>構文は <code>=VLOOKUP(検索キー, 範囲, 番号, 並べ替え済み)</code> の4引数</li><li>「並べ替え済み」は省略せずFALSEを明示するのが安全</li><li>範囲の絶対参照とIFERRORの組み合わせは実務の必須テクニック</li><li>#N/Aエラーは「データ型の不一致」や「余分なスペース」を疑う</li><li>左方向検索が必要なら<a href="https://mashukabu.com/spreadsheet-xlookup/">XLOOKUP関数</a>を検討</li></ul>



<p class="wp-block-paragraph">まずは基本の完全一致検索からはじめてみてください。IFERROR関数やワイルドカードを組み合わせれば、実務のほとんどの場面に対応できます。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件に合うデータを自動抽出</a></li><li><a href="https://mashukabu.com/spreadsheet-value-function/">スプレッドシートのVALUE関数の使い方｜文字列を数値に変換</a></li><li><a href="https://mashukabu.com/spreadsheet-trim-function/">スプレッドシートのTRIM関数の使い方｜余分なスペースを一括削除</a></li><li><a href="https://mashukabu.com/spreadsheet-sumif-function/">スプレッドシートのSUMIF関数の使い方｜条件付き合計</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方｜条件付きカウント</a></li><li><a href="https://mashukabu.com/spreadsheet-today-function/">スプレッドシートのTODAY関数の使い方｜今日の日付を自動入力</a></li><li><a href="https://mashukabu.com/spreadsheet-text-function/">スプレッドシートのTEXT関数の使い方｜数値を任意の書式で表示</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-vlookup-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違い・逆方向検索・スピル活用まで実例解説</title>
		<link>https://mashukabu.com/spreadsheet-xlookup/</link>
					<comments>https://mashukabu.com/spreadsheet-xlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 15 Mar 2026 02:50:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[検索関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3802</guid>

					<description><![CDATA[スプレッドシートのXLOOKUP関数の使い方を、基本構文から逆方向検索・スピル・末尾検索・ワイルドカードまで実例で解説。VLOOKUPとの違い、IFS/SWITCHとの使い分け、#N/A・#VALUE!エラーの対処法、実務シナリオ（在庫照合・最新履歴取得・取引先マスタ）まで全網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで「左側の列が取れない」「毎回IFERRORを書くのが面倒」と感じたことはありませんか。</p>



<p class="wp-block-paragraph">データの列順が変わるたびに数式を直したり、エラー対策でネストが深くなったり。VLOOKUPの限界にぶつかっている方は多いはずです。</p>



<p class="wp-block-paragraph">そんな悩みを一気に解決してくれるのが、<strong>XLOOKUP関数（読み方：エックスルックアップ）</strong> です。Googleスプレッドシートでも2022年8月から使えるようになり、今では実務の検索処理の主役になっています。この記事では、XLOOKUP関数の基本構文から逆方向検索・スピル・末尾検索・ワイルドカード、そしてVLOOKUPやIFS・SWITCHとの使い分けまで、実例とサンプル画像つきで解説します。</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">XLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">XLOOKUPでできること</a></li><li><a href="#toc3" tabindex="0">対応バージョンと互換性</a></li></ol></li><li><a href="#toc4" tabindex="0">XLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc7" tabindex="0">基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">縦方向の検索（商品マスタから取得）</a></li><li><a href="#toc9" tabindex="0">横方向の検索（月別売上から取得）</a></li></ol></li><li><a href="#toc10" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc11" tabindex="0">逆方向（右から左）の検索</a></li><li><a href="#toc12" tabindex="0">複数列をまとめて返す（スピル）</a></li><li><a href="#toc13" tabindex="0">見つからない場合にデフォルト値を返す</a></li><li><a href="#toc14" tabindex="0">部分一致（ワイルドカード）検索</a></li><li><a href="#toc15" tabindex="0">末尾からの検索（最新データを取得）</a></li><li><a href="#toc16" tabindex="0">大規模データで高速化する（バイナリ検索）</a></li></ol></li><li><a href="#toc17" tabindex="0">実務シナリオ別の使い方</a><ol><li><a href="#toc18" tabindex="0">シナリオ1: 在庫照合（注文一覧 × 在庫マスタ）</a></li><li><a href="#toc19" tabindex="0">シナリオ2: 取引先マスタの引き当て</a></li><li><a href="#toc20" tabindex="0">シナリオ3: 直近の売上を取得</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#N/Aエラー（検索キーが見つからない）</a></li><li><a href="#toc23" tabindex="0">#VALUE!エラー（範囲サイズ不一致）</a></li><li><a href="#toc24" tabindex="0">#REF!エラー（スピル先が埋まっている）</a></li><li><a href="#toc25" tabindex="0">#NAME?エラー（関数名の誤り）</a></li></ol></li><li><a href="#toc26" tabindex="0">VLOOKUP・INDEX+MATCH・IFS・SWITCHとの違い・使い分け</a><ol><li><a href="#toc27" tabindex="0">関数ごとの比較表</a></li><li><a href="#toc28" tabindex="0">IFS / SWITCHとの使い分け</a></li><li><a href="#toc29" tabindex="0">XMATCHとの組み合わせ</a></li><li><a href="#toc30" tabindex="0">どの関数を使うべきか</a></li></ol></li><li><a href="#toc31" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">XLOOKUP関数は、<strong>指定した範囲から値を検索し、対応するデータを返す関数</strong>です。読み方は「エックスルックアップ」。Xは「eXtended（拡張された）」の頭文字で、従来のVLOOKUP・HLOOKUPの弱点を克服するために設計された後継関数です。</p>



<p class="wp-block-paragraph">Googleスプレッドシートでは2022年8月にリリースされ、Excelでも Microsoft 365 と Excel 2021 以降で使えます。覚えればVLOOKUPの出番がほぼなくなる、汎用性の高い検索関数です。</p>



<h3 class="wp-block-heading"><span id="toc2">XLOOKUPでできること</span></h3>



<ul class="wp-block-list"><li>縦方向・横方向の両方を1つの関数で検索できる</li><li>検索列の左側にあるデータも取得できる（VLOOKUPでは不可）</li><li>見つからない場合の表示値を関数内で直接指定できる</li><li>複数列・複数行をまとめて返せる（スピル対応）</li><li>末尾からの検索（最新データの取得）が1つの引数でできる</li><li>ワイルドカードや正規表現にも対応している</li></ul>



<h3 class="wp-block-heading"><span id="toc3">対応バージョンと互換性</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>アプリ</th><th>対応状況</th></tr></thead><tbody><tr><td>Googleスプレッドシート</td><td>2022年8月以降に作成されたシートで利用可</td></tr><tr><td>Microsoft 365 / Excel for Web</td><td>利用可</td></tr><tr><td>Excel 2021</td><td>利用可</td></tr><tr><td>Excel 2019 以前</td><td>利用不可（VLOOKUPまたはINDEX+MATCHで代替）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>補足</strong></p><p>他のメンバーが古いExcelで開く可能性がある場合は、互換性の観点からVLOOKUPを併用するか、XLOOKUPの結果を「値貼り付け」で確定させてから共有すると安全です。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=XLOOKUP(検索キー, 検索範囲, 結果の範囲, [見つからない場合の値], [一致モード], [検索モード])</code></pre>



<p class="wp-block-paragraph">引数が6つあるように見えますが、<strong>最初の3つだけで基本的な検索はできます</strong>。4〜6番目はオプションなので、最初は気にしなくて大丈夫です。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の詳細</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>検索キーを探す1列または1行の範囲</td></tr><tr><td>結果の範囲</td><td>必須</td><td>返したいデータが入っている範囲（複数列も可）</td></tr><tr><td>見つからない場合の値</td><td>任意</td><td>一致しない場合に返す値（省略時は <code>#N/A</code>）</td></tr><tr><td>一致モード</td><td>任意</td><td>0=完全一致（既定）、-1=次に小さい値、1=次に大きい値、2=ワイルドカード、3=正規表現</td></tr><tr><td>検索モード</td><td>任意</td><td>1=先頭から（既定）、-1=末尾から、2=昇順バイナリ検索、-2=降順バイナリ検索</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>一致モード</strong>と<strong>検索モード</strong>は少し難しそうに見えますが、普段使いでは「完全一致（一致モード=0）」「先頭から検索（検索モード=1）」の既定値で十分です。後ろの応用例で、それぞれが役立つ場面を順番に紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>一致モード=3は Sheets独自</strong></p><p>正規表現一致（一致モード=3）はGoogleスプレッドシート独自の機能です。Excelには無いため、Excelと共有するファイルでは使わないでください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc8">縦方向の検索（商品マスタから取得）</span></h3>



<p class="wp-block-paragraph">まずは一番よく使う「縦方向の検索」から見てみましょう。</p>



<p class="wp-block-paragraph">たとえば、下のような商品マスタがあるとします。</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>



<p class="wp-block-paragraph">E1セルに「A002」と入力されているとき、F1セルで商品名を取得するには次のように書きます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B)</code></pre>



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



<p class="wp-block-paragraph"><strong>（P）結論</strong>: これだけで「みかん」が返ってきます。</p>



<p class="wp-block-paragraph"><strong>（R）理由</strong>: 第1引数で検索キー（E1）を、第2引数で検索範囲（A列）を、第3引数で返したい列（B列）を指定しているからです。VLOOKUPのような「何列目を返すか」の列番号はいりません。</p>



<p class="wp-block-paragraph"><strong>（E）具体例</strong>: 単価を取りたい場合は第3引数をC列に変えるだけです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, C:C)</code></pre>



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



<p class="wp-block-paragraph"><strong>（P）まとめ</strong>: VLOOKUPと違って列番号を数える必要がありません。途中で列が増減しても数式を修正しなくていいので、運用の手間が一気に減ります。</p>



<h3 class="wp-block-heading"><span id="toc9">横方向の検索（月別売上から取得）</span></h3>



<p class="wp-block-paragraph">XLOOKUPは横方向のデータにも対応しています。HLOOKUPを使っていた場面をXLOOKUP1本で代替できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列</th><th>B列</th><th>C列</th><th>D列</th></tr></thead><tbody><tr><td>1行目（月）</td><td>1月</td><td>2月</td><td>3月</td><td>4月</td></tr><tr><td>2行目（売上）</td><td>120</td><td>95</td><td>180</td><td>210</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「3月」の売上を取得するには次のように書きます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;3月&quot;, A1:D1, A2:D2)</code></pre>



<p class="wp-block-paragraph">縦でも横でも同じ書き方で使えるのがXLOOKUPの強みです。HLOOKUPを覚え直す必要もありません。</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">VLOOKUPで困る場面の代表例が「検索キーより左の列のデータを取りたい」ケースです。VLOOKUPは検索列の右側しか取れませんが、XLOOKUPはどの方向でも取得できます。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">左側の列を取得するには列を並べ替えるか、INDEX+MATCH関数を組み合わせる必要があり、式が複雑になりがちです。</p>



<pre class="wp-block-code"><code>=INDEX(A:A, MATCH(E1, B:B, 0))</code></pre>



<p class="wp-block-paragraph"><strong>After（XLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">検索範囲と結果の範囲を自由に指定できるので、シンプルに書けます。</p>



<p class="wp-block-paragraph">たとえば「商品名（B列）」で検索して「商品コード（A列）」を返す場合：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, B:B, A:A)</code></pre>



<p class="wp-block-paragraph">ちょっと不思議に見えますが、やっていることはシンプルです。「B列で探して、A列の値を返す」というだけ。「検索する列」と「返す列」を自由に組み合わせられます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/04_result_xlookup-reverse.png" alt="04 result xlookup reverse" /></figure>



<h3 class="wp-block-heading"><span id="toc12">複数列をまとめて返す（スピル）</span></h3>



<p class="wp-block-paragraph">XLOOKUPは第3引数の結果の範囲に複数列を指定すると、一度にまとめて返してくれます。</p>



<p class="wp-block-paragraph">商品コードで検索して「商品名」と「単価」を同時に取得する例：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:C)</code></pre>



<p class="wp-block-paragraph">これを入力すると、F1セルに商品名、G1セルに単価が自動で展開されます。これがスピル機能です。VLOOKUPでは列ごとに数式を書く必要があったので、大幅に手間が減ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/05_result_xlookup-multi-column.png" alt="05 result xlookup multi column" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>補足</strong></p><p>スピル先のセル（F1の場合はG1）にすでにデータがあると <code>#REF!</code> エラーになります。隣のセルを空けておくのを忘れないようにしましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">見つからない場合にデフォルト値を返す</span></h3>



<p class="wp-block-paragraph">VLOOKUPでは一致しないと <code>#N/A</code> エラーが出るため、別途 <code>IFERROR</code> でエラー処理する必要がありました。</p>



<p class="wp-block-paragraph"><strong>Before（VLOOKUPの場合）</strong>:</p>



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



<p class="wp-block-paragraph"><strong>After（XLOOKUPの場合）</strong>:</p>



<p class="wp-block-paragraph">第4引数に表示したい文字を指定するだけです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">IFERRORを外付けしなくてよいので、式がスッキリします。空白にしたい場合は <code>""</code> を指定してください。</p>



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



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc14">部分一致（ワイルドカード）検索</span></h3>



<p class="wp-block-paragraph">第5引数の一致モードを <code>2</code> にすると、ワイルドカードが使えます。「株式会社」を含む取引先を検索する、といった柔軟な検索ができます。</p>



<pre class="wp-block-code"><code>=XLOOKUP(&quot;*株式会社*&quot;, A:A, B:B, &quot;該当なし&quot;, 2)</code></pre>



<p class="wp-block-paragraph">使えるワイルドカードは次の3つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th></tr></thead><tbody><tr><td><code>*</code></td><td>任意の文字列（0文字以上）</td></tr><tr><td><code>?</code></td><td>任意の1文字</td></tr><tr><td><code>~</code></td><td>ワイルドカード自体を文字として扱う（<code>~<em></code> で <code></em></code> を検索）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">部分一致は<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>でも可能ですが、XLOOKUPなら1件だけ引き当てたいときにシンプルに書けます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>正規表現で柔軟に検索する</strong></p><p>Googleスプレッドシート独自の一致モード <code>3</code> を指定すると正規表現が使えます。たとえば <code>=XLOOKUP("^A0", A:A, B:B, "なし", 3)</code> で「A0」から始まる商品コードを検索できます。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数</a>の解説もあわせてご覧ください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">末尾からの検索（最新データを取得）</span></h3>



<p class="wp-block-paragraph">第6引数の検索モードを <code>-1</code> にすると、範囲の末尾から検索します。履歴テーブルから最新の記録を取得するときに便利です。</p>



<p class="wp-block-paragraph">たとえば、日付順に並んだ訪問履歴から、顧客ごとの最新訪問日を取る場合：</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;記録なし&quot;, 0, -1)</code></pre>



<p class="wp-block-paragraph">A列が顧客ID、B列が訪問日のとき、末尾から検索することで最新の日付が返ります。VLOOKUPでは実現が難しかった使い方です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>最新の在庫数や担当者を取得する</strong></p><p>「商品コードでの最新の在庫更新日」「顧客IDの最終購入金額」など、追記型ログから直近の値を抽出するシーンに有効です。データを日付順に追加していくだけで、最新の値が自動で更新されます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">大規模データで高速化する（バイナリ検索）</span></h3>



<p class="wp-block-paragraph">データが昇順または降順にソート済みであれば、検索モードを <code>2</code>（昇順）または <code>-2</code>（降順）にすることでバイナリ検索が使えます。数万件規模のデータでも体感速度が変わります。</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A:A, B:B, &quot;なし&quot;, 0, 2)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>バイナリ検索の前提</strong></p><p>バイナリ検索は <strong>検索範囲がソート済み</strong> であることが前提です。ソートされていない範囲に指定すると、誤った結果を返すことがあります。普段の業務では検索モードを省略（既定の <code>1</code>）したまま使うほうが安全です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">実務シナリオ別の使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc18">シナリオ1: 在庫照合（注文一覧 × 在庫マスタ）</span></h3>



<p class="wp-block-paragraph">注文一覧の各行に、在庫マスタから「現在庫」と「単価」を同時に取得する：</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, 在庫マスタ!A:A, 在庫マスタ!B:C, &quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">スピル機能で在庫数と単価が一度に展開され、IFERRORも不要です。</p>



<h3 class="wp-block-heading"><span id="toc19">シナリオ2: 取引先マスタの引き当て</span></h3>



<p class="wp-block-paragraph">取引先名から取引先コードと担当営業を逆引きする：</p>



<pre class="wp-block-code"><code>=XLOOKUP(B2, マスタ!B:B, マスタ!A:A, &quot;未登録&quot;, 2)</code></pre>



<p class="wp-block-paragraph">一致モード <code>2</code>（ワイルドカード）にすることで「株式会社」の有無や表記ゆれにある程度耐性を持たせられます。本格的な表記ゆれ対策には<a href="https://mashukabu.com/spreadsheet-asc-function/">ASC関数</a>・<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>を組み合わせるのが定石です。</p>



<h3 class="wp-block-heading"><span id="toc20">シナリオ3: 直近の売上を取得</span></h3>



<p class="wp-block-paragraph">日次売上ログから、各商品の最新売上日と金額を取得する：</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2, 売上!B:B, 売上!A:D, &quot;売上なし&quot;, 0, -1)</code></pre>



<p class="wp-block-paragraph">「末尾から検索」の <code>-1</code> と複数列スピルの組み合わせで、最新行の必要列がまとめて返ります。</p>



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



<h3 class="wp-block-heading"><span id="toc22">#N/Aエラー（検索キーが見つからない）</span></h3>



<p class="wp-block-paragraph"><strong>（P）結論</strong>: <code>#N/A</code> エラーが出る主な原因は「検索キーが検索範囲に存在しない」か「データの型が違う」ことです。</p>



<p class="wp-block-paragraph"><strong>（R）理由</strong>: XLOOKUPはデフォルトで完全一致（一致モード=0）を使うため、値が完全に一致しないと見つからないと判断します。</p>



<p class="wp-block-paragraph"><strong>（E）よくあるミス</strong>:</p>



<ul class="wp-block-list"><li>検索キーが数値なのに検索範囲のデータが文字列になっている（または逆）</li><li>セルに余分なスペースが入っている</li><li>日付の表示形式がシリアル値のまま</li></ul>



<p class="wp-block-paragraph"><strong>（P）解決策</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処方法</th></tr></thead><tbody><tr><td>型の不一致（数値 vs 文字列）</td><td><code>TEXT</code> 関数で文字列化 / <code>VALUE</code> 関数で数値化</td></tr><tr><td>余分なスペース</td><td><code>TRIM</code> 関数で前後の空白を除去</td></tr><tr><td>表記ゆれ（大文字小文字・全半角）</td><td><code>UPPER</code> / <code>LOWER</code> / <code>ASC</code> / <code>JIS</code> 関数で統一</td></tr><tr><td>そもそも存在しない</td><td>第4引数に <code>"該当なし"</code> などを指定</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=XLOOKUP(TRIM(E1), A:A, B:B, &quot;データなし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc23">#VALUE!エラー（範囲サイズ不一致）</span></h3>



<p class="wp-block-paragraph">検索範囲と結果の範囲の行数（または列数）が一致していないと <code>#VALUE!</code> エラーになります。</p>



<p class="wp-block-paragraph"><strong>ダメな例</strong>:</p>



<pre class="wp-block-code"><code>=XLOOKUP(E1, A1:A10, B1:B5)</code></pre>



<p class="wp-block-paragraph">検索範囲が10行、結果の範囲が5行なのでサイズが一致しません。</p>



<p class="wp-block-paragraph"><strong>対処</strong>: 両方の範囲の行数（または列数）をそろえましょう。列全体を指定する <code>A:A</code> と <code>B:B</code> のような書き方なら自動的にそろうので安全です。</p>



<h3 class="wp-block-heading"><span id="toc24">#REF!エラー（スピル先が埋まっている）</span></h3>



<p class="wp-block-paragraph">複数列返しのときに、スピルで展開される先のセルに既存データがあると <code>#REF!</code> エラーが出ます。</p>



<p class="wp-block-paragraph"><strong>対処</strong>: スピル先のセルを空ける、または結果の範囲を1列だけに絞る。</p>



<h3 class="wp-block-heading"><span id="toc25">#NAME?エラー（関数名の誤り）</span></h3>



<p class="wp-block-paragraph">XLOOKUPと入力しても認識されない場合があります。古いスプレッドシート（2022年8月以前作成）で開いている可能性があります。新しいファイルを作成し直すか、対応シートにコピーしてください。</p>



<h2 class="wp-block-heading"><span id="toc26">VLOOKUP・INDEX+MATCH・IFS・SWITCHとの違い・使い分け</span></h2>



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



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VLOOKUP</th><th>INDEX+MATCH</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>検索方向</td><td>左端列のみ</td><td>任意</td><td>任意</td></tr><tr><td>横方向の検索</td><td>不可（HLOOKUPが必要）</td><td>可</td><td>可</td></tr><tr><td>エラー処理</td><td>IFERRORが別途必要</td><td>IFERRORが別途必要</td><td>第4引数で内蔵</td></tr><tr><td>列番号の指定</td><td>必要（何列目か数える）</td><td>不要</td><td>不要</td></tr><tr><td>複数列の同時取得</td><td>不可</td><td>不可</td><td>可（スピル）</td></tr><tr><td>末尾から検索</td><td>不可</td><td>不可</td><td>可</td></tr><tr><td>対応シート</td><td>すべて</td><td>すべて</td><td>2022年8月以降</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc28">IFS / SWITCHとの使い分け</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>条件式（A1>100 など）で分岐</td><td><a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a></td><td>比較演算子を使った分岐に強い</td></tr><tr><td>単一値の置換（コード→ラベル）</td><td><a href="https://mashukabu.com/spreadsheet-switch-function/">SWITCH関数</a></td><td>数式内に値を直接書く小規模変換に向く</td></tr><tr><td>マスタテーブルからの参照</td><td>XLOOKUP</td><td>データ量が増えてもメンテしやすい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFSやSWITCHは「数式内に判定条件を直接書く」関数のため、対応件数が増えると保守がつらくなります。マスタとして表で管理したくなったら、XLOOKUPに切り替えるのが正解です。</p>



<h3 class="wp-block-heading"><span id="toc29">XMATCHとの組み合わせ</span></h3>



<p class="wp-block-paragraph">「位置（行番号や列番号）」が欲しい場面では<a href="https://mashukabu.com/spreadsheet-xmatch-function/">XMATCH関数</a>と組み合わせると便利です。XMATCHはXLOOKUPと同じ検索モードに対応しているため、INDEX+MATCH の上位互換として使えます。</p>



<h3 class="wp-block-heading"><span id="toc30">どの関数を使うべきか</span></h3>



<ul class="wp-block-list"><li><strong>普段使いはXLOOKUP</strong>: 2022年8月以降のスプレッドシートなら、今後は迷わずXLOOKUPが第一候補です</li><li><strong>古いシートやExcel互換重視ならVLOOKUP</strong>: 他部署とのファイル共有で古い環境に戻す可能性があるときはVLOOKUPのままが無難</li><li><strong>INDEX+MATCHはもう不要</strong>: XLOOKUPが使えるなら役割を完全に引き継げます</li><li><strong>条件型の判定はIFS、マスタ参照はXLOOKUP</strong>: 「マスタ表があるか」で見分けるのが分かりやすいです</li></ul>



<p class="wp-block-paragraph">普段の作業で「列番号が変わるたびに修正していた」「IFERRORでネストが深くなっていた」と感じている方におすすめです。この機会にXLOOKUPに乗り換えると、作業が一気に楽になります。</p>



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



<p class="wp-block-paragraph">XLOOKUP関数のポイントをまとめます。</p>



<ul class="wp-block-list"><li><strong>基本は3引数</strong>: <code>=XLOOKUP(検索キー, 検索範囲, 結果の範囲)</code> で動く</li><li><strong>左方向にも検索できる</strong>: VLOOKUPの列制限がなく、検索範囲と結果の範囲を自由に設定できる</li><li><strong>エラー処理が内蔵</strong>: 第4引数で <code>"該当なし"</code> などを指定すれば <code>#N/A</code> をそのまま置き換えられる</li><li><strong>縦横両対応</strong>: VLOOKUPとHLOOKUPを1つの関数に統合したイメージ</li><li><strong>複数列まとめ取得</strong>: 結果の範囲に複数列を指定してスピルで展開できる</li><li><strong>末尾から検索も可</strong>: 第6引数を <code>-1</code> にすると最新データの取得がラク</li><li><strong>ワイルドカード・正規表現に対応</strong>: 一致モード <code>2</code>（ワイルドカード）と <code>3</code>（正規表現・Sheets独自）が使える</li><li><strong>大規模データはバイナリ検索</strong>: 検索モード <code>2</code> / <code>-2</code> で高速化（ソート済み前提）</li></ul>



<p class="wp-block-paragraph">VLOOKUPに慣れている方も、基本の3引数から使い始めれば違和感なく移行できます。まずは手元の作業で1回使ってみてください。慣れてしまえば「もうVLOOKUPには戻れない」と感じるはずです。</p>



<p class="wp-block-paragraph">検索系の関数を体系的に学びたい方は、<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>・<a href="https://mashukabu.com/spreadsheet-hlookup-function/">HLOOKUP関数</a>・<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>・<a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>・<a href="https://mashukabu.com/spreadsheet-xmatch-function/">XMATCH関数</a>の解説もあわせてどうぞ。複数条件の抽出なら<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>、条件分岐は<a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>・<a href="https://mashukabu.com/spreadsheet-switch-function/">SWITCH関数</a>、表記ゆれ対策は<a href="https://mashukabu.com/spreadsheet-asc-function/">ASC関数</a>・<a href="https://mashukabu.com/spreadsheet-clean-function/">CLEAN関数</a>が役立ちます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-xlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HLOOKUP関数とは？使い方・エラー対処法・VLOOKUPとの違い</title>
		<link>https://mashukabu.com/excel-function-howto-use-hlookup/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-hlookup/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 07 Feb 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[HLOOKUP]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[検索]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2414</guid>

					<description><![CDATA[ExcelのHLOOKUP関数の使い方を基本から解説。構文・引数・実践例に加え、#N/Aや#REF!エラーの対処法、VLOOKUP・XLOOKUPとの違い、XLOOKUPへの移行ポイントもわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「横方向に並んだデータから値を取り出したいのに、VLOOKUPだとうまくいかない……」そんな経験はありませんか？ VLOOKUPは縦方向の検索には強いですが、横方向のデータには対応していません。</p>



<p class="wp-block-paragraph">そこで活躍するのがHLOOKUP関数です。この記事では、HLOOKUP関数の基本的な使い方から実践的な活用例、よくあるエラーの対処法、そしてVLOOKUP・XLOOKUPとの違いまで、わかりやすく解説していきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 横方向に並んだ表からデータを検索・取得したい人<br>&#8211; HLOOKUP関数の引数や使い方を基礎から理解したい人<br>&#8211; VLOOKUPやXLOOKUPとの違い・使い分けを知りたい人</p></blockquote>




  <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">HLOOKUP関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">HLOOKUP関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">HLOOKUP関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc7" tabindex="0">HLOOKUP関数の基本的な使い方</a></li><li><a href="#toc8" tabindex="0">HLOOKUP関数の実践的な使い方・応用例</a><ol><li><a href="#toc9" tabindex="0">月別データから特定月の値を取得する</a></li><li><a href="#toc10" tabindex="0">MATCH関数と組み合わせて行番号を自動化する</a></li><li><a href="#toc11" tabindex="0">IFNA関数と組み合わせてエラーを回避する</a></li></ol></li><li><a href="#toc12" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc13" tabindex="0">#N/A エラー</a></li><li><a href="#toc14" tabindex="0">#REF! エラー</a></li><li><a href="#toc15" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc16" tabindex="0">VLOOKUP・XLOOKUPとの違いと使い分け</a><ol><li><a href="#toc17" tabindex="0">HLOOKUPとVLOOKUPの違い（行方向 vs 列方向）</a></li><li><a href="#toc18" tabindex="0">XLOOKUPへの移行がおすすめ</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">関数一覧</a></li><li><a href="#toc21" tabindex="0">エラー値についてのまとめ記事</a></li></ol></li></ol>
    </div>
  </div>

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



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



<p class="wp-block-paragraph">読み方は「エイチ ルックアップ」関数です。</p>



<p class="wp-block-paragraph">HLOOKUPの「H」は「Horizontal（ホリゾンタル）」の頭文字で、「水平・横方向」という意味があります。つまり、横方向にデータを検索する関数ということですね。</p>



<p class="wp-block-paragraph">ちなみに、よく比較されるVLOOKUP関数の「V」は「Vertical（バーティカル）＝垂直・縦方向」を意味しています。名前を覚えるだけで、どちらが縦でどちらが横かがわかるようになりますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">HLOOKUP関数でできること</span></h3>



<p class="wp-block-paragraph">HLOOKUP関数は、指定した範囲の<strong>上端行（1行目）で検索値を横方向に探し</strong>、見つかった列の指定した行数分だけ下のセルの値を取得する関数です。</p>



<p class="wp-block-paragraph">たとえば、月別の売上表で「4月」を検索して、その列の3行目にある売上金額を取り出す、といった使い方ができます。</p>



<p class="wp-block-paragraph">データが横方向（行方向）に並んでいるときに使うのがHLOOKUP、縦方向（列方向）に並んでいるときに使うのがVLOOKUPと覚えておきましょう。</p>



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



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



<p class="wp-block-paragraph">まずはHLOOKUP関数の構文を確認しましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>構文</strong></p><p><strong>=HLOOKUP( 検索値, 範囲, 行番号, [検索の型] )</strong></p></blockquote>



<p class="wp-block-paragraph">引数は全部で4つあり、最初の3つは必須、4つ目の「検索の型」は省略できます。</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>検索対象と取得したい値を含むセル範囲。上端行が検索対象になります</td></tr><tr><td>行番号</td><td>必須</td><td>取得したいデータがある行の番号。上端行を「1」として数えます</td></tr><tr><td>検索の型</td><td>省略可</td><td>FALSEまたは0で完全一致、TRUEまたは1で近似一致。省略するとTRUEになります</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>「検索の型」はFALSE（完全一致）を指定するのがおすすめです。</strong> 省略するとTRUE（近似一致）になりますが、意図しない結果が返ることがあるため、基本的にはFALSEを明示的に指定しておきましょう。</p>



<p class="wp-block-paragraph">なお、TRUEを指定する場合は、上端行のデータが<strong>昇順に並んでいる必要があります</strong>。昇順になっていないと正しい結果が得られないので注意してください。</p>



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



<p class="wp-block-paragraph">ここでは、支店別の売上データから特定の支店の値を取り出す例で解説します。</p>



<p class="wp-block-paragraph">次のような横方向の表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>東京支店</td><td>大阪支店</td><td>名古屋支店</td><td>福岡支店</td></tr><tr><td>2</td><td>売上</td><td>500</td><td>350</td><td>280</td><td>200</td></tr><tr><td>3</td><td>経費</td><td>120</td><td>80</td><td>65</td><td>50</td></tr><tr><td>4</td><td>利益</td><td>380</td><td>270</td><td>215</td><td>150</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">東京支店の利益（380）を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;東京支店&quot;, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">この数式の意味を分解してみましょう。</p>



<ul class="wp-block-list"><li><strong>検索値</strong>: &#8220;東京支店&#8221; — 上端行から「東京支店」を探します</li><li><strong>範囲</strong>: B1:E4 — B1からE4の範囲を指定しています</li><li><strong>行番号</strong>: 4 — 上端行から数えて4行目（利益の行）の値を取得します</li><li><strong>検索の型</strong>: FALSE — 完全一致で検索します</li></ul>



<p class="wp-block-paragraph">結果として「380」が返ります。行番号を「2」に変えれば売上（500）、「3」に変えれば経費（120）を取得できますよ。</p>



<p class="wp-block-paragraph">セル参照を使うこともできます。たとえばG1セルに支店名が入力されている場合は、次のように書けます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(G1, B1:E4, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">こうすると、G1セルの値を変更するだけで、取得する支店のデータを切り替えられます。入力規則のドロップダウンと組み合わせれば、簡易的なダッシュボードにもなりますね。</p>



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



<h3 class="wp-block-heading"><span id="toc9">月別データから特定月の値を取得する</span></h3>



<p class="wp-block-paragraph">実務では、月別に横方向に並んだ集計表をよく見かけますよね。こういったデータからHLOOKUP関数で特定の月の値を取り出せます。</p>



<p class="wp-block-paragraph">たとえば、以下のような月別売上表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th><th>&#8230;</th><th>M</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>1月</td><td>2月</td><td>3月</td><td>&#8230;</td><td>12月</td></tr><tr><td>2</td><td>売上</td><td>100</td><td>120</td><td>150</td><td>&#8230;</td><td>200</td></tr><tr><td>3</td><td>目標</td><td>110</td><td>110</td><td>140</td><td>&#8230;</td><td>190</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3月の売上を取得するには、次のように入力します。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">結果は「150」が返ります。行番号を3にすれば、目標値（140）を取得できます。</p>



<h3 class="wp-block-heading"><span id="toc10">MATCH関数と組み合わせて行番号を自動化する</span></h3>



<p class="wp-block-paragraph">行番号をハードコーディングすると、表の構成が変わったときにメンテナンスが大変です。そこでMATCH関数と組み合わせると、取得したい項目名から自動的に行番号を算出できます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(&quot;3月&quot;, B1:M3, MATCH(&quot;目標&quot;, A1:A3, 0), FALSE)</code></pre>



<p class="wp-block-paragraph">この書き方なら、行の順番が入れ替わっても数式を修正する必要がありません。さらに柔軟に2方向の検索を行いたい場合は、INDEX関数とMATCH関数の組み合わせも検討してみてください。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数で検索値が見つからないと、<code>#N/A</code>エラーが表示されてしまいます。これを避けるには、IFNA関数と組み合わせるのが便利です。</p>



<pre class="wp-block-code"><code>=IFNA(HLOOKUP(&quot;札幌支店&quot;, B1:E4, 4, FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">検索値が見つからなかった場合に「該当なし」と表示されるので、見た目もスッキリしますし、後続の計算でエラーが連鎖するのを防げます。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数を使っていると、思わぬエラーに遭遇することがあります。ここではエラーの種類別に原因と対処法を整理しました。</p>



<h3 class="wp-block-heading"><span id="toc13">#N/A エラー</span></h3>



<p class="wp-block-paragraph"><code>#N/A</code>エラーは「検索値が見つからない」ときに発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>検索値が範囲の上端行に存在しない</td><td>検索値のスペルや値を確認する</td></tr><tr><td>検索値や範囲に余分なスペースがある</td><td>TRIM関数でスペースを除去する</td></tr><tr><td>文字列と数値の型が一致していない</td><td>VALUE関数で数値に変換、またはTEXT関数で文字列に変換する</td></tr><tr><td>全角・半角が混在している</td><td>ASC関数やJIS関数で表記を統一する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーを非表示にしたい場合は、IFNA関数やISNA関数と組み合わせて対処しましょう。</p>



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



<p class="wp-block-paragraph"><code>#REF!</code>エラーは「行番号が範囲の行数を超えている」ときに発生します。</p>



<p class="wp-block-paragraph">たとえば、範囲がB1:E3（3行）なのに行番号を「4」と指定するとこのエラーが出ます。指定した範囲の行数を確認して、行番号が範囲内に収まるように修正してください。</p>



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



<p class="wp-block-paragraph"><code>#VALUE!</code>エラーは「行番号に1未満の数値や文字列を指定した」ときに発生します。行番号には必ず1以上の整数を指定しましょう。</p>



<h2 class="wp-block-heading"><span id="toc16">VLOOKUP・XLOOKUPとの違いと使い分け</span></h2>



<p class="wp-block-paragraph">Excelには検索系の関数がいくつかあります。HLOOKUP関数とよく比較される関数との違いを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>HLOOKUP</th><th>VLOOKUP</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>検索方向</td><td>横方向（行）</td><td>縦方向（列）</td><td>縦横両方向</td></tr><tr><td>検索位置</td><td>上端行のみ</td><td>左端列のみ</td><td>任意の範囲</td></tr><tr><td>デフォルトの検索型</td><td>近似一致（TRUE）</td><td>近似一致（TRUE）</td><td>完全一致</td></tr><tr><td>対応バージョン</td><td>Excel 2003以降</td><td>Excel 2003以降</td><td>Microsoft 365 / Excel 2021以降</td></tr><tr><td>見つからない場合の指定</td><td>不可（IFNAで対応）</td><td>不可（IFNAで対応）</td><td>第4引数で指定可</td></tr><tr><td>列/行の追加への耐性</td><td>弱い（番号ズレ）</td><td>弱い（番号ズレ）</td><td>強い（範囲参照）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">HLOOKUPとVLOOKUPの違い（行方向 vs 列方向）</span></h3>



<p class="wp-block-paragraph">もっとも混同しやすいのがHLOOKUPとVLOOKUPの違いです。どちらも「表から値を引く」関数ですが、検索する方向がちょうど90度違います。</p>



<ul class="wp-block-list"><li><strong>HLOOKUP</strong>: 範囲の<strong>上端行</strong>を横に探し、<strong>縦方向（下）</strong> に指定した行数分だけ下のセルを返す</li><li><strong>VLOOKUP</strong>: 範囲の<strong>左端列</strong>を縦に探し、<strong>横方向（右）</strong> に指定した列数分だけ右のセルを返す</li></ul>



<p class="wp-block-paragraph">表のレイアウトが縦長（項目名が1列目に並ぶ）ならVLOOKUP、横長（項目名が1行目に並ぶ）ならHLOOKUP、と覚えておけば迷いません。</p>



<h3 class="wp-block-heading"><span id="toc18">XLOOKUPへの移行がおすすめ</span></h3>



<p class="wp-block-paragraph"><strong>使い分けのポイントは以下のとおりです。</strong></p>



<ul class="wp-block-list"><li><strong>データが横方向に並んでいる</strong> → HLOOKUP関数</li><li><strong>データが縦方向に並んでいる</strong> → <a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a></li><li><strong>Microsoft 365やExcel 2021以降を使っている</strong> → <a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>がおすすめ</li></ul>



<p class="wp-block-paragraph">XLOOKUP関数は縦方向・横方向の両方に対応しており、HLOOKUPとVLOOKUPの機能を1つの関数でカバーできます。さらにデフォルトが完全一致、見つからない場合の代替値を第4引数で直接指定できる、列や行を追加しても数式が壊れにくい、といったメリットもあります。</p>



<p class="wp-block-paragraph">お使いのExcelのバージョンがMicrosoft 365やExcel 2021以降であれば、新規の数式はXLOOKUPで書くことを強くおすすめします。既存のHLOOKUP/VLOOKUPも、メンテナンスの機会に少しずつXLOOKUPへ置き換えていくと、将来的なトラブルを減らせますよ。</p>



<p class="wp-block-paragraph">ただし、Excel 2019以前のバージョンではXLOOKUPは使えません。職場のパソコンがまだ古いバージョンという方や、取引先とファイルをやり取りする場合は、互換性を考えてHLOOKUP関数をしっかり押さえておくのがおすすめです。</p>



<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>の組み合わせも便利です。XLOOKUPが使えない環境で2方向検索をしたい場合に重宝するので、あわせてチェックしてみてください。</p>



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



<p class="wp-block-paragraph">HLOOKUP関数は、横方向に並んだデータから値を検索・取得するための関数です。この記事のポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>HLOOKUPの「H」はHorizontal（水平）の略で、<strong>横方向に検索</strong>する関数</li><li>引数は「検索値・範囲・行番号・検索の型」の4つ。検索の型は<strong>FALSEを指定するのが基本</strong></li><li>検索値が見つからないときの<code>#N/A</code>エラーは、IFNA関数と組み合わせて回避できる</li><li>VLOOKUPとは検索方向が90度違う。表のレイアウトに合わせて使い分ける</li><li>Microsoft 365やExcel 2021以降であれば、<strong>XLOOKUP関数への置き換え</strong>がおすすめ</li></ul>



<p class="wp-block-paragraph">横方向のデータ検索はHLOOKUP関数にお任せです。ぜひ実務で活用してみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc20">関数一覧</span></h3>



<p class="wp-block-paragraph">biz-tacticsではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h3 class="wp-block-heading"><span id="toc21">エラー値についてのまとめ記事</span></h3>



<p class="wp-block-paragraph">関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-error-value-list/">【Excel】セルに表示されるエラーの種類と原因、対処方法を解説</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-hlookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIFNA関数の使い方｜#N/Aだけを処理してエラーを見逃さない方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-ifna/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-ifna/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 30 May 2022 12:02:31 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[#N/A]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[IFNA関数]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[エラー処理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2050</guid>

					<description><![CDATA[ExcelのIFNA関数の使い方を解説。VLOOKUP組み合わせで#N/Aエラーを非表示にする方法、IFERRORとの違い・使い分け比較表、XLOOKUPへの移行ガイドまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPで検索したら、セルに「#N/A」がズラッと並んでしまった…。そんな経験、ありませんか？</p>



<p class="wp-block-paragraph">見栄えが悪いだけでなく、そのまま集計に使うと合計や平均もエラーになってしまいます。かといって、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で全エラーをまとめて消すと、数式ミスまで隠れてしまうリスクがあるんですよね。</p>



<p class="wp-block-paragraph">そこで活躍するのが <strong>IFNA関数</strong> です。#N/Aエラーだけをピンポイントで処理できるので、安全にエラー表示をコントロールできますよ。この記事では、IFNA関数の基本から、VLOOKUPとの組み合わせ、IFERRORとの違いまでまるっと解説します。</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">IFNA関数とは？何をする関数か</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">IFNA関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">#N/Aエラーを空白にする</a></li><li><a href="#toc6" tabindex="0">#N/Aエラーをメッセージに変える</a></li><li><a href="#toc7" tabindex="0">#N/Aエラーを0にする</a></li></ol></li><li><a href="#toc8" tabindex="0">VLOOKUP+IFNAの実践パターン</a><ol><li><a href="#toc9" tabindex="0">未登録データの検索処理</a></li><li><a href="#toc10" tabindex="0">INDEX+MATCH+IFNAで柔軟に検索する</a></li><li><a href="#toc11" tabindex="0">IFNAのネストで複数テーブルを順番に検索</a></li></ol></li><li><a href="#toc12" tabindex="0">IFERRORとIFNA｜どちらを使うべきか（比較表）</a></li><li><a href="#toc13" tabindex="0">XLOOKUPなら第4引数でIFNA不要（移行ガイド）</a></li><li><a href="#toc14" tabindex="0">IFNA関数のよくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">IFNA関数とは？何をする関数か</span></h2>



<p class="wp-block-paragraph">IFNA関数は、数式の結果が <strong>#N/Aエラーのときだけ</strong> 別の値を返す関数です。Excel 2013で追加されました。</p>



<p class="wp-block-paragraph">Excelのエラーは全部で7種類あります。</p>



<ul class="wp-block-list"><li><code>#N/A</code> — 検索値が見つからない</li><li><code>#VALUE!</code> — データ型が不正</li><li><code>#REF!</code> — 参照先が無効</li><li><code>#DIV/0!</code> — ゼロ除算</li><li><code>#NAME?</code> — 関数名のスペルミス</li><li><code>#NUM!</code> — 数値が範囲外</li><li><code>#NULL!</code> — 範囲指定が不正</li></ul>



<p class="wp-block-paragraph">IFNA関数が処理するのは、この中の <strong>#N/Aだけ</strong> です。残り6つのエラーはそのまま表示されます。つまり、数式のミスに気づける安全な設計になっているんですよね。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方・意味</span></h3>



<p class="wp-block-paragraph">読み方は「<strong>イフ・エヌエー</strong>」です。「IF + N/A」の略で、「もし#N/Aだったら」という意味になります。</p>



<h3 class="wp-block-heading"><span id="toc3">書式と引数</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だったときに返す値。省略すると0が返る</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第2引数を省略すると <strong>0</strong> が返ります。空白にしたい場合は <code>""</code> を明示的に指定してください。この省略時の挙動はうっかりミスしやすいポイントですよ。</p>



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



<p class="wp-block-paragraph">まずはシンプルな使い方から見ていきましょう。</p>



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



<p class="wp-block-paragraph">検索結果が見つからないとき、セルを空白のままにしたいケースは多いですよね。</p>



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



<p class="wp-block-paragraph">第2引数に <code>""</code> を指定するだけです。VLOOKUPが#N/Aを返したとき、セルには何も表示されません。報告書や請求書など、見た目を整えたいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">#N/Aエラーをメッセージに変える</span></h3>



<p class="wp-block-paragraph">空白ではなく、「該当なし」「未登録」のようなメッセージを表示したいこともあります。</p>



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



<p class="wp-block-paragraph">こうすれば、検索値がマスタにないことがひと目でわかります。データの抜け漏れチェックにも使えるので、ぜひ試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc7">#N/Aエラーを0にする</span></h3>



<p class="wp-block-paragraph">集計用の列で、見つからない場合は0として扱いたいケースもあります。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,価格表,3,FALSE),0)</code></pre>



<p class="wp-block-paragraph">第2引数に <code>0</code> を指定すれば、SUM関数やAVERAGE関数でエラーにならず集計できます。なお、第2引数を省略しても0が返りますが、「意図して0にした」ことを明示するために書いておくのがおすすめですよ。</p>



<h2 class="wp-block-heading"><span id="toc8">VLOOKUP+IFNAの実践パターン</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく使う組み合わせパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc9">未登録データの検索処理</span></h3>



<p class="wp-block-paragraph">たとえば、受注リストの商品コードを商品マスタから検索する場面を考えてみましょう。</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>A001</td><td>ボールペン</td><td>150</td></tr><tr><td>A002</td><td>ノート</td><td>300</td></tr><tr><td>A003</td><td>消しゴム</td><td>100</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">受注リストにある商品コード「A004」を検索すると、マスタに存在しないので#N/Aになります。IFNAで処理すると次のようになります。</p>



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



<p class="wp-block-paragraph">この数式は「未登録商品」と返します。#N/Aがそのまま表示されるよりも、何が起きているか一目瞭然ですよね。</p>



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>は検索列が左端でないと使えません。そんなときは<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>（指定した行列の値を返す関数）と<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>（検索値の位置を返す関数）の組み合わせが便利です。</p>



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



<p class="wp-block-paragraph">INDEX+MATCHでも検索値が見つからなければ#N/Aが発生します。IFNAで囲んでおけば安心ですよ。</p>



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



<p class="wp-block-paragraph">「まずテーブルAを検索して、なければテーブルBを検索する」という処理もIFNAで実現できます。</p>



<pre class="wp-block-code"><code>=IFNA(VLOOKUP(A2,テーブルA,2,FALSE),IFNA(VLOOKUP(A2,テーブルB,2,FALSE),&quot;どちらにも該当なし&quot;))</code></pre>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。外側のIFNAの第2引数に、もう一つのIFNA+VLOOKUPを入れているだけです。テーブルAで見つかればその値を返し、見つからなければテーブルBを検索します。テーブルBにもなければ「どちらにも該当なし」を返します。</p>



<p class="wp-block-paragraph">この書き方は、部署マスタと旧部署マスタを両方検索する場面などで重宝しますよ。</p>



<h2 class="wp-block-heading"><span id="toc12">IFERRORとIFNA｜どちらを使うべきか（比較表）</span></h2>



<p class="wp-block-paragraph">「IFERRORで十分じゃない？」と思う方も多いかもしれません。結論から言うと、<strong>検索系の関数と組み合わせるならIFNAのほうが安全</strong> です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IFNA</th><th><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR</a></th></tr></thead><tbody><tr><td>処理するエラー</td><td>#N/Aのみ</td><td>全7種類</td></tr><tr><td>数式ミスの検出</td><td>できる（#N/A以外はそのまま表示）</td><td>できない（すべて隠れる）</td></tr><tr><td>登場バージョン</td><td>Excel 2013〜</td><td>Excel 2007〜</td></tr><tr><td>おすすめ用途</td><td>VLOOKUP・MATCH・XLOOKUPなど検索系</td><td>QUOTIENT・除算など#DIV/0!対策</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、VLOOKUPの第3引数（列番号）を間違えて#REF!が出たとします。IFERRORで囲んでいると、このミスは空白や0に置き換えられて気づけません。IFNAなら#REF!はそのまま表示されるので、すぐに修正できます。</p>



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



<ul class="wp-block-list"><li><strong>検索系の関数</strong>（VLOOKUP・MATCH・INDEX+MATCHなど）→ <strong>IFNA</strong> を使う</li><li><strong>計算系の関数</strong>（除算・QUOTIENT・数値変換など）→ IFERROR を使う</li><li>全エラーをまとめて処理したい → IFERROR を使う</li></ul>



<p class="wp-block-paragraph">迷ったらIFNAを選ぶほうが安全ですよ。エラーを必要以上に隠さない設計は、あとからのトラブル防止につながります。</p>



<p class="wp-block-paragraph">なお、<a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA関数</a>（#N/Aかどうかを判定する関数）と<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>を組み合わせる古い書き方もあります。</p>



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



<p class="wp-block-paragraph">この書き方だとVLOOKUPを2回書く必要があり、数式が長くなります。IFNAなら1回で済むので、こちらを使うのがおすすめです。IF系関数の使い分けについては、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>の記事も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc13">XLOOKUPなら第4引数でIFNA不要（移行ガイド）</span></h2>



<p class="wp-block-paragraph">Excel 2021やMicrosoft 365で使える<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>なら、<strong>第4引数で「見つからなかった場合の値」を直接指定</strong> できます。IFNAで囲む必要がなくなるんです。</p>



<pre class="wp-block-code"><code>=XLOOKUP(A2,商品コード列,商品名列,&quot;未登録&quot;)</code></pre>



<p class="wp-block-paragraph">VLOOKUP+IFNAで書いていた処理が、XLOOKUPなら1つの関数で完結します。数式がスッキリしますよね。</p>



<p class="wp-block-paragraph">ただし、XLOOKUPはExcel 2019以前のバージョンでは使えません。社内でExcelのバージョンが混在している場合は、VLOOKUP+IFNAの書き方を使ったほうが安全です。</p>



<p class="wp-block-paragraph">移行の目安をまとめておきます。</p>



<ul class="wp-block-list"><li><strong>全員がExcel 2021以降 or Microsoft 365</strong> → XLOOKUPに移行してOK</li><li><strong>Excel 2019以前のユーザーがいる</strong> → VLOOKUP+IFNAを継続</li><li><strong>Googleスプレッドシートと共有</strong> → XLOOKUPは対応済みなので移行可能</li></ul>



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



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



<p class="wp-block-paragraph"><strong>第2引数を省略して意図しない0が表示される</strong></p>



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



<p class="wp-block-paragraph">この数式は、#N/Aのとき0を返します。空白にしたいなら <code>""</code> を明示的に指定してください。</p>



<p class="wp-block-paragraph"><strong>IFNAの中にIFNAの対象でない数式を入れてしまう</strong></p>



<p class="wp-block-paragraph">IFNAは#N/Aしか処理しません。割り算の#DIV/0!を処理したいときは、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>か<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を使ってください。</p>



<p class="wp-block-paragraph"><strong>VLOOKUP側の引数ミスに気づかない</strong></p>



<p class="wp-block-paragraph">IFNAは#N/Aだけ処理するので、VLOOKUPの引数ミスによる#REF!や#VALUE!はそのまま表示されます。これはIFNAの「安全機能」です。エラーが出たら、IFNA側ではなくVLOOKUP側の引数を確認してみてください。</p>



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



<p class="wp-block-paragraph">IFNA関数は、#N/Aエラーだけを安全に処理できる関数です。ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li><strong>書式</strong>: <code>=IFNA(値, NAの場合の値)</code> — 引数は2つだけ</li><li><strong>処理対象</strong>: #N/Aエラーのみ。他の6種類のエラーはスルーする</li><li><strong>VLOOKUPとセット</strong>: 検索系の関数と組み合わせるのが定番</li><li><strong>IFERRORとの違い</strong>: IFERRORは全エラー処理、IFNAは#N/Aだけ処理</li><li><strong>XLOOKUPなら不要</strong>: 第4引数で代替できる（Excel 2021以降）</li><li><strong>第2引数の省略に注意</strong>: 省略すると0が返る。空白にしたいなら <code>""</code> を指定</li></ul>



<p class="wp-block-paragraph">VLOOKUPやMATCHを使う場面では、IFERRORよりIFNAを選ぶクセをつけておくと、数式ミスの見落としを防げますよ。ぜひ普段の業務で活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-ifna/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>COLUMN関数の使い方｜VLOOKUPの列番号を自動化</title>
		<link>https://mashukabu.com/excel-function-howto-use-column/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-column/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 May 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX]]></category>
		<category><![CDATA[MATCH]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[XLOOKUP]]></category>
		<category><![CDATA[列番号]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2066</guid>

					<description><![CDATA[COLUMN関数の基本から応用まで解説。VLOOKUPの第3引数にCOLUMN()-Nを使えば、列の追加・削除で番号がズレない数式が作れます。横連番の自動生成やINDEX+MATCHとの組み合わせも紹介。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VLOOKUPの列番号でミスしたことありませんか？　列を追加するたびに数式を修正するのは、地味にストレスですよね。そのまま放置すると、参照先がズレて間違った値を返してしまうことも。そんな悩みを解決するのが、ExcelのCOLUMN関数です。</p>



<p class="wp-block-paragraph">この記事では、COLUMN関数の基本から、VLOOKUPとの組み合わせ、横方向の連番生成まで、実務で使えるテクニックを紹介します。</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">COLUMN関数とは？基本の使い方をおさらい</a><ol><li><a href="#toc2" tabindex="0">引数なし：今いる列の番号をそのまま返す</a></li><li><a href="#toc3" tabindex="0">引数あり：任意のセルの列番号を取得する</a></li><li><a href="#toc4" tabindex="0">ROW関数との対称パターン表（行と列の整理）</a></li></ol></li><li><a href="#toc5" tabindex="0">VLOOKUP × COLUMN関数｜列番号を自動化する方法</a><ol><li><a href="#toc6" tabindex="0">手入力の列番号が壊れる場面（列追加・削除のあるある）</a></li><li><a href="#toc7" tabindex="0">COLUMN()-Nでズレを計算する思考ステップ</a></li><li><a href="#toc8" tabindex="0">実際の数式：複数列を一括で取得するサンプル</a></li></ol></li><li><a href="#toc9" tabindex="0">横方向に連番を自動生成する</a><ol><li><a href="#toc10" tabindex="0">基本パターン：COLUMN()-Nで1・2・3…と振る</a></li><li><a href="#toc11" tabindex="0">M365スピル対応：SEQUENCE関数との比較</a></li></ol></li><li><a href="#toc12" tabindex="0">INDEX + MATCH + COLUMNの組み合わせ</a><ol><li><a href="#toc13" tabindex="0">VLOOKUPからINDEX+MATCHに移行するときの書き方</a></li><li><a href="#toc14" tabindex="0">COLUMN関数で列参照をまとめて横展開する</a></li></ol></li><li><a href="#toc15" tabindex="0">INDIRECT + COLUMNで動的シート参照</a></li><li><a href="#toc16" tabindex="0">XLOOKUPではCOLUMN関数が不要になるケース</a><ol><li><a href="#toc17" tabindex="0">XLOOKUPの戻り範囲指定との違い</a></li><li><a href="#toc18" tabindex="0">それでもCOLUMN関数が必要な場面</a></li></ol></li><li><a href="#toc19" tabindex="0">COLUMN関数 よくある質問・エラー対処</a><ol><li><a href="#toc20" tabindex="0">#VALUE!・#REF!が出たときの確認ポイント</a></li><li><a href="#toc21" tabindex="0">COLUMNS関数との違いは？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">COLUMN関数とは？基本の使い方をおさらい</span></h2>



<p class="wp-block-paragraph">COLUMN関数（読み：カラム）は、セルの列番号を数値で返す関数です。A列なら1、B列なら2、C列なら3を返します。名前のとおり「列（Column）」の番号を取得する、シンプルな関数です。</p>



<p class="wp-block-paragraph">構文はこちらです。</p>



<pre class="wp-block-code"><code>=COLUMN([参照])</code></pre>



<p class="wp-block-paragraph">引数は1つだけで、しかも省略もできます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>参照</td><td>省略可</td><td>列番号を知りたいセルまたは範囲</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">それでは、具体的な使い方を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">引数なし：今いる列の番号をそのまま返す</span></h3>



<p class="wp-block-paragraph">引数を省略すると、数式を入力したセル自身の列番号を返します。</p>



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



<p class="wp-block-paragraph">たとえば、C3セルにこの数式を入れると「3」が返ります。D列なら「4」、E列なら「5」です。「いま自分がどの列にいるか」を取得したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">引数あり：任意のセルの列番号を取得する</span></h3>



<p class="wp-block-paragraph">引数にセル参照を指定すると、そのセルの列番号を返します。</p>



<pre class="wp-block-code"><code>=COLUMN(A1)    → 1
=COLUMN(D10)   → 4
=COLUMN(G5)    → 7</code></pre>



<p class="wp-block-paragraph">範囲を指定した場合は、左端の列番号を返します。たとえば <code>=COLUMN(B1:E1)</code> は「2」です。Microsoft 365環境では、スピルで <code>{2,3,4,5}</code> と複数の列番号を返します。</p>



<h3 class="wp-block-heading"><span id="toc4">ROW関数との対称パターン表（行と列の整理）</span></h3>



<p class="wp-block-paragraph">COLUMN関数には、行番号を返す<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>という対になる関数があります。この2つは完全に対称です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ROW()</th><th>COLUMN()</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><code>=ROW()-ROW($A$1)</code></td><td><code>=COLUMN()-COLUMN($A$1)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ROW関数で縦方向の連番を振った経験があれば、COLUMN関数はその横方向バージョンだと考えてください。</p>



<h2 class="wp-block-heading"><span id="toc5">VLOOKUP × COLUMN関数｜列番号を自動化する方法</span></h2>



<p class="wp-block-paragraph">COLUMN関数が最も活躍するのは、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>との組み合わせです。VLOOKUPの第3引数「列番号」を手入力していませんか？</p>



<h3 class="wp-block-heading"><span id="toc6">手入力の列番号が壊れる場面（列追加・削除のあるある）</span></h3>



<p class="wp-block-paragraph">VLOOKUPの列番号を手入力で「2」「3」「4」と書いていると、こんな問題が起きます。</p>



<ul class="wp-block-list"><li>検索範囲の途中に列を追加すると、番号がズレる</li><li>列を削除したときも、全数式を修正する必要がある</li><li>コピーして横に展開するとき、手動で番号を変える手間がかかる</li></ul>



<p class="wp-block-paragraph">数式が数個ならまだ対処できます。でも数十個あると、修正漏れが確実に発生しますよね。</p>



<h3 class="wp-block-heading"><span id="toc7">COLUMN()-Nでズレを計算する思考ステップ</span></h3>



<p class="wp-block-paragraph">COLUMN関数を使えば、列番号が自動で変わります。考え方は次の3ステップです。</p>



<ol class="wp-block-list"><li><code>COLUMN()</code> で数式セルの列番号を取得する</li><li><code>COLUMN(検索範囲の左端)</code> で基準の列番号を取得する</li><li>差分に+1して、VLOOKUPの列番号にする</li></ol>



<p class="wp-block-paragraph">汎用的な計算式はこうなります。</p>



<pre class="wp-block-code"><code>COLUMN() - COLUMN(検索範囲の左端) + 1</code></pre>



<p class="wp-block-paragraph">たとえば、数式がC列、検索範囲がB列始まりの場合を考えます。<code>COLUMN()</code> は3、<code>COLUMN($B$1)</code> は2です。3 &#8211; 2 + 1 = <strong>2</strong>で、検索範囲の2列目を返します。D列にコピーすれば自動で3列目になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">実際の数式：複数列を一括で取得するサンプル</span></h3>



<p class="wp-block-paragraph">実際のVLOOKUP数式に組み込むと、こうなります。</p>



<pre class="wp-block-code"><code>=VLOOKUP($A2, $B:$F, COLUMN()-COLUMN($B$1)+1, 0)</code></pre>



<p class="wp-block-paragraph">この数式をC列からF列まで横にコピーするだけで、各列の値を取得できます。列を追加・削除しても数式の修正は不要です。</p>



<p class="wp-block-paragraph">もし検索範囲がA列始まりで、数式がB列から始まるシンプルなケースなら、もっと短く書けます。</p>



<pre class="wp-block-code"><code>=VLOOKUP($A2, $A:$F, COLUMN(), 0)</code></pre>



<p class="wp-block-paragraph">B列の <code>COLUMN()</code> は2なので、検索範囲の2列目を返します。引く数が不要になり、スッキリした数式になります。実務では検索範囲の開始位置に合わせて使い分けてみてください。</p>



<h2 class="wp-block-heading"><span id="toc9">横方向に連番を自動生成する</span></h2>



<p class="wp-block-paragraph">COLUMN関数は、横方向に1, 2, 3&#8230;と連番を振りたいときにも使えます。</p>



<h3 class="wp-block-heading"><span id="toc10">基本パターン：COLUMN()-Nで1・2・3…と振る</span></h3>



<p class="wp-block-paragraph">B列から横方向に連番を振る場合、次の数式を使います。</p>



<pre class="wp-block-code"><code>=COLUMN()-COLUMN($B$1)+1</code></pre>



<p class="wp-block-paragraph">B列に入力すると1、C列なら2、D列なら3を返します。ROW関数で縦方向に連番を振るのと同じ発想ですね。</p>



<p class="wp-block-paragraph">A列から始める場合は、もっとシンプルです。</p>



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



<p class="wp-block-paragraph">A列=1、B列=2、C列=3と、そのまま連番になります。</p>



<h3 class="wp-block-heading"><span id="toc11">M365スピル対応：SEQUENCE関数との比較</span></h3>



<p class="wp-block-paragraph">Microsoft 365をお使いなら、SEQUENCE関数でも横方向の連番を生成できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>目的</th><th>COLUMN()（※M365）</th><th>SEQUENCE()</th></tr></thead><tbody><tr><td>1から5の連番</td><td><code>=COLUMN(A:E)</code> → {1,2,3,4,5}</td><td><code>=SEQUENCE(1,5)</code></td></tr><tr><td>3から始まる連番</td><td>直接指定できない</td><td><code>=SEQUENCE(1,5,3)</code></td></tr><tr><td>実際の列番号を取得</td><td><code>=COLUMN(C:F)</code> → {3,4,5,6}</td><td>計算が必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">※ COLUMN()のスピル展開はMicrosoft 365（またはExcel 2021以降）のみ対応です。</p>



<p class="wp-block-paragraph">連番を振ることが目的ならSEQUENCE関数の方がシンプルです。一方、実際のセル位置（列番号）が必要な場面ではCOLUMN関数が適しています。目的に応じて使い分けてみてください。</p>



<h2 class="wp-block-heading"><span id="toc12">INDEX + MATCH + COLUMNの組み合わせ</span></h2>



<p class="wp-block-paragraph">VLOOKUPよりも柔軟な検索ができる<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a> + <a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>の組み合わせでも、COLUMN関数は活躍します。</p>



<h3 class="wp-block-heading"><span id="toc13">VLOOKUPからINDEX+MATCHに移行するときの書き方</span></h3>



<p class="wp-block-paragraph">INDEX + MATCHの基本形はこちらです。</p>



<pre class="wp-block-code"><code>=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))</code></pre>



<p class="wp-block-paragraph">VLOOKUPとの違いは、検索列と戻り列を別々に指定する点です。検索列より左の値も取得できるのが大きなメリットですね。</p>



<p class="wp-block-paragraph">詳しい比較は「<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX MATCHの比較</a>」もあわせてご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc14">COLUMN関数で列参照をまとめて横展開する</span></h3>



<p class="wp-block-paragraph">INDEX + MATCHを横方向にコピーしたいとき、戻り範囲をCOLUMN関数で動的に指定できます。</p>



<pre class="wp-block-code"><code>=INDEX($B$1:$F$100, MATCH($A2,$B$1:$B$100,0), COLUMN()-COLUMN($B$1)+1)</code></pre>



<p class="wp-block-paragraph">この数式をC列以降にコピーすると、COLUMN関数の部分が自動で2, 3, 4&#8230;と増えます。VLOOKUPのときと同じ考え方なので、一度覚えれば応用はかんたんですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">INDIRECT + COLUMNで動的シート参照</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせると、列番号から動的にセル参照を生成できます。</p>



<p class="wp-block-paragraph">たとえば、COLUMN関数の戻り値をADDRESS関数でセル参照文字列に変換し、INDIRECTで実際の参照に変えるパターンです。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。COLUMN関数で列番号を取得し、ADDRESS関数でセル参照文字列（例: &#8220;B3&#8243;）に変換し、INDIRECTで実際の参照にしているだけです。C3セルに入力した場合、「1列左のセル＝B3」の値を返します。</p>



<p class="wp-block-paragraph">複数シートの同じ位置から値を集める場面では、Sheet名を変数にしたINDIRECTと組み合わせる使い方も有効です。列番号からアルファベットを取得する方法は「<a href="https://mashukabu.com/excel-function-howto-get-column-alphabet/">列番号からアルファベットを取得する方法</a>」も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc16">XLOOKUPではCOLUMN関数が不要になるケース</span></h2>



<p class="wp-block-paragraph">Microsoft 365で使える<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>では、COLUMN関数の出番が減ります。</p>



<h3 class="wp-block-heading"><span id="toc17">XLOOKUPの戻り範囲指定との違い</span></h3>



<p class="wp-block-paragraph">VLOOKUPとXLOOKUPでは、戻り値の指定方法が根本的に異なります。</p>



<pre class="wp-block-code"><code>// VLOOKUP：列番号で指定（ズレのリスクあり）
=VLOOKUP($A2, $B:$F, COLUMN()-COLUMN($B$1)+1, 0)

// XLOOKUP：戻り範囲を直接指定（列番号不要）
=XLOOKUP($A2, $B:$B, C:C)</code></pre>



<p class="wp-block-paragraph">XLOOKUPは戻り値を「列番号」ではなく「戻り範囲」で直接指定します。列を追加・削除しても参照がずれないため、COLUMN関数で列番号を計算する必要がありません。</p>



<h3 class="wp-block-heading"><span id="toc18">それでもCOLUMN関数が必要な場面</span></h3>



<p class="wp-block-paragraph">XLOOKUPを使っていても、COLUMN関数の出番がなくなるわけではありません。</p>



<ul class="wp-block-list"><li>横方向の連番を振りたいとき</li><li>INDEX関数の列引数を動的に変えたいとき</li><li>条件付き書式で列位置に応じた判定をしたいとき</li><li>マクロやVBAに列番号を渡したいとき</li></ul>



<p class="wp-block-paragraph">検索系の関数ではXLOOKUPに任せつつ、列番号の取得が必要な場面ではCOLUMN関数を使う。この使い分けがポイントですよ。</p>



<h2 class="wp-block-heading"><span id="toc19">COLUMN関数 よくある質問・エラー対処</span></h2>



<h3 class="wp-block-heading"><span id="toc20">#VALUE!・#REF!が出たときの確認ポイント</span></h3>



<p class="wp-block-paragraph">COLUMN関数でエラーが出るケースは多くありません。ただし、次の場面では注意が必要です。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>引数にテキスト文字列を指定した</td><td>セル参照に修正する</td></tr><tr><td>#REF!</td><td>参照先の列が削除された</td><td>数式を再入力する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>=COLUMN("A1")</code> のようにダブルクォーテーションで囲むと、文字列として扱われ #VALUE! エラーになります。正しくは <code>=COLUMN(A1)</code> です。引用符なしのセル参照を使ってください。</p>



<p class="wp-block-paragraph">また、非連続範囲（例：<code>=COLUMN((A1,C1))</code>）は指定できません。連続した範囲で指定するようにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">COLUMNS関数との違いは？</span></h3>



<p class="wp-block-paragraph">名前が似ている<a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数</a>は、まったく別の関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>例</th></tr></thead><tbody><tr><td>COLUMN</td><td>指定セルの列番号を返す</td><td><code>=COLUMN(C1)</code> → 3</td></tr><tr><td>COLUMNS</td><td>範囲の列数を返す</td><td><code>=COLUMNS(A1:C1)</code> → 3</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">COLUMN関数は「位置」を返し、COLUMNS関数は「個数」を返します。末尾にSが付くかどうかで意味が変わるので、混同しないように気をつけてくださいね。</p>



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



<p class="wp-block-paragraph">COLUMN関数は、セルの列番号を返すシンプルな関数です。単体ではあまり目立ちませんが、他の関数と組み合わせることで真価を発揮します。</p>



<p class="wp-block-paragraph">この記事で紹介した活用パターンをおさらいします。</p>



<ul class="wp-block-list"><li>VLOOKUPの列番号を自動化して、列の追加・削除に強くする</li><li>横方向に連番を振る</li><li>INDEX + MATCHの列指定を動的にする</li><li>XLOOKUPでは不要になるが、連番や列番号取得では引き続き活躍</li></ul>



<p class="wp-block-paragraph">まずはVLOOKUPの列番号をCOLUMN関数に置き換えるところから試してみてください。数式のメンテナンスがぐっと楽になりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-column/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
