<?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>UNIQUE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/unique%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 01 Aug 2026 05:23:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>UNIQUE関数 &#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のUNIQUE関数の使い方｜重複削除・複数列・エラー対処まで網羅</title>
		<link>https://mashukabu.com/excel-function-howto-use-unique/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-unique/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 00:06:16 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COUNTIF]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[UNIQUE関数]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[動的配列関数]]></category>
		<category><![CDATA[重複削除]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1872</guid>

					<description><![CDATA[ExcelのUNIQUE関数の使い方を徹底解説。重複の削除機能・COUNTIF関数との違い、複数列でのユニーク判定、0や#SPILL!エラーの対処法、Excel 2019で使えない場合の対応バージョンまで、実務で役立つ使い方を網羅的にまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「このリストから重複を除いた一覧だけほしい」と思ったこと、ありませんか。</p>



<p class="wp-block-paragraph">取引先名や商品コードをコピペして、目視で重複を消していく。データが増えるたびに同じ作業をやり直す。そんな手作業に時間を取られている方は多いはずです。</p>



<p class="wp-block-paragraph">データタブの「重複の削除」を使う手もあります。ただしこの機能は、元の表そのものを書き換えてしまうんですよね。あとから「やっぱり元に戻したい」と思っても、消えた行は返ってきません。</p>



<p class="wp-block-paragraph">そこで登場するのがUNIQUE関数。数式を1つ書くだけで、重複を除いた一覧が別の場所に自動で作られます。</p>



<p class="wp-block-paragraph">元データには一切手を触れません。しかも元の表を更新すれば、一覧のほうも勝手に付いてきてくれますよ。</p>



<p class="wp-block-paragraph">この記事では、ExcelのUNIQUE関数の使い方を基本から解説します。複数列でのユニーク判定、「重複の削除」機能やCOUNTIF関数との使い分けも扱います。「0が出る」「#SPILL!」といったエラー対処まで、まとめて押さえていきましょう。</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">UNIQUE関数とは？Excelで重複を除いた一覧を作る関数</a><ol><li><a href="#toc2" tabindex="0">UNIQUE関数の読み方とできること</a></li><li><a href="#toc3" tabindex="0">UNIQUE関数が使えるExcelのバージョン</a></li><li><a href="#toc4" tabindex="0">基本構文と3つの引数</a></li></ol></li><li><a href="#toc5" tabindex="0">UNIQUE関数の使い方｜基本・複数列・組み合わせまで</a><ol><li><a href="#toc6" tabindex="0">重複を除いたリストを作る（もっとも基本の形）</a></li><li><a href="#toc7" tabindex="0">複数列でユニーク判定する｜同姓同名を1件にまとめないために</a></li><li><a href="#toc8" tabindex="0">1回だけ出現する値を抽出する（第3引数）</a></li><li><a href="#toc9" tabindex="0">横並びのリストは第2引数をTRUEにする</a></li><li><a href="#toc10" tabindex="0">SORT関数で並べ替える</a></li><li><a href="#toc11" tabindex="0">FILTER関数で絞り込んでから重複を除く</a></li><li><a href="#toc12" tabindex="0">件数を数える・1セルにまとめる</a></li><li><a href="#toc13" tabindex="0">出現回数もあわせて表示する（COUNTIF・COUNTIFS）</a></li></ol></li><li><a href="#toc14" tabindex="0">「重複の削除」機能・COUNTIF関数との違い｜どれを使うべき？</a><ol><li><a href="#toc15" tabindex="0">3ウェイ比較表（UNIQUE関数／重複の削除／COUNTIF関数）</a></li><li><a href="#toc16" tabindex="0">COUNTIF関数で重複をチェックする書き方</a></li><li><a href="#toc17" tabindex="0">場面別の使い分け基準</a></li></ol></li><li><a href="#toc18" tabindex="0">UNIQUE関数のよくあるエラーと注意点</a><ol><li><a href="#toc19" tabindex="0">結果に「0」が表示される</a></li><li><a href="#toc20" tabindex="0">#CALC!エラー</a></li><li><a href="#toc21" tabindex="0">#SPILL!エラー</a></li><li><a href="#toc22" tabindex="0">#NAME?エラー</a></li><li><a href="#toc23" tabindex="0">全角・半角や表記ゆれは「別の値」として残る</a></li><li><a href="#toc24" tabindex="0">データを追加しても一覧が増えない</a></li></ol></li><li><a href="#toc25" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc26" tabindex="0">Excel 2019でUNIQUE関数は使えますか？</a></li><li><a href="#toc27" tabindex="0">なぜ結果に「0」が表示されるのですか？</a></li><li><a href="#toc28" tabindex="0">全角・半角が混在するデータは重複と判定されますか？</a></li><li><a href="#toc29" tabindex="0">複数列を指定するときの注意点は？</a></li><li><a href="#toc30" tabindex="0">UNIQUE関数とCOUNTIF関数はどちらを使うべきですか？</a></li></ol></li><li><a href="#toc31" tabindex="0">まとめ</a><ol><li><a href="#toc32" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">UNIQUE関数とは？Excelで重複を除いた一覧を作る関数</span></h2>



<h3 class="wp-block-heading"><span id="toc2">UNIQUE関数の読み方とできること</span></h3>



<p class="wp-block-paragraph">UNIQUE関数（読み方：ユニーク関数）は、指定した範囲から重複を取り除いた一覧を返す関数です。英語の「unique」は「唯一の・重複のない」という意味。名前のとおりの働きをしてくれます。</p>



<p class="wp-block-paragraph">たとえば、こんな場面で使えます。</p>



<ul class="wp-block-list"><li>顧客名簿から重複なしの顧客一覧を作る</li><li>商品コードの入力履歴から取扱商品のマスタを起こす</li><li>入力規則（プルダウン）の選択肢を自動で用意する</li></ul>



<p class="wp-block-paragraph">こうした作業が、数式1本で終わります。</p>



<p class="wp-block-paragraph">大事なのは、UNIQUE関数が「動的配列関数」だという点。動的配列関数とは、1つのセルに数式を入れるだけで、結果が必要な広さまで自動で広がるタイプの関数のことです。この自動的に広がる動きを「スピル」と呼びます。</p>



<p class="wp-block-paragraph">つまり4件の一覧が返るなら、数式を入れたセルから下に4行ぶんが勝手に埋まるわけですね。1行ずつコピーする必要はありません。</p>



<p class="wp-block-paragraph">スピルの仕組みそのものを知りたい方は、<a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">スピルで集計・抽出を自動化する方法</a>もあわせてどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc3">UNIQUE関数が使えるExcelのバージョン</span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: UNIQUE関数はMicrosoft 365とExcel 2021以降で使えます。<strong>Excel 2019以前は非対応</strong>です。2019以前で入力すると、関数名が認識されず <code>#NAME?</code> エラーになります。</p></blockquote>



<p class="wp-block-paragraph">対応している環境を具体的に挙げると、次のとおりです。</p>



<ul class="wp-block-list"><li>Microsoft 365（Windows / Mac）</li><li>Excel 2024（Windows / Mac）</li><li>Excel 2021（Windows / Mac）</li><li>Excel for the web（ブラウザ版）</li><li>iPad / iPhone / Android版Excel</li></ul>



<p class="wp-block-paragraph">ブラウザ版のExcelでも問題なく動きます。会社のPCが2019のままでも、Web版が使える環境ならそちらで試せますよ。</p>



<p class="wp-block-paragraph">なお、UNIQUE関数を含むブックを非対応のバージョンで開いた場合は、少し話が変わります。Microsoftの説明では、動的配列数式は互換性チェッカーで検知されます。そのうえでCSE配列数式として表示される、とされています。</p>



<p class="wp-block-paragraph">CSE配列数式とは、Ctrl+Shift+Enterで確定する従来型の配列数式のこと。新規に入力したときの<code>#NAME?</code>とは別の挙動なので、混同しないようにしましょう。</p>



<p class="wp-block-paragraph">バージョン違いによる<code>#NAME?</code>は、<a href="https://mashukabu.com/excel-xlookup-filter-name-error-version/">XLOOKUP・FILTERが使えない原因と対処</a>で詳しく解説しています。9関数×5バージョンの対応表つきです。</p>



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



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



<pre class="wp-block-code"><code>=UNIQUE(配列, [列の比較], [回数指定])</code></pre>



<p class="wp-block-paragraph">英語表記では <code>=UNIQUE(array, [by_col], [exactly_once])</code> となります。角かっこ [ ] で囲まれた引数は、省略できるという意味です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>内容</th><th>既定値</th></tr></thead><tbody><tr><td>配列（array）</td><td>必須</td><td>重複を取り除く元のセル範囲や配列</td><td>&#8211;</td></tr><tr><td>列の比較（by_col）</td><td>省略可</td><td>FALSE＝行同士を比較して一意の行を返す／TRUE＝列同士を比較して一意の列を返す</td><td>FALSE</td></tr><tr><td>回数指定（exactly_once）</td><td>省略可</td><td>FALSE＝重複を1件にまとめた全ユニーク値／TRUE＝1回だけ出現した値のみ</td><td>FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">必須の引数は第1引数だけ。縦に並んだふつうのリストなら <code>=UNIQUE(A2:A8)</code> と書くだけで動きます。</p>



<p class="wp-block-paragraph">第2引数「列の比較」は、縦長のリストなら省略でOK。横方向に並んだデータを扱うときだけTRUEにする、と覚えておきましょう。</p>



<p class="wp-block-paragraph">第3引数「回数指定」はTRUEにすると意味がガラッと変わります。「重複を1件にまとめる」のではなく、「そもそも1回しか出てこない値だけ」を抜き出す動きになるんです。ここは取り違えやすいポイント。</p>



<h2 class="wp-block-heading"><span id="toc5">UNIQUE関数の使い方｜基本・複数列・組み合わせまで</span></h2>



<p class="wp-block-paragraph">ここからは実際のデータで見ていきます。以下の受注データ（A1:D8）を使って解説しますね。</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>ノートPC</td><td>128,000</td></tr><tr><td>鈴木</td><td>総務部</td><td>モニター</td><td>32,000</td></tr><tr><td>田中</td><td>経理部</td><td>ノートPC</td><td>128,000</td></tr><tr><td>佐藤</td><td>営業部</td><td>プリンター</td><td>45,000</td></tr><tr><td>鈴木</td><td>総務部</td><td>モニター</td><td>32,000</td></tr><tr><td>佐藤</td><td>営業部</td><td>ノートPC</td><td>128,000</td></tr><tr><td>山田</td><td>開発部</td><td>タブレット</td><td>68,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">1行目が見出しで、データは2行目から8行目までの7行です。営業部の「田中」さんと経理部の「田中」さんは別人（同姓同名）という設定にしています。</p>



<h3 class="wp-block-heading"><span id="toc6">重複を除いたリストを作る（もっとも基本の形）</span></h3>



<p class="wp-block-paragraph">まずは担当者の一覧を、重複なしで取り出してみます。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A8)</code></pre>



<p class="wp-block-paragraph">結果は4件です。上から「田中」「鈴木」「佐藤」「山田」の順に並びます。</p>



<figure class="wp-block-table"><table><thead><tr><th>担当者</th></tr></thead><tbody><tr><td>田中</td></tr><tr><td>鈴木</td></tr><tr><td>佐藤</td></tr><tr><td>山田</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式を入れたのは1セルだけ。それなのに結果は4行ぶんに広がります。これがスピルの働きですね。</p>



<p class="wp-block-paragraph">並び順にも注目してください。UNIQUE関数は元データに登場した順（初出順）で値を返します。あいうえお順や数値の昇順に並べ替えてはくれません。</p>



<p class="wp-block-paragraph">並び順を変えたいときは、後述のSORT関数と組み合わせます。</p>



<p class="wp-block-paragraph">商品名でも書き方は同じ。</p>



<pre class="wp-block-code"><code>=UNIQUE(C2:C8)</code></pre>



<p class="wp-block-paragraph">こちらは「ノートPC」「モニター」「プリンター」「タブレット」の4件が返ります。</p>



<h3 class="wp-block-heading"><span id="toc7">複数列でユニーク判定する｜同姓同名を1件にまとめないために</span></h3>



<p class="wp-block-paragraph">さきほどの <code>=UNIQUE(A2:A8)</code> の結果、実は少し危ういんです。「田中」は1件にまとまっていますが、営業部の田中さんと経理部の田中さんは別人でした。氏名だけで比べると、別人が同一人物として消えてしまいます。</p>



<p class="wp-block-paragraph">こういうときは、範囲を複数列にします。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:B8)</code></pre>



<p class="wp-block-paragraph">結果は5行2列。担当者と部署のペアで判定されます。</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>総務部</td></tr><tr><td>田中</td><td>経理部</td></tr><tr><td>佐藤</td><td>営業部</td></tr><tr><td>山田</td><td>開発部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">UNIQUE関数は既定で「行同士」を比べます。<code>A2:B8</code> を渡すと、氏名と部署の組み合わせがそっくり同じ行だけが重複とみなされるわけです。営業部の田中さんと経理部の田中さんは、別の行としてきちんと残ります。</p>



<p class="wp-block-paragraph">実務では、社員番号や取引先コードを一緒に渡すのが安全策。氏名や商品名のような「人が手入力する文字列」だけで判定すると、思わぬ取りこぼしが起きますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">1回だけ出現する値を抽出する（第3引数）</span></h3>



<p class="wp-block-paragraph">第3引数「回数指定」をTRUEにしてみましょう。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A8,FALSE,TRUE)</code></pre>



<p class="wp-block-paragraph">返ってくるのは「山田」だけです。田中・鈴木・佐藤はいずれも2回登場しているため、対象から外れます。</p>



<p class="wp-block-paragraph">第2引数を省略して、カンマだけを置く書き方もできます。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A8,,TRUE)</code></pre>



<p class="wp-block-paragraph">商品名で試すとどうなるでしょうか。<code>=UNIQUE(C2:C8,,TRUE)</code> の結果は「プリンター」「タブレット」の2件。ノートPC（3回）とモニター（2回）は除かれます。</p>



<p class="wp-block-paragraph">第3引数の違いは、次のように整理しておくと迷いません。</p>



<ul class="wp-block-list"><li><strong>FALSE（既定）</strong>: 2回以上出た値も1件にまとめ、すべてのユニーク値を返す</li><li><strong>TRUE</strong>: ちょうど1回だけ出た値のみを返す</li></ul>



<p class="wp-block-paragraph">「一度しか取引のない顧客を洗い出す」「1回しか出てこない伝票番号を探す」といった場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc9">横並びのリストは第2引数をTRUEにする</span></h3>



<p class="wp-block-paragraph">データが横方向に並んでいるケースも見ておきましょう。別のシートのA1:F1に「田中／鈴木／田中／佐藤／鈴木／山田」と入力されているとします。</p>



<pre class="wp-block-code"><code>=UNIQUE(A1:F1,TRUE)</code></pre>



<p class="wp-block-paragraph">第2引数にTRUEを指定すると、UNIQUE関数は列同士を比較します。結果は「田中」「鈴木」「佐藤」「山田」の1行4列。今度は横方向にスピルします。</p>



<p class="wp-block-paragraph">では、ここで第2引数を省略するとどうなるか。行同士の比較になりますが、対象は1行しかありません。重複は何も除かれず、A1:F1がそのまま6列返ってくるだけです。</p>



<p class="wp-block-paragraph">横並びのデータで「重複が消えない」と感じたら、まず第2引数を疑ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc10">SORT関数で並べ替える</span></h3>



<p class="wp-block-paragraph">UNIQUE関数の結果は初出順でした。見やすく並べ替えたいときは<a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>で包みます。</p>



<pre class="wp-block-code"><code>=SORT(UNIQUE(C2:C8))</code></pre>



<p class="wp-block-paragraph">商品名の一覧が昇順で返り、「タブレット」「ノートPC」「プリンター」「モニター」の順に並びます。降順にしたいなら、並べ替えの基準列と順序を指定してください。</p>



<pre class="wp-block-code"><code>=SORT(UNIQUE(C2:C8),1,-1)</code></pre>



<p class="wp-block-paragraph">ひとつ注意があります。漢字を含む文字列は、ふりがな通りの五十音順にはならないことがあります（文字コード順に近い並びになるとされていますが、Microsoft公式のSORT関数ページに明記された仕様ではありません）。確実に五十音順で並べたいときは、<a href="https://mashukabu.com/excel-function-howto-use-sortby/">SORTBY関数</a>とPHONETIC関数の組み合わせを検討しましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">FILTER関数で絞り込んでから重複を除く</span></h3>



<p class="wp-block-paragraph">条件で絞ったうえで重複を除きたい。そんなときは<a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>を内側に入れます。</p>



<pre class="wp-block-code"><code>=UNIQUE(FILTER(C2:C8,B2:B8=&quot;営業部&quot;))</code></pre>



<p class="wp-block-paragraph">ちょっと複雑に見えますが、やっていることはシンプルです。まずFILTER関数が営業部の行だけを抜き出します。次にUNIQUE関数が、その中の重複を取り除きます。</p>



<p class="wp-block-paragraph">営業部の行は3行（ノートPC・プリンター・ノートPC）。ノートPCが1件にまとまり、結果は「ノートPC」「プリンター」の2件になります。</p>



<p class="wp-block-paragraph">なお、内側と外側を逆にした書き方は動きません。</p>



<pre class="wp-block-code"><code>=FILTER(UNIQUE(C2:C8),B2:B8=&quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">抽出結果の行数と、条件の行数が食い違うためです。「絞ってから重複除去」の順で覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">件数を数える・1セルにまとめる</span></h3>



<p class="wp-block-paragraph">一意な値が何件あるかだけ知りたい。そんなときは<a href="https://mashukabu.com/excel-function-howto-use-counta/">COUNTA関数</a>で囲みます。</p>



<pre class="wp-block-code"><code>=COUNTA(UNIQUE(A2:A8))</code></pre>



<p class="wp-block-paragraph">結果は4。担当者が実質4人いる、とひと目で分かります。</p>



<p class="wp-block-paragraph">ここで気をつけたいのが<a href="https://mashukabu.com/excel-function-howto-use-count/">COUNT関数</a>との違いです。COUNT関数は数値だけを数えるため、担当者名のような文字列の一覧に使うと0が返ってしまいます。文字列を含む一覧を数えるなら、COUNTA関数を選んでください。</p>



<p class="wp-block-paragraph">一意な値をカンマ区切りで1セルにまとめたいときは、<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>の出番。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;、&quot;,TRUE,UNIQUE(A2:A8))</code></pre>



<p class="wp-block-paragraph">結果は「田中、鈴木、佐藤、山田」という1つの文字列です。第2引数のTRUEは「空欄を無視する」という指定。メール本文や報告書に貼り付けたいときに重宝します。</p>



<h3 class="wp-block-heading"><span id="toc13">出現回数もあわせて表示する（COUNTIF・COUNTIFS）</span></h3>



<p class="wp-block-paragraph">一意な一覧に「それぞれ何件あるか」を添えると、そのまま簡易集計表になります。</p>



<p class="wp-block-paragraph">まずF2に <code>=UNIQUE(A2:A8)</code> を入力してください。F2:F5に4件の担当者名が展開されます。続いてG2に、次の数式を入力しましょう。</p>



<pre class="wp-block-code"><code>=COUNTIF($A$2:$A$8,F2#)</code></pre>



<p class="wp-block-paragraph"><code>F2#</code> の「#」はスピル範囲演算子と呼ばれる記号です。「F2から広がった結果の全体」をまとめて指します。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>の数式はG2の1か所だけ。それでも田中2・鈴木2・佐藤2・山田1という件数が、縦に並んで出てきます。</p>



<p class="wp-block-paragraph">複数列の組み合わせで数えるなら、<a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数</a>の出番。さきほどのF列・G列とぶつからないよう、今度はJ2に <code>=UNIQUE(A2:B8)</code> を入力します。J2:K6に5行2列で展開されますよ。</p>



<p class="wp-block-paragraph">L2に次の数式を入力し、L6までコピーしてください。</p>



<pre class="wp-block-code"><code>=COUNTIFS($A$2:$A$8,J2,$B$2:$B$8,K2)</code></pre>



<p class="wp-block-paragraph">結果は上から1・2・1・2・1。営業部の田中さんは1件、総務部の鈴木さんは2件、という具合に件数が出せます。ピボットテーブルを作るほどでもない集計に便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc14">「重複の削除」機能・COUNTIF関数との違い｜どれを使うべき？</span></h2>



<p class="wp-block-paragraph">Excelで重複を扱う方法は、UNIQUE関数だけではありません。データタブの「重複の削除」機能、そしてCOUNTIF関数による重複チェック。この3つの違いを押さえておくと、場面に応じて迷わず選べます。</p>



<h3 class="wp-block-heading"><span id="toc15">3ウェイ比較表（UNIQUE関数／重複の削除／COUNTIF関数）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較軸</th><th>UNIQUE関数</th><th>「重複の削除」機能</th><th>COUNTIF関数</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>自動で再計算される</td><td>反映されない（実行し直し）</td><td>自動で再計算される</td></tr><tr><td>一覧づくり</td><td>数式1つで完結</td><td>手作業で都度実行</td><td>単体では作れない</td></tr><tr><td>使えるバージョン</td><td>Microsoft 365 / Excel 2021以降</td><td>ほぼすべてのバージョン</td><td>ほぼすべてのバージョン</td></tr><tr><td>向いている場面</td><td>集計表・プルダウンの元リスト</td><td>一度きりのデータ整理</td><td>入力ミスの発見・重複箇所の可視化</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">いちばん大きな違いは「元データを壊すかどうか」です。Microsoftの公式ページも注意を促しています。「重複する値を削除すると、重複する値が完全に削除されます」という説明です。</p>



<p class="wp-block-paragraph">実行前に別シートや別ブックへコピーしておくことが推奨されているほど。一方のUNIQUE関数は、結果を別のセルに書き出すだけです。気に入らなければ数式を消せば済みます。</p>



<p class="wp-block-paragraph">この気軽さが、日常的に使ううえでは大きな差になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">COUNTIF関数で重複をチェックする書き方</span></h3>



<p class="wp-block-paragraph">COUNTIF関数は一覧を作る関数ではありません。「この行は重複か？」を教えてくれる関数です。E2に次の数式を入れて、下方向にコピーします。</p>



<pre class="wp-block-code"><code>=COUNTIF($A$2:$A2,A2)&gt;1</code></pre>



<p class="wp-block-paragraph">範囲の始点だけを絶対参照（$A$2）にして、終点は相対参照（A2）にするのがポイント。こうすると「自分より上に同じ値があるか」を数えられます。</p>



<p class="wp-block-paragraph">サンプルデータでは、4行目の田中・6行目の鈴木・7行目の佐藤がTRUEになります。いずれも2回目に登場した行ですね。条件付き書式と組み合わせれば、重複セルに色を付けることもできます。</p>



<p class="wp-block-paragraph">ただしCOUNTIF関数だけでは、重複を除いた一覧までは作れません。一覧がほしいならUNIQUE、チェックだけならCOUNTIF。この線引きで考えると分かりやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">場面別の使い分け基準</span></h3>



<ul class="wp-block-list"><li><strong>集計表やダッシュボードの元リストを作る</strong> → UNIQUE関数。データが増えても自動で追随します</li><li><strong>入力規則（プルダウン）の選択肢を自動更新したい</strong> → UNIQUE関数</li><li><strong>配布用のファイルから重複行を物理的に消したい</strong> → 「重複の削除」機能</li><li><strong>Excel 2019以前で作業している</strong> → 「重複の削除」機能かCOUNTIF関数（UNIQUEは使えません）</li><li><strong>どこが重複しているかを目で確認したい</strong> → COUNTIF関数＋条件付き書式</li><li><strong>重複は消さずに件数だけ把握したい</strong> → COUNTIF関数 / COUNTIFS関数</li></ul>



<p class="wp-block-paragraph">迷ったら、まずUNIQUE関数を試してみてください。元データを壊さないので、失敗しても数式を消せば元通りです。</p>



<h2 class="wp-block-heading"><span id="toc18">UNIQUE関数のよくあるエラーと注意点</span></h2>



<h3 class="wp-block-heading"><span id="toc19">結果に「0」が表示される</span></h3>



<p class="wp-block-paragraph">元の範囲に空白セルが混じっていると、その空白が「0」として返ることがあります。名前の一覧を作ったはずなのに、末尾にぽつんと0が並ぶ。ありがちなトラブルですよね。</p>



<p class="wp-block-paragraph">理由はシンプルです。Excelでは空のセルを参照すると0として扱われるため、その0がユニークな値の1つとして返ってきます。</p>



<p class="wp-block-paragraph">ちなみに空白セルが何個あっても、出てくる0は1件だけ。重複としてまとめられるからです。</p>



<p class="wp-block-paragraph">対処法は3つあります。1つ目は<a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>で空白を除いてから渡す方法。</p>



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



<p class="wp-block-paragraph">2つ目は<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>で空白を空文字に置き換える方法です。</p>



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



<p class="wp-block-paragraph">この書き方だと、0の代わりに空欄が1件残ります。見た目さえ整えばよい場面なら、これで十分でしょう。</p>



<p class="wp-block-paragraph">3つ目は、複数列をまとめて1列にしたいときの技。<a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数</a>の第2引数に1を指定すると、空白を無視して1列に並べ直せます。</p>



<pre class="wp-block-code"><code>=UNIQUE(TOCOL(A2:C20,1))</code></pre>



<p class="wp-block-paragraph">複数の列に散らばった値から、まとめてマスタを作りたいときに便利な組み合わせです。</p>



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



<p class="wp-block-paragraph"><code>#CALC!</code> は「計算結果が空っぽ」のときに出るエラーです。UNIQUE関数単体で出ることは少なく、内側に入れたFILTER関数が原因になるケースがほとんど。</p>



<pre class="wp-block-code"><code>=UNIQUE(FILTER(C2:C8,B2:B8=&quot;法務部&quot;))</code></pre>



<p class="wp-block-paragraph">サンプルデータに法務部の行はありません。FILTER関数の結果が0件になり、そのまま<code>#CALC!</code>が返ります。</p>



<p class="wp-block-paragraph">対処は、FILTER関数の第3引数（空の場合）を指定するだけ。</p>



<pre class="wp-block-code"><code>=UNIQUE(FILTER(C2:C8,B2:B8=&quot;法務部&quot;,&quot;該当データなし&quot;))</code></pre>



<p class="wp-block-paragraph">これで「該当データなし」という文字列が表示され、エラーは消えます。空白除去の数式を書いたあとに<code>#CALC!</code>が出たら、この第3引数を思い出してくださいね。</p>



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



<p class="wp-block-paragraph"><code>#SPILL!</code> は「結果を広げたいのに広げられない」ときのエラーです。UNIQUE関数に固有の問題ではなく、スピルする関数に共通のもの。主な原因は次の4つです。</p>



<ul class="wp-block-list"><li><strong>展開先のセルに何か入っている</strong>: 結果が4行必要なのに、2つ下のセルに文字や数式がある</li><li><strong>展開先に結合セルがある</strong>: 結合されたセルにはスピルできません</li><li><strong>Excelテーブルの中に直接入力した</strong>: テーブル内のセルはスピルに対応していません</li><li><strong>列全体（A:Aなど）を参照した</strong>: 展開先がシートの末尾を超えてしまいます</li></ul>



<p class="wp-block-paragraph">対処法は原因ごとにはっきりしています。</p>



<ul class="wp-block-list"><li>展開先のセルを空ける</li><li>結合を解除する</li><li>数式はテーブルの外に置く</li><li>範囲は <code>A2:A1000</code> のように具体的な行数で指定する</li></ul>



<p class="wp-block-paragraph">エラーが出たセルには警告マークが表示され、クリックすると原因の説明を確認できます。まずはそこを見るのが近道ですよ。他のエラー表示については、<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧｜種類・原因・対処法</a>にまとめています。</p>



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



<p class="wp-block-paragraph"><code>#NAME?</code> は、関数名そのものが認識されていないサインです。原因は2つに絞られます。</p>



<p class="wp-block-paragraph">1つ目はバージョン。Excel 2019以前にはUNIQUE関数が存在しないため、入力しても関数として扱われません。</p>



<p class="wp-block-paragraph">2つ目は単純なスペルミスです。「UNIQE」「UNIQUR」のような打ち間違い、意外とやりがちですよね。</p>



<p class="wp-block-paragraph">バージョンが原因なら、Microsoft 365やExcel 2021以降への移行が根本的な解決になります。すぐに移行できない場合は、「重複の削除」機能かCOUNTIF関数で代用しましょう。</p>



<p class="wp-block-paragraph">判定の手順は<a href="https://mashukabu.com/excel-xlookup-filter-name-error-version/">XLOOKUP・FILTERが使えないときの対処法</a>で詳しく説明しています。</p>



<h3 class="wp-block-heading"><span id="toc23">全角・半角や表記ゆれは「別の値」として残る</span></h3>



<p class="wp-block-paragraph">ここは誤解が多いところ。UNIQUE関数の重複判定には、次のようなクセがあると考えられます。ただしMicrosoft公式のUNIQUE関数ページにはこの挙動の個別記載がなく、COUNTIFなど他の多くのExcel関数に共通する一般的な文字列比較ルールをもとにした整理です。運用前に手元の環境で確認しておくと安心です。</p>



<ul class="wp-block-list"><li><strong>大文字・小文字は区別しない</strong>: 「apple」と「APPLE」は同じ値とみなされ、1件にまとまります</li><li><strong>全角・半角は区別する</strong>: 「ABC-01」と「ＡＢＣ－０１」は別の値として2件とも残ります</li><li><strong>前後の空白も区別する</strong>: 「東京都」と「東京都 」（末尾に空白）は別の値です</li></ul>



<p class="wp-block-paragraph">複数人が入力したデータでは、この違いが必ずと言っていいほど起こります。「見た目は同じなのに重複が消えない」ときは、まず表記ゆれを疑ってみてください。</p>



<p class="wp-block-paragraph">対策は、UNIQUE関数に渡す前に表記をそろえることです。<a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数</a>で全角文字を半角に変換し、TRIM関数で余分な空白を落とします。</p>



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



<p class="wp-block-paragraph">逆に大文字・小文字までしっかり区別したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-exact/">EXACT関数</a>による比較を検討してください。こうした「見えない違い」でつまずいたときは、<a href="https://mashukabu.com/excel-aggregation-search-mismatch/">Excel集計・検索が合わない原因5つと直し方</a>も参考になります。</p>



<h3 class="wp-block-heading"><span id="toc24">データを追加しても一覧が増えない</span></h3>



<p class="wp-block-paragraph">「新しい行を入力したのに、一覧に出てこない」。これは範囲の指定が原因です。</p>



<p class="wp-block-paragraph"><code>=UNIQUE(A2:A8)</code> と書いた場合、9行目に追加したデータは範囲の外側。当然ながら結果には反映されません。</p>



<p class="wp-block-paragraph">解決策は2つあります。1つは <code>=UNIQUE(A2:A1000)</code> のように、あらかじめ余裕を持たせる方法。ただし空白セルが0として出るので、さきほどのFILTER関数との組み合わせをセットで使ってください。</p>



<p class="wp-block-paragraph">もう1つはExcelテーブルにする方法です。範囲を選んで <code>Ctrl + T</code> でテーブルに変換します。</p>



<p class="wp-block-paragraph">あとは構造化参照で書くだけ。構造化参照とは、テーブル名と列名で範囲を指定する書き方のことです。</p>



<pre class="wp-block-code"><code>=UNIQUE(テーブル1[担当者])</code></pre>



<p class="wp-block-paragraph">テーブルに行を追加すると範囲が自動で広がり、UNIQUE関数の結果も一緒に増えます。こちらのほうが圧倒的にラクですね。</p>



<p class="wp-block-paragraph">ただし数式は、テーブルの外側のセルに置いてください。テーブル内に書くとスピルできず、<code>#SPILL!</code>になってしまいます。</p>



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



<h3 class="wp-block-heading"><span id="toc26">Excel 2019でUNIQUE関数は使えますか？</span></h3>



<p class="wp-block-paragraph">使えません。対応しているのはMicrosoft 365・Excel 2024・Excel 2021の3つです。</p>



<p class="wp-block-paragraph">Windows版・Mac版・Excel for the web（ブラウザ版）のいずれでも動きます。iPad / iPhone / Android版Excelでも使えますよ。</p>



<p class="wp-block-paragraph">Excel 2019以前で入力すると<code>#NAME?</code>エラーになります。代わりの手段は、データタブの「重複の削除」機能かCOUNTIF関数による重複チェック。ただし自動更新はされないため、データを更新するたびに作業をやり直す必要があります。</p>



<h3 class="wp-block-heading"><span id="toc27">なぜ結果に「0」が表示されるのですか？</span></h3>



<p class="wp-block-paragraph">指定した範囲に空白セルが含まれているためです。Excelは空のセルを参照すると0として扱うので、その0がユニークな値の1つとして返ってきます。</p>



<p class="wp-block-paragraph"><code>=UNIQUE(FILTER(A2:A20,A2:A20<>""))</code> と書けば解決します。ただし条件に合う行が1件もないと<code>#CALC!</code>になるため、FILTER関数の第3引数もあわせて指定しておくと安心。</p>



<h3 class="wp-block-heading"><span id="toc28">全角・半角が混在するデータは重複と判定されますか？</span></h3>



<p class="wp-block-paragraph">基本的には判定されません。全角と半角は別の文字として扱われるため、「ABC-01」と「ＡＢＣ－０１」は2件とも残ります。一方で大文字・小文字は区別されないため、「apple」と「APPLE」は1件にまとまります（いずれもMicrosoft公式のUNIQUE関数ページに個別の明記はなく、他の多くのExcel関数に共通する一般的な文字列比較ルールに基づく整理です）。</p>



<p class="wp-block-paragraph">事前に<code>ASC</code>関数や<code>TRIM</code>関数で表記をそろえてから渡すのが確実です。</p>



<h3 class="wp-block-heading"><span id="toc29">複数列を指定するときの注意点は？</span></h3>



<p class="wp-block-paragraph">複数列を渡すと「行全体の組み合わせ」で重複が判定されます。1列でも値が違えば、別の行として残ります。判定に関係ない列まで含めると、重複が消えません。</p>



<p class="wp-block-paragraph">たとえば氏名・部署・登録日時の3列を渡した場合、登録日時が違うだけで別人扱いになります。判定に使いたい列だけを範囲に含めるのがコツ。</p>



<p class="wp-block-paragraph">なお、指定できるのは連続した列だけです。離れた列どうしを組み合わせたいときは、作業列を使いましょう。<code>=A2&"_"&D2</code> のような連結値を作り、その列をUNIQUE関数に渡すと確実ですよ。</p>



<h3 class="wp-block-heading"><span id="toc30">UNIQUE関数とCOUNTIF関数はどちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">目的が違うので、そもそも競合しません。重複を除いた「一覧」がほしいならUNIQUE関数。どの行が重複しているかの「判定」がほしいならCOUNTIF関数です。</p>



<p class="wp-block-paragraph">一覧に件数を添えたいなら、両方を組み合わせるのが正解。<code>=UNIQUE(A2:A8)</code> で一覧を作ります。隣の列に <code>=COUNTIF($A$2:$A$8,F2#)</code> を置けば、担当者ごとの件数まで並びますよ。</p>



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



<p class="wp-block-paragraph">ExcelのUNIQUE関数について、基本の使い方からエラー対処まで解説しました。ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li><code>=UNIQUE(A2:A8)</code> と書くだけで、重複を除いた一覧がスピルで展開される</li><li>結果は<strong>元データの初出順</strong>。並べ替えたいならSORT関数と組み合わせる</li><li>複数列を渡すと<strong>行全体の組み合わせ</strong>で判定され、同姓同名も区別できる</li><li>第3引数をTRUEにすると「1回だけ出現した値」だけが返る</li><li>元データを壊さず自動更新される点が「重複の削除」機能との最大の違い</li><li>「0」が出たら空白セル、<code>#SPILL!</code>が出たら展開先、<code>#NAME?</code>が出たらバージョンを疑う</li><li>全角・半角や前後の空白は区別されることが多いので、事前にそろえておくと安心</li><li>対応はMicrosoft 365 / Excel 2024 / Excel 2021 / Excel for the webなど。2019以前は非対応</li></ul>



<p class="wp-block-paragraph">GoogleスプレッドシートにもUNIQUE関数があります。構文は <code>UNIQUE(範囲, 列で判定, 完全一致)</code>。引数の数・並び・既定値（いずれもFALSE）はExcel版とほぼ同じです。</p>



<p class="wp-block-paragraph">Sheets版の使い方は<a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方｜重複を瞬時に除去</a>で解説しています。</p>



<p class="wp-block-paragraph">まずは手元のリストで <code>=UNIQUE(範囲)</code> を試してみてください。慣れてきたらSORT関数やFILTER関数を重ねていくと、毎月のコピペ作業が一気に減りますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sortby/">SORTBY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-counta/">COUNTA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-count/">COUNT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-tocol/">TOCOL関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">スピル（動的配列）で集計・抽出を自動化する</a></li><li><a href="https://mashukabu.com/sheets-unique-sequence-sort-dynamic-list/">スプレッドシートのUNIQUE・SEQUENCE・SORT関数で動的リストを作る方法</a></li><li><a href="https://mashukabu.com/excel-function/">Excel関数とは？基本の使い方</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-unique/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
