<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>条件抽出 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e6%9d%a1%e4%bb%b6%e6%8a%bd%e5%87%ba/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 26 May 2026 10:50:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>条件抽出 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する実務7パターン</title>
		<link>https://mashukabu.com/spreadsheet-filter-function/</link>
					<comments>https://mashukabu.com/spreadsheet-filter-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 16 Mar 2026 14:29:59 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA]]></category>
		<category><![CDATA[FILTER関数]]></category>
		<category><![CDATA[QUERY関数]]></category>
		<category><![CDATA[SORT関数]]></category>
		<category><![CDATA[UNIQUE関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データ抽出]]></category>
		<category><![CDATA[動的レポート]]></category>
		<category><![CDATA[条件抽出]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3920</guid>

					<description><![CDATA[GoogleスプレッドシートのFILTER関数の使い方を基本から解説。AND/ORの複数条件の指定方法、SORT・UNIQUE・COUNTIFとの組み合わせ、プルダウン連動の動的レポート、Excel版との違い、QUERY・ARRAYFORMULAとの使い分けまで、実務でそのまま使えるサンプル付きで紹介します。`#N/A` や `#REF!` などのエラー対処、表記揺れで0行になる場合のデバッグ手順もまとめています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上データから東京支店だけ抜き出したい」「今月の受注だけ別シートに一覧化したい」。事務の現場でよくある作業ですよね。</p>



<p class="wp-block-paragraph">メニューの <strong>フィルター機能</strong> で手動で絞り込む方法もあります。ただ、条件が変わるたびにポチポチ操作するのは面倒ですし、元データに手を加えると共有メンバーに迷惑がかかることもあります。</p>



<p class="wp-block-paragraph">そんなときに使いたいのが <strong>FILTER関数</strong> です。元データはそのままに、条件に一致する行だけを別のセル範囲に自動で吐き出してくれます。プルダウンと組み合わせれば、選んだ条件で表示が切り替わる「動的レポート」もコードなしで作れますよ。</p>



<p class="wp-block-paragraph">この記事ではFILTER関数の基本構文から、AND/ORの複数条件、プルダウン連動・期間絞り込み・SORTやUNIQUEとの組み合わせなど、実務でそのまま使える7パターンを紹介します。<code>#N/A</code> や <code>#REF!</code> などのエラー対処、Excel版との違い、<a href="https://mashukabu.com/spreadsheet-query-function/">QUERY関数</a>・<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>との使い分けまで整理しますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのFILTER関数とは？条件に合う行をまるごと取り出す関数</a><ol><li><a href="#toc2" tabindex="0">FILTER関数で何ができる？</a></li><li><a href="#toc3" tabindex="0">メニューの「フィルター機能」との違い</a></li></ol></li><li><a href="#toc4" tabindex="0">FILTER関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">FILTER関数の動作イメージ早見表</a></li></ol></li><li><a href="#toc8" tabindex="0">FILTER関数の基本的な使い方</a></li><li><a href="#toc9" tabindex="0">FILTER関数で複数条件を指定する（AND・OR）</a><ol><li><a href="#toc10" tabindex="0">AND条件（すべて満たす）</a></li><li><a href="#toc11" tabindex="0">OR条件（いずれかを満たす）</a></li><li><a href="#toc12" tabindex="0">AND/OR を組み合わせる</a></li></ol></li><li><a href="#toc13" tabindex="0">FILTER関数の実務テンプレ7パターン</a><ol><li><a href="#toc14" tabindex="0">パターン1: プルダウン連動の動的レポート</a></li><li><a href="#toc15" tabindex="0">パターン2: 期間で絞り込む（今月・先月・直近30日）</a></li><li><a href="#toc16" tabindex="0">パターン3: FILTER + SORT で抽出結果を並べ替え</a></li><li><a href="#toc17" tabindex="0">パターン4: 特定の列だけを取り出す（配列リテラル / CHOOSECOLS）</a></li><li><a href="#toc18" tabindex="0">パターン5: FILTER + UNIQUE で重複を除く</a></li><li><a href="#toc19" tabindex="0">パターン6: FILTER + COUNTA / SUM で集計</a></li><li><a href="#toc20" tabindex="0">パターン7: 条件セルが空のとき全件表示</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">データがあるのに0行になるケース（デバッグ手順）</a></li></ol></li><li><a href="#toc23" tabindex="0">FILTERとQUERY・ARRAYFORMULAの違い・使い分け</a><ol><li><a href="#toc24" tabindex="0">FILTER と QUERY の選び分けフロー</a></li><li><a href="#toc25" tabindex="0">FILTER と XLOOKUP・XMATCH の違い</a></li><li><a href="#toc26" tabindex="0">Excel版FILTERとの違い</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a><ol><li><a href="#toc28" tabindex="0">この記事を書いた人</a></li><li><a href="#toc29" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのFILTER関数とは？条件に合う行をまるごと取り出す関数</span></h2>



<p class="wp-block-paragraph">FILTER関数（読み方: フィルター関数）は、<strong>指定した範囲の中から条件に一致する行（または列）だけを抜き出して別の場所に出力する関数</strong>です。関数名は英語の「filter（ろ過する・選別する）」に由来していて、データの中から必要なものだけをすくい上げるイメージで覚えると分かりやすいですね。</p>



<p class="wp-block-paragraph">たとえば社員リストから「営業部の人だけ」を抜き出したり、売上表から「100万円以上の案件だけ」を取り出したりできます。元のデータには触れずに別シートへレポートを自動生成できるので、共有ファイルで安全に使えるのも嬉しいポイントです。</p>



<h3 class="wp-block-heading"><span id="toc2">FILTER関数で何ができる？</span></h3>



<p class="wp-block-paragraph">FILTER関数が活躍するのは、おもに次のような場面です。</p>



<ul class="wp-block-list"><li>売上一覧から <strong>特定の支店・部署・担当者だけ</strong> を取り出したいとき</li><li>受注台帳から <strong>「今月」「今週」など期間で絞った行だけ</strong> を別シートに展開したいとき</li><li>申請一覧から <strong>ステータスが「承認待ち」の行だけ</strong> をダッシュボードに表示したいとき</li><li>プルダウンと連動させて <strong>選んだ条件で表示が切り替わる動的レポート</strong> を作りたいとき</li><li>元データを壊さずに、<strong>別シートで集計用の中間テーブル</strong> を作りたいとき</li></ul>



<p class="wp-block-paragraph">NOTE: FILTER関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも Microsoft 365 / Excel 2021 以降で対応していますが、引数の仕様が一部異なります（後述の「Excel版との違い」を参照）。古いExcel（2019以前）と互換性が必要なファイルでは使えないので、その場合はオートフィルターやIF＋配列数式で代用してください。</p>



<h3 class="wp-block-heading"><span id="toc3">メニューの「フィルター機能」との違い</span></h3>



<p class="wp-block-paragraph">スプレッドシートにはメニュー > データ > 「フィルタを作成」というUI操作のフィルター機能もありますが、関数版とは性格が大きく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FILTER関数</th><th>フィルター機能（UI）</th></tr></thead><tbody><tr><td>元データへの影響</td><td>一切変更しない（別セルに出力）</td><td>表示を直接絞り込む（裏では全行残る）</td></tr><tr><td>結果の出力先</td><td>任意の別セル・別シート</td><td>元データの行を非表示にして再描画</td></tr><tr><td>条件変更</td><td>数式やプルダウンを変えるだけで再計算</td><td>毎回メニュー操作が必要</td></tr><tr><td>共有ファイル</td><td>他人の表示に影響しない</td><td>フィルタ表示モードを使わないと他人の表示まで変わる</td></tr><tr><td>レポート自動化</td><td>得意（数式で完結）</td><td>不向き（手動操作前提）</td></tr><tr><td>抽出結果の再利用</td><td>そのまま参照・集計可能</td><td>コピペが必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ざっくり言うと、<strong>一度きりの確認ならUI、繰り返し見るレポートなら関数</strong>と覚えておくと使い分けがラクです。</p>



<h2 class="wp-block-heading"><span id="toc4">FILTER関数の構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=FILTER(範囲, 条件1, [条件2, ...])</code></pre>



<p class="wp-block-paragraph">最初に抽出したい「範囲」を指定し、その後にTRUE / FALSEを返す「条件」を1つ以上書きます。条件を複数並べるとすべてAND条件として適用されます。</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>抽出対象のデータ範囲（例: <code>A2:D100</code>）。1列だけでも複数列でもOK</td></tr><tr><td>条件1</td><td>必須</td><td>TRUE / FALSEを返す配列の条件式（例: <code>B2:B100="東京"</code>）。範囲の行数と一致させる</td></tr><tr><td>条件2, &#8230;</td><td>任意</td><td>追加の条件。複数指定するとすべてAND条件で適用される</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは <strong>条件式が「TRUE / FALSEの配列」を返す</strong> という点です。たとえば <code>B2:B6="東京"</code> と書くと、B2〜B6の各セルが「東京」かどうかを判定し、<code>{TRUE; FALSE; TRUE; FALSE; FALSE}</code> のような配列が作られます。FILTER関数はこの配列を受け取り、TRUEの行だけを抜き出す仕組みです。</p>



<p class="wp-block-paragraph">TIP: 条件式の範囲の行数は、必ず第1引数の範囲と揃えてください。<code>A2:D6</code>（5行）に対して条件を <code>B2:B100</code>（99行）にすると <code>#VALUE!</code> エラーになります。後述の「よくあるエラーと対処法」で詳しく説明します。</p>



<h3 class="wp-block-heading"><span id="toc7">FILTER関数の動作イメージ早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>数式の例</th><th>やりたいこと</th><th>戻り値</th></tr></thead><tbody><tr><td><code>=FILTER(A2:D6, B2:B6="東京")</code></td><td>B列が「東京」の行を全列抽出</td><td>東京の全行</td></tr><tr><td><code>=FILTER(A2:A6, B2:B6="東京")</code></td><td>B列が「東京」の行のうちA列だけ抽出</td><td>東京の日付列のみ</td></tr><tr><td><code>=FILTER(A2:D6, B2:B6="東京", D2:D6>=10000)</code></td><td>東京かつ金額1万以上をAND抽出</td><td>該当行のみ</td></tr><tr><td><code>=FILTER(A2:D6, (B2:B6="東京")+(B2:B6="大阪"))</code></td><td>東京または大阪をOR抽出</td><td>該当行のみ</td></tr><tr><td><code>=IFERROR(FILTER(A2:D6, B2:B6="福岡"), "該当なし")</code></td><td>該当なしのときメッセージ表示</td><td>&#8220;該当なし&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">これだけ覚えれば実務の8割はカバーできます。あとは応用例で組み合わせのバリエーションを増やしていきましょう。</p>



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



<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"><strong>やりたいこと</strong>: B列が「東京」の行だけを抽出する。</p>



<p class="wp-block-paragraph">空いているセル（たとえばF2）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, B2:B6=&quot;東京&quot;)</code></pre>



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



<p class="wp-block-paragraph">結果はこうなります。</p>



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



<p class="wp-block-paragraph">B列が「東京」の行だけが自動で出力されました。元のデータはまったく変わりません。条件に合う行が <strong>まるごとコピーされる</strong> のがFILTER関数の特徴です。VLOOKUPが「1つの値を返す」のと対照的に、FILTERは「行全体」を返します。</p>



<p class="wp-block-paragraph">TIP: FILTER関数の結果は複数行に <strong>自動で展開（スピル）</strong> されます。出力先のセルに他のデータがあると <code>#REF!</code> エラーになるので、下方向・右方向に十分な空きスペースを確保しておいてください。誰かが下のセルに値を入力すると関数全体がエラーになるので、共有ファイルでは出力先に色を付けておくと事故防止になります。</p>



<h2 class="wp-block-heading"><span id="toc9">FILTER関数で複数条件を指定する（AND・OR）</span></h2>



<p class="wp-block-paragraph">FILTER関数では、複数の条件を組み合わせて絞り込めます。書き方はAND条件とOR条件で異なるので、ここで一気に押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">AND条件（すべて満たす）</span></h3>



<p class="wp-block-paragraph">AND条件は、条件を引数として <strong>カンマで区切る</strong> か、<code>*</code>（掛け算）演算子で結合します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, B2:B6=&quot;東京&quot;, D2:D6&gt;=10000)</code></pre>



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



<p class="wp-block-paragraph">この数式は「支店が東京」<strong>かつ</strong>「金額が10,000円以上」の行を返します。</p>



<p class="wp-block-paragraph"><code>*</code> 演算子を使う書き方もあります。結果はまったく同じです。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, (B2:B6=&quot;東京&quot;)*(D2:D6&gt;=10000))</code></pre>



<p class="wp-block-paragraph">カンマ区切りのほうが読みやすいので普段はそちらで十分ですが、後述のOR条件と混在させたいときには <code>*</code> の書き方が必要になります。</p>



<h3 class="wp-block-heading"><span id="toc11">OR条件（いずれかを満たす）</span></h3>



<p class="wp-block-paragraph">OR条件は <code>+</code>（足し算）演算子で条件をつなぎます。カンマ区切りはOR条件としては使えないので注意してください。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, (B2:B6=&quot;東京&quot;)+(B2:B6=&quot;大阪&quot;))</code></pre>



<p class="wp-block-paragraph">この数式は「支店が東京」<strong>または</strong>「支店が大阪」の行を返します。</p>



<p class="wp-block-paragraph">NOTE: <code>*</code> と <code>+</code> が使える理由は、条件式が TRUE=1 / FALSE=0 の数値配列として扱われるためです。掛け算は「両方1のときだけ1」=AND、足し算は「どちらかが1以上なら1以上」=OR の動きになります。OR条件で同じ行が両方に該当することは原理的にないので、足し算の結果が2以上になる心配はありません。</p>



<h3 class="wp-block-heading"><span id="toc12">AND/OR を組み合わせる</span></h3>



<p class="wp-block-paragraph">ANDとORを混在させたい場合は、OR条件のかたまりを <code>()</code> で囲んでから <code>*</code> で他の条件と結合します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, ((B2:B6=&quot;東京&quot;)+(B2:B6=&quot;大阪&quot;))*(D2:D6&gt;=10000))</code></pre>



<p class="wp-block-paragraph">「東京または大阪」<strong>かつ</strong>「金額10,000円以上」の行が返ります。括弧の付け方を間違えると意図しない結果になりやすいので、複雑な条件は <strong>OR部分を先に書く</strong> と整理しやすいです。</p>



<p class="wp-block-paragraph">TIP: 条件が3つ以上になる場合は、いったん別のセルに <code>=B2:B6="東京"</code> のような中間配列を出してみると、TRUE/FALSEの並びを目で確認できてデバッグがラクになります。中間配列がそろったところでFILTER関数に組み込み直すのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc13">FILTER関数の実務テンプレ7パターン</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく出てくる7パターンを順に紹介します。コピペして使えるサンプル数式付きなので、自分のシートに合わせて範囲だけ書き換えてください。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン1: プルダウン連動の動的レポート</span></h3>



<p class="wp-block-paragraph">プルダウンと組み合わせると、選択した条件のデータだけを動的に抽出できます。月次レポートやダッシュボードでよく使う構成です。</p>



<p class="wp-block-paragraph">たとえば、F1セルにプルダウンで支店名を選べるようにしておき、F3セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:D6, B2:B6=F1)</code></pre>



<p class="wp-block-paragraph">F1で「大阪」を選べば大阪のデータだけが、「名古屋」を選べば名古屋のデータだけが表示されます。条件セルを切り替えるだけで結果が自動で変わるので、毎月の支店別チェックがワンクリックで終わります。</p>



<p class="wp-block-paragraph">プルダウン自体の作り方は <a href="https://mashukabu.com/spreadsheet-pulldown/">スプレッドシートのプルダウン作り方｜色付け・連動まで解説</a> を参考にしてください。「全件表示」もしたい場合は、後述のパターン7「条件セルが空のとき全件表示」を組み合わせると便利です。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン2: 期間で絞り込む（今月・先月・直近30日）</span></h3>



<p class="wp-block-paragraph">日付列がある場合、特定の期間だけを抽出できます。月次レポートの定番パターンです。</p>



<p class="wp-block-paragraph">たとえば「2026年3月のデータだけ」を取り出したい場合は次のように書きます。</p>



<pre class="wp-block-code"><code>=FILTER(A2:E100, E2:E100&gt;=DATE(2026,3,1), E2:E100&lt;=DATE(2026,3,31))</code></pre>



<p class="wp-block-paragraph">DATE関数で開始日と終了日を指定し、2つの条件をカンマで区切ります。AND条件で「3月1日以降 かつ 3月31日以前」になるので、3月中のデータだけが抽出されます。</p>



<p class="wp-block-paragraph">「今月」や「直近30日」を自動で取りたい場合は TODAY関数を組み合わせます。</p>



<pre class="wp-block-code"><code>=FILTER(A2:E100, E2:E100&gt;=EOMONTH(TODAY(),-1)+1, E2:E100&lt;=EOMONTH(TODAY(),0))</code></pre>



<p class="wp-block-paragraph"><code>EOMONTH(TODAY(),-1)+1</code> は「今月の1日」、<code>EOMONTH(TODAY(),0)</code> は「今月末」を意味します。これでシートを開くたびに今月分が自動で表示されるレポートが完成します。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン3: FILTER + SORT で抽出結果を並べ替え</span></h3>



<p class="wp-block-paragraph">FILTERで抽出した結果を金額順や日付順に並べ替えたいときは、<a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a> で囲みます。</p>



<pre class="wp-block-code"><code>=SORT(FILTER(A2:D6, B2:B6=&quot;東京&quot;), 4, FALSE)</code></pre>



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



<p class="wp-block-paragraph">SORT関数の第2引数 <code>4</code> は「4列目（金額）で並べ替え」、第3引数 <code>FALSE</code> は「降順」を意味します。これで東京支店のデータを金額が大きい順に表示できます。</p>



<p class="wp-block-paragraph">TIP: SORT関数の列番号は <strong>FILTER結果の中での列番号</strong> です。元データのシート上の列番号ではないので、列を絞って抽出している場合はFILTER結果側で数え直してください。<code>=SORT(FILTER(A2:A6, B2:B6="東京"), 1, TRUE)</code> のように、抽出が1列だけなら列番号は必ず1になります。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン4: 特定の列だけを取り出す（配列リテラル / CHOOSECOLS）</span></h3>



<p class="wp-block-paragraph">FILTER結果から一部の列だけ取り出したい場合は、配列リテラル <code>{}</code> で列を指定します。</p>



<pre class="wp-block-code"><code>={FILTER(A2:A6, B2:B6=&quot;東京&quot;), FILTER(D2:D6, B2:B6=&quot;東京&quot;)}</code></pre>



<p class="wp-block-paragraph">A列（日付）とD列（金額）だけが抽出されます。レポートに見せたい項目を絞れるので、社外共有用の表を作るときに便利です。</p>



<p class="wp-block-paragraph">5列以上の元データから3〜4列だけ抜き出したい場合は、CHOOSECOLS関数と組み合わせる書き方もあります。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(FILTER(A2:E100, B2:B100=&quot;東京&quot;), 1, 2, 5)</code></pre>



<p class="wp-block-paragraph">これでFILTER結果の1・2・5列目だけが残ります。配列リテラルの書き方より見通しがよく、列番号を変えるだけで取り出す列を調整できるのが利点です。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン5: FILTER + UNIQUE で重複を除く</span></h3>



<p class="wp-block-paragraph">FILTERで抽出した結果に重複がある場合、UNIQUE関数で囲むとユニーク値だけを残せます。</p>



<pre class="wp-block-code"><code>=UNIQUE(FILTER(B2:C100, D2:D100&gt;=10000))</code></pre>



<p class="wp-block-paragraph">たとえば「金額1万円以上の案件に登場した支店・担当者の組み合わせ」だけを一覧化したいときに使えます。生データから関係者リストを作るような場面で重宝します。</p>



<p class="wp-block-paragraph">担当者だけのユニーク一覧が欲しい場合は、列を1つに絞ってからUNIQUEにかけます。</p>



<pre class="wp-block-code"><code>=UNIQUE(FILTER(C2:C100, D2:D100&gt;=10000))</code></pre>



<h3 class="wp-block-heading"><span id="toc19">パターン6: FILTER + COUNTA / SUM で集計</span></h3>



<p class="wp-block-paragraph">FILTER単体では合計や件数を出せませんが、COUNTAやSUM系の関数で囲めば簡単に集計できます。</p>



<pre class="wp-block-code"><code>=COUNTA(FILTER(A2:A6, B2:B6=&quot;東京&quot;))</code></pre>



<p class="wp-block-paragraph">これで「東京支店のデータ件数」が出ます。同じ要領で合計も書けます。</p>



<pre class="wp-block-code"><code>=SUM(FILTER(D2:D6, B2:B6=&quot;東京&quot;))</code></pre>



<p class="wp-block-paragraph">「東京支店の金額合計」が一発で出ます。SUMIFやCOUNTIFと違って、条件式を <code>*</code> / <code>+</code> で自由に組み合わせられるのがFILTERを噛ませる利点です。ただし純粋に1条件の合計だけならSUMIFのほうがシンプルなので、用途に応じて使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc20">パターン7: 条件セルが空のとき全件表示</span></h3>



<p class="wp-block-paragraph">プルダウン連動レポートで「条件を選んでいないときは全件表示したい」というニーズはよくあります。IF関数と組み合わせて条件を切り替えると実現できます。</p>



<pre class="wp-block-code"><code>=IF(F1=&quot;&quot;, A2:D6, FILTER(A2:D6, B2:B6=F1))</code></pre>



<p class="wp-block-paragraph">F1が空のときはA2:D6をそのまま表示し、F1に値があるときだけFILTERで絞り込みます。プルダウンの選択肢に「（すべて）」を入れておき、その項目を選んだら全件表示する設計にすると、利用者の操作感がぐっと良くなりますよ。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー / 症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#N/A</code></td><td>条件に一致するデータがない</td><td><code>=IFERROR(FILTER(...), "該当データなし")</code> で空結果時のメッセージを設定</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルに既にデータがある（スピル先がふさがっている）</td><td>出力先の下方向・右方向を空けるか、出力位置を変更する</td></tr><tr><td><code>#VALUE!</code></td><td>条件式の範囲サイズが元データと合っていない</td><td>範囲の行数を揃える（例: <code>A2:D100</code> と <code>B2:B100</code>）</td></tr><tr><td><code>#NAME?</code></td><td>関数名のタイポ（<code>FILTR</code> 等）</td><td>スペルを確認する</td></tr><tr><td><code>#ERROR!</code></td><td>引数の区切り（カンマ）の前後に不要な文字が混入</td><td>全角カンマや余分なスペースを削除</td></tr><tr><td>結果が0行になる</td><td>条件の文字列に全角/半角・スペースの違いがある</td><td>TRIM関数（前後空白除去）やASC関数（半角化）でデータを統一する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが <code>#N/A</code> エラーです。ExcelのFILTER関数には第3引数（該当なしの場合に返す値）がありますが、<strong>スプレッドシートのFILTER関数にはこの引数がありません</strong>。IFERRORで囲むのが定番の対処法です。</p>



<pre class="wp-block-code"><code>=IFERROR(FILTER(A2:D6, B2:B6=&quot;福岡&quot;), &quot;該当データなし&quot;)</code></pre>



<p class="wp-block-paragraph">TIP: <code>#VALUE!</code> エラーは範囲サイズの不一致が原因です。<code>A2:D6</code>（5行）に対して条件を <code>B2:B100</code>（99行）のように行数が違う範囲にすると発生します。データ件数が増減する可能性がある場合は、両方とも <code>A2:D</code> のように <strong>列まるごと指定</strong> にしておくと不一致が起きにくくなります。</p>



<h3 class="wp-block-heading"><span id="toc22">データがあるのに0行になるケース（デバッグ手順）</span></h3>



<p class="wp-block-paragraph">条件は正しそうなのに結果が表示されないときは、データの表記揺れが原因のことがほとんどです。代表的な揺れと対処は次の3つです。</p>



<ul class="wp-block-list"><li><strong>全角と半角</strong>: 「東京」と「東京」（全角半角混在）は別文字として扱われる</li><li><strong>前後のスペース</strong>: 「東京 」（末尾に空白）と「東京」は別扱い</li><li><strong>大文字小文字</strong>: アルファベットは区別される（例: &#8220;ABC&#8221; と &#8220;abc&#8221;）</li></ul>



<p class="wp-block-paragraph">対処手順は次のとおりです。</p>



<ol class="wp-block-list"><li>別のセルに <code>=B2=F1</code> のように <strong>単純な等号比較</strong> を書いて、TRUE / FALSEを目視確認する</li><li>FALSEが返るセルがあれば、その値を <code>=LEN(B2)</code> と <code>=LEN(F1)</code> で文字数比較する</li><li>文字数が違えばスペース混入、同じなら全角半角混在を疑う</li><li>元データを <code>=TRIM(ASC(B2))</code> で整形した補助列を作り、その補助列を条件範囲に指定する</li></ol>



<p class="wp-block-paragraph">この4ステップで、ほぼすべての「0行になる問題」は解決できます。共有ファイルでは入力規則やプルダウンを使って <strong>そもそも揺れさせない</strong> 設計にしておくと、後々のトラブルが激減します。</p>



<h2 class="wp-block-heading"><span id="toc23">FILTERとQUERY・ARRAYFORMULAの違い・使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには、FILTER以外にもデータを操作する強力な関数があります。それぞれ得意分野が異なるので、用途に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FILTER関数</th><th>QUERY関数</th><th>ARRAYFORMULA</th></tr></thead><tbody><tr><td>主な用途</td><td>条件に一致する行の抽出</td><td>抽出+集計+並べ替えを一括</td><td>既存の関数を全行に一括適用</td></tr><tr><td>構文の難易度</td><td>やさしい</td><td>やや難（SQL風の構文）</td><td>関数による</td></tr><tr><td>複数条件</td><td><code>*</code> / <code>+</code> 演算子で対応</td><td>WHERE句に条件を列挙</td><td>関数内でIF等を組み合わせ</td></tr><tr><td>集計（合計・平均）</td><td>単体では不可。SUMと組み合わせる</td><td>SELECT句でSUM/AVGが使える</td><td>SUM等を配列で適用</td></tr><tr><td>グループ化（部署別合計など）</td><td>不可</td><td>GROUP BY で対応</td><td>不可（ピボットテーブル推奨）</td></tr><tr><td>並べ替え</td><td>SORT関数で囲む</td><td>ORDER BY で対応</td><td>SORT関数で囲む</td></tr><tr><td>結果の見出し列</td><td>付かない</td><td>LABEL句で付けられる</td><td>付かない</td></tr><tr><td>向いている場面</td><td>シンプルな条件抽出</td><td>複雑な集計レポート</td><td>列ごとの計算を一括処理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>ざっくりまとめると</strong>:</p>



<ul class="wp-block-list"><li><strong>「条件に合う行を取り出すだけ」</strong> → FILTER関数がシンプルで最適</li><li><strong>「集計やグループ化もしたい」</strong> → QUERY関数が強力</li><li><strong>「全行に同じ計算をかけたい」</strong> → ARRAYFORMULAの出番</li></ul>



<h3 class="wp-block-heading"><span id="toc24">FILTER と QUERY の選び分けフロー</span></h3>



<p class="wp-block-paragraph">どちらを使うか迷ったら、次の順番で判断するとブレません。</p>



<ol class="wp-block-list"><li><strong>集計が必要か？</strong> → 必要なら QUERY（SELECT句でSUM/AVG/COUNTが書ける）</li><li><strong>グループ化が必要か？</strong> → 必要なら QUERY（GROUP BYで部署別集計などが可能）</li><li><strong>見出し列も自動で付けたい？</strong> → 必要なら QUERY（LABEL句で列名を整えられる）</li><li><strong>並べ替えも一緒にしたい？</strong> → どちらでも対応可能。シンプルさ重視ならFILTER+SORT</li><li><strong>上記すべてNOで、条件で行を絞り込むだけ？</strong> → FILTER が一番読みやすく保守もしやすい</li></ol>



<p class="wp-block-paragraph">迷ったらまずFILTER関数を試してみてください。シンプルな条件抽出ならFILTERが圧倒的にわかりやすく、後から条件を増減するメンテナンスもラクです。</p>



<h3 class="wp-block-heading"><span id="toc25">FILTER と XLOOKUP・XMATCH の違い</span></h3>



<p class="wp-block-paragraph">検索系の新関数との違いも気になるかもしれません。</p>



<ul class="wp-block-list"><li><strong>XLOOKUP</strong>: 1つの値を検索して <strong>対応する1行（または1列）だけ</strong> を返す</li><li><strong>XMATCH</strong>: 1つの値が <strong>何行目（何番目）にあるか</strong> を返す</li><li><strong>FILTER</strong>: 条件に一致する <strong>すべての行</strong> を返す</li></ul>



<p class="wp-block-paragraph">「商品コードから商品名を引きたい」ような1対1の検索はXLOOKUPの出番です。「東京支店の全データを出したい」ような複数行抽出はFILTERの得意分野です。検索値の位置だけ知りたいならXMATCHを使います。</p>



<p class="wp-block-paragraph">XLOOKUP・XMATCHの詳しい使い方は <a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方</a> と <a href="https://mashukabu.com/spreadsheet-xmatch-function/">スプレッドシートのXMATCH関数の使い方</a> もあわせてご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc26">Excel版FILTERとの違い</span></h3>



<p class="wp-block-paragraph">Excel（Microsoft 365 / Excel 2021以降）にもFILTER関数がありますが、引数仕様が少し異なります。スプレッドシートとファイル連携する場合は要注意です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>スプレッドシート版</th><th>Excel版</th></tr></thead><tbody><tr><td>引数の数</td><td>2〜（範囲 + 条件×複数）</td><td>3（範囲 + 条件 + 該当なし時の値）</td></tr><tr><td>該当なしの返し方</td><td>IFERROR で囲む</td><td>第3引数で指定可能</td></tr><tr><td>複数条件のAND</td><td>カンマ区切り または <code>*</code></td><td><code>*</code> のみ</td></tr><tr><td>複数条件のOR</td><td><code>+</code></td><td><code>+</code></td></tr><tr><td>列方向の抽出</td><td>可能（条件式の方向で決まる）</td><td>可能（条件式の方向で決まる）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スプレッドシートで作ったブックをExcelで開くと、複数条件をカンマ区切りで書いた数式は <strong>動作しません</strong>。Excelと共有する可能性がある場合は、最初から <code>*</code> で書いておくと安全です。</p>



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



<p class="wp-block-paragraph">この記事では、GoogleスプレッドシートのFILTER関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=FILTER(範囲, 条件)</code> で条件に一致する行を自動抽出</li><li><strong>AND条件</strong>: カンマ区切りまたは <code>*</code> 演算子</li><li><strong>OR条件</strong>: <code>+</code> 演算子で条件をつなぐ</li><li><strong>実務テンプレ</strong>: プルダウン連動 / 期間絞り込み / SORT連携 / 列抽出 / UNIQUE / 集計 / 全件切替</li><li><strong>空結果対策</strong>: <code>=IFERROR(FILTER(...), "メッセージ")</code> で <code>#N/A</code> を回避</li><li><strong>デバッグ</strong>: 0行になるときは等号比較 → LEN比較 → TRIM/ASC整形の4ステップ</li><li><strong>使い分け</strong>: シンプルな抽出はFILTER、集計込みならQUERY、全行計算ならARRAYFORMULA</li></ul>



<p class="wp-block-paragraph">FILTER関数は一度覚えてしまえば本当に使い勝手のいい関数です。まずは自分の手元のデータに <code>=FILTER(A2:D, B2:B="東京")</code> のような数式を当ててみてください。元データを壊さずに「欲しい行だけ」を取り出せる安心感を、ぜひ体感してもらえたら嬉しいです。</p>



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



<h3 class="wp-block-heading"><span id="toc28">この記事を書いた人</span></h3>



<p class="wp-block-paragraph">biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT・SORTN・SORTBY関数の使い方｜データを自動で並べ替える</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違いも解説</a></li><li><a href="https://mashukabu.com/spreadsheet-xmatch-function/">スプレッドシートのXMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-switch-function/">スプレッドシートのSWITCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-pulldown/">スプレッドシートのプルダウン作り方｜色付け・連動まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-query-function/">スプレッドシートのQUERY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULAの使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-gemini-ai-function/">スプレッドシートでGemini（AI関数）を使う方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-filter-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのDGET関数の使い方｜条件に一致するデータを1件だけ抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-dget/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-dget/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 22 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DGET関数]]></category>
		<category><![CDATA[データベース関数]]></category>
		<category><![CDATA[レコード検索]]></category>
		<category><![CDATA[条件抽出]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3295</guid>

					<description><![CDATA[ExcelのDGET関数の使い方を基本から応用まで解説します。構文と引数の意味、条件に一致するデータを1件だけ抽出する方法、複数条件での絞り込み、#VALUE!エラーの原因と対処法を実例付きで紹介。VLOOKUPとの違いや使い分けも解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「データベースから条件に合うデータを1件だけ取り出したい」と思ったことはありませんか。VLOOKUPだと検索列が左端にないと使えなかったり、条件を複数指定しにくかったりしますよね。そんなときに便利なのがDGET関数です。</p>



<p class="wp-block-paragraph">DGET関数を使えば、データベース形式のリストから条件に一致するレコードを<strong>ピンポイントで1件だけ</strong>取り出せます。この記事では、DGET関数の基本から複数条件の指定方法、エラーの対処法まで実例付きで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DGET関数とは？</a></li><li><a href="#toc2" tabindex="0">DGET関数の書き方</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">検索条件の作り方</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方</a></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><li><a href="#toc10" tabindex="0">セル参照で条件を動的に切り替える</a></li></ol></li><li><a href="#toc11" tabindex="0">OR条件とワイルドカードを使う</a><ol><li><a href="#toc12" tabindex="0">OR条件の書き方</a></li><li><a href="#toc13" tabindex="0">ワイルドカードで部分一致検索</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc16" tabindex="0">#VALUE! エラー（フィールド指定の問題）</a></li><li><a href="#toc17" tabindex="0">#NAME? エラー</a></li></ol></li><li><a href="#toc18" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc19" tabindex="0">Q: 条件に一致するデータが複数件あるか事前に確認する方法は？</a></li><li><a href="#toc20" tabindex="0">Q: DGET関数でワイルドカードは使えますか？</a></li><li><a href="#toc21" tabindex="0">Q: DGET関数は大文字・小文字を区別しますか？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">似た関数との使い分け</a></li><li><a href="#toc24" tabindex="0">DGET関数とXLOOKUP関数の使い分け</a></li><li><a href="#toc25" tabindex="0">関連するデータベース関数</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">DGET関数は、Excelのデータベース関数の1つで、指定した条件に一致するレコードから<strong>1つの値を抽出する</strong>関数です。</p>



<ul class="wp-block-list"><li><strong>読み方</strong>: ディー ゲット</li><li><strong>語源</strong>: Database GET（データベースから取得する）</li><li><strong>対応バージョン</strong>: Excel 2007 / 2010 / 2013 / 2016 / 2019 / 2021 / Microsoft 365</li></ul>



<p class="wp-block-paragraph">DGET関数の特徴は、条件に一致するレコードが<strong>ちょうど1件</strong>のときだけ値を返すことです。0件や2件以上だとエラーになるため、「該当データが1つに絞れているか」の確認にも使えます。</p>



<h2 class="wp-block-heading"><span id="toc2">DGET関数の書き方</span></h2>



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



<pre class="wp-block-code"><code>=DGET(データベース, フィールド, 検索条件)</code></pre>



<p class="wp-block-paragraph">DGET関数の引数は3つで、すべて必須です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>データベース</td><td>必須</td><td>検索対象のデータ範囲。<strong>先頭行に列見出し（ヘッダー）</strong>が必要です</td></tr><tr><td>フィールド</td><td>必須</td><td>値を取り出す列の指定。列見出しの文字列（例: <code>"売上"</code>）または列番号（例: <code>3</code>）で指定します</td></tr><tr><td>検索条件</td><td>必須</td><td>抽出条件を記述したセル範囲。<strong>列見出しと条件値のセット</strong>で指定します</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">フィールドの指定方法は2通りあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>指定方法</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>列見出しの文字列</td><td><code>"売上"</code></td><td>ダブルクォーテーションで囲んだ見出し名</td></tr><tr><td>列の位置番号</td><td><code>3</code></td><td>データベース範囲の左端を1として数えた番号</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">列見出しの文字列で指定するほうが、列の挿入・削除に強いのでおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc5">検索条件の作り方</span></h3>



<p class="wp-block-paragraph">検索条件はセル範囲で指定します。条件の書き方にはルールがあるので確認しておきましょう。</p>



<ul class="wp-block-list"><li><strong>1行目</strong>: データベースと同じ列見出しを入力する</li><li><strong>2行目以降</strong>: 抽出したい条件値を入力する</li><li>条件範囲はデータベースの範囲と<strong>重ならない場所</strong>に作成する</li></ul>



<p class="wp-block-paragraph">条件をデータベースの下に置くと、データを追加したときに範囲が重なってしまいます。データベースの横や上に条件範囲を作るのが安全です。</p>



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



<p class="wp-block-paragraph">社員名簿から特定の社員の情報を取り出す例で、DGET関数の使い方を見ていきましょう。</p>



<p class="wp-block-paragraph"><strong>データ（A1:D6）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>社員番号</th><th>氏名</th><th>部署</th><th>売上</th></tr></thead><tbody><tr><td>1001</td><td>田中太郎</td><td>営業部</td><td>500000</td></tr><tr><td>1002</td><td>鈴木花子</td><td>経理部</td><td>300000</td></tr><tr><td>1003</td><td>佐藤一郎</td><td>営業部</td><td>450000</td></tr><tr><td>1004</td><td>山田美咲</td><td>総務部</td><td>280000</td></tr><tr><td>1005</td><td>高橋健一</td><td>営業部</td><td>520000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>検索条件（F1:F2）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>社員番号</th></tr></thead><tbody><tr><td>1003</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>数式</strong>:</p>



<pre class="wp-block-code"><code>=DGET(A1:D6, &quot;氏名&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph"><strong>結果</strong>: <code>佐藤一郎</code></p>



<p class="wp-block-paragraph">社員番号が1003のレコードから、「氏名」列の値を取り出しています。フィールドに <code>"売上"</code> を指定すれば、同じ条件で売上金額を取得できます。</p>



<pre class="wp-block-code"><code>=DGET(A1:D6, &quot;売上&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph"><strong>結果</strong>: <code>450000</code></p>



<p class="wp-block-paragraph">このように、検索条件はそのままで、フィールドを変えるだけで取り出す列を切り替えられるのがポイントです。</p>



<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">DGET関数は複数の条件を同時に指定できます。条件範囲に複数の列見出しを横に並べると<strong>AND条件</strong>（すべてに一致）になります。</p>



<p class="wp-block-paragraph"><strong>検索条件（F1:G2）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>部署</th><th>売上</th></tr></thead><tbody><tr><td>営業部</td><td>>480000</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=DGET(A1:D6, &quot;氏名&quot;, F1:G2)</code></pre>



<p class="wp-block-paragraph"><strong>結果</strong>: <code>高橋健一</code></p>



<p class="wp-block-paragraph">「営業部」かつ「売上が480000より大きい」の両方を満たすレコードが高橋健一さん1件だけなので、正しく値が返ります。</p>



<h3 class="wp-block-heading"><span id="toc9">比較演算子を使った条件指定</span></h3>



<p class="wp-block-paragraph">検索条件では比較演算子を使えます。よく使うパターンをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件値の書き方</th><th>意味</th></tr></thead><tbody><tr><td><code>>500000</code></td><td>500000より大きい</td></tr><tr><td><code>>=500000</code></td><td>500000以上</td></tr><tr><td><code><300000</code></td><td>300000未満</td></tr><tr><td><code><>営業部</code></td><td>営業部以外</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">比較演算子を使うときは、条件値をそのままセルに入力してください。ダブルクォーテーションで囲む必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc10">セル参照で条件を動的に切り替える</span></h3>



<p class="wp-block-paragraph">条件値にセル参照を使えば、セルの入力を変えるだけで抽出結果を切り替えられます。</p>



<p class="wp-block-paragraph">たとえば、セルH2にプルダウンで部署名を入力できるようにしておき、検索条件を次のように設定します。</p>



<p class="wp-block-paragraph"><strong>検索条件（F1:G2）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>部署</th><th>売上</th></tr></thead><tbody><tr><td>（H2のセル参照）</td><td>>480000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">H2に「営業部」と入力すれば営業部の結果が、「経理部」と入力すれば経理部の結果が返ります。プルダウンとDGET関数を組み合わせると、簡易的な検索フォームを作れます。</p>



<h2 class="wp-block-heading"><span id="toc11">OR条件とワイルドカードを使う</span></h2>



<p class="wp-block-paragraph">DGET関数の検索条件は、書き方を工夫するとOR条件や部分一致での抽出にも対応できます。それぞれの書き方を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">OR条件の書き方</span></h3>



<p class="wp-block-paragraph">AND条件は列見出しを横に並べて作りましたが、<strong>OR条件</strong>（いずれかに一致）にしたい場合は、同じ列見出しを縦に複数行書きます。</p>



<p class="wp-block-paragraph"><strong>検索条件（F1:F3）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>部署</th></tr></thead><tbody><tr><td>営業部</td></tr><tr><td>経理部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このように書くと、「営業部」または「経理部」のいずれかに一致するレコードを対象にできます。</p>



<p class="wp-block-paragraph">ただし注意点があります。OR条件でDGET関数を使うと、複数のレコードがマッチしやすくなります。前述のとおりDGET関数は一致が2件以上あると <code>#VALUE!</code> エラーになるため、OR条件は結果的にエラーを招きやすい使い方です。</p>



<p class="wp-block-paragraph">複数件にマッチする可能性があるOR条件での抽出は、DGET関数よりも<a href="https://mashukabu.com/excel-function/">FILTER関数</a>のほうが適しています。FILTER関数なら、OR条件に一致するレコードをすべて一覧で取り出せます。</p>



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



<p class="wp-block-paragraph">検索条件にはワイルドカードを使えます。完全一致ではなく「○○で始まる」「○○を含む」といった曖昧な条件で抽出したいときに便利です。</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></tbody></table></figure>



<p class="wp-block-paragraph">たとえば氏名で部分一致検索をするには、次のように書きます。</p>



<p class="wp-block-paragraph"><strong>検索条件（F1:F2）</strong>:</p>



<figure class="wp-block-table"><table><thead><tr><th>氏名</th></tr></thead><tbody><tr><td>田中*</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>田中*</code> は「田中で始まる名前」に一致します。末尾を指定したい場合は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>氏名</th></tr></thead><tbody><tr><td>*一郎</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>*一郎</code> は「一郎で終わる名前」に一致します。ワイルドカードは文字列条件にそのまま入力するだけで使えるので、特別な設定は必要ありません。</p>



<p class="wp-block-paragraph">ワイルドカードを使うときも、複数のレコードに一致するとDGET関数はエラーになります。あくまで「1件に絞り込める部分一致」での利用がポイントです。</p>



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



<p class="wp-block-paragraph">DGET関数で発生しやすいエラーは3種類です。</p>



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



<p class="wp-block-paragraph"><strong>原因</strong>: 条件に一致するレコードが<strong>2件以上</strong>ある場合に発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>:</p>



<ul class="wp-block-list"><li>検索条件を追加して、結果が1件になるように絞り込む</li><li>社員番号やIDなど、一意の値（ユニークキー）を条件に使う</li><li>複数件の抽出が必要な場合は、DGET関数ではなく<a href="https://mashukabu.com/excel-function/">FILTER関数やテーブルのフィルター機能</a>を検討する</li></ul>



<h3 class="wp-block-heading"><span id="toc16">#VALUE! エラー（フィールド指定の問題）</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: フィールド引数に指定した列見出しがデータベースに存在しない場合にも <code>#VALUE!</code> エラーになります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>:</p>



<ul class="wp-block-list"><li>列見出しの文字列が完全に一致しているか確認する（スペースや全角半角の違いに注意）</li><li>列番号で指定する場合は、データベース範囲内の列数を超えていないか確認する</li></ul>



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



<p class="wp-block-paragraph"><strong>原因</strong>: 関数名のスペルミスや、文字列の引用符忘れが考えられます。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>:</p>



<ul class="wp-block-list"><li>関数名が <code>DGET</code> になっているか確認する</li><li>フィールドを文字列で指定する場合は、ダブルクォーテーション（<code>"</code>）で囲んでいるか確認する</li></ul>



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



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



<h3 class="wp-block-heading"><span id="toc19">Q: 条件に一致するデータが複数件あるか事前に確認する方法は？</span></h3>



<p class="wp-block-paragraph">DGET関数を実行する前に、<a href="https://mashukabu.com/excel-function-howto-use-dcount/">DCOUNT関数</a>で該当件数を確認しておくとエラーを防げます。</p>



<p class="wp-block-paragraph">数値列で件数を数える場合は次のように書きます。</p>



<pre class="wp-block-code"><code>=DCOUNT(データベース, &quot;数値列&quot;, 条件範囲)</code></pre>



<p class="wp-block-paragraph">文字列列で件数を数える場合はDCOUNTA関数を使います。</p>



<pre class="wp-block-code"><code>=DCOUNTA(データベース, &quot;文字列列&quot;, 条件範囲)</code></pre>



<p class="wp-block-paragraph">この結果が <code>1</code> であれば、DGET関数は正しく1件の値を返します。<code>0</code> や <code>2</code> 以上のときはDGET関数がエラーになるため、条件の見直しが必要だと判断できます。</p>



<h3 class="wp-block-heading"><span id="toc20">Q: DGET関数でワイルドカードは使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。<code><em></code>（0文字以上の任意の文字列）と <code>?</code>（任意の1文字）が利用可能です。文字列の条件にそのまま書けばよく、たとえば「田中</em>」と入力すれば「田中で始まる名前」に一致します。ただし複数件に一致するとエラーになる点には注意してください。</p>



<h3 class="wp-block-heading"><span id="toc21">Q: DGET関数は大文字・小文字を区別しますか？</span></h3>



<p class="wp-block-paragraph">区別しません。「YAMADA」「yamada」「Yamada」はすべて同じものとして扱われます。大文字・小文字を区別した検索が必要な場合は、EXACT関数と組み合わせた別の方法を検討してください。</p>



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



<p class="wp-block-paragraph">DGET関数は、データベースから条件に一致するデータを<strong>1件だけ取り出す</strong>ための関数です。</p>



<p class="wp-block-paragraph">覚えておきたいポイントをまとめます。</p>



<ul class="wp-block-list"><li>構文は <code>=DGET(データベース, フィールド, 検索条件)</code> の3つの引数</li><li>検索条件は列見出し+条件値のセル範囲で指定する</li><li>複数条件はAND条件（横並び）で絞り込める</li><li>結果が0件または2件以上のときはエラーになる</li><li>複数件を取り出したい場合はFILTER関数を検討する</li></ul>



<h3 class="wp-block-heading"><span id="toc23">似た関数との使い分け</span></h3>



<p class="wp-block-paragraph">DGET関数と似た機能を持つ関数を比較してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th><th>複数条件</th><th>戻り値</th></tr></thead><tbody><tr><td>DGET</td><td>条件に一致する値を1件抽出</td><td>対応</td><td>単一の値（1件のみ）</td></tr><tr><td>VLOOKUP</td><td>検索値に一致する行から値を取得</td><td>非対応</td><td>単一の値</td></tr><tr><td>INDEX+MATCH</td><td>柔軟な位置指定で値を取得</td><td>組み合わせで対応</td><td>単一の値</td></tr><tr><td>FILTER</td><td>条件に一致するデータを一括抽出</td><td>対応</td><td>配列（複数件）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">条件に一致するデータが1件に絞れる場面では、VLOOKUPよりもDGET関数のほうがシンプルに書けることがあります。複数件を抽出したい場合はFILTER関数を検討してみてください。</p>



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



<p class="wp-block-paragraph">近年のExcelでは、VLOOKUPの後継としてXLOOKUP関数も広く使われています。DGET関数とXLOOKUP関数は得意な場面が異なるため、特徴を比較しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>DGET</th><th>XLOOKUP</th></tr></thead><tbody><tr><td>利用可能バージョン</td><td>Excel 2007以降（全バージョン）</td><td>Microsoft 365・Excel 2021以降</td></tr><tr><td>複数条件の指定</td><td>条件範囲で直感的に指定</td><td>IFやBOOLEAN演算子が必要</td></tr><tr><td>一致が0件/複数件</td><td>エラー（#VALUE!）</td><td>エラー回避の引数あり</td></tr><tr><td>検索方向</td><td>列見出しで指定（柔軟）</td><td>検索列と戻り列を個別指定</td></tr><tr><td>逆方向検索</td><td>不要（列見出しで直接指定）</td><td>対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">DGET関数が向いているのは、複数条件を直感的に組み合わせて1件だけ抽出したい場面や、古いバージョンのExcelを使っている場合です。条件範囲を作るだけで複雑な絞り込みを表現できます。</p>



<p class="wp-block-paragraph">XLOOKUP関数が向いているのは、Microsoft 365などの新しい環境で、一致が0件のときにエラーを返さず代替値を表示したい場合や、単純な検索値1つでの抽出を高速に行いたい場合です。</p>



<h3 class="wp-block-heading"><span id="toc25">関連するデータベース関数</span></h3>



<p class="wp-block-paragraph">データベース関数は他にも種類があります。目的に合わせて使い分けてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-daverage/">DAVERAGE関数</a> - 条件に一致するデータの平均値を求める</li><li><a href="https://mashukabu.com/excel-function-howto-use-dcount/">DCOUNT関数</a> - 条件に一致する数値データの個数を数える</li><li><a href="https://mashukabu.com/excel-function-howto-use-dmin/">DMIN関数</a> - 条件に一致するデータの最小値を求める</li></ul>



<p class="wp-block-paragraph">エラーの種類と対処法をもっと詳しく知りたい方は「<a href="https://mashukabu.com/excel-error-value-list/">Excelエラー値12種類の原因と対処法一覧</a>」も参考にしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-dget/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
