<?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/%e5%8b%95%e7%9a%84%e3%83%aa%e3%82%b9%e3%83%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 30 Apr 2026 21:31:31 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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>スプレッドシートのUNIQUE・SEQUENCE・SORT関数で動的リストを作る方法｜データ追加しても自動更新</title>
		<link>https://mashukabu.com/sheets-unique-sequence-sort-dynamic-list/</link>
					<comments>https://mashukabu.com/sheets-unique-sequence-sort-dynamic-list/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 21:31:31 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[SEQUENCE]]></category>
		<category><![CDATA[SORT]]></category>
		<category><![CDATA[UNIQUE]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[動的リスト]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6434</guid>

					<description><![CDATA[GoogleスプレッドシートのUNIQUE・SEQUENCE・SORT関数を組み合わせて動的リストを作る方法。担当者一覧の自動更新など実務3シナリオを解説。]]></description>
										<content:encoded><![CDATA[
<p>「担当者リストを更新するたびに、重複削除を手で何度もやっている」「行を増やしたら連番が飛んでしまった」。Googleスプレッドシートで管理表を作っていると、こんな手作業に悩まされますよね。</p>



<p>実は、4つの関数を組み合わせるだけで、データが増減しても自動で更新される「動的リスト」を簡単に作れます。使うのはUNIQUE・SEQUENCE・SORT・ARRAYFORMULAの4つです。</p>



<p>この記事では、動的リスト作りの中核になる4関数の役割を1ページで整理します。実務でよく使う3つの組み合わせシナリオも数式付きで紹介しますよ。ExcelとSheetsの互換性差異もまとめてあるので、ExcelからSheetsに移ってきた方にもおすすめです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートで動的リストを作る関数の全体像</a><ol><li><a href="#toc2" tabindex="0">動的リストを支える4つの関数</a></li><li><a href="#toc3" tabindex="0">なぜ「組み合わせ」が前提なのか</a></li></ol></li><li><a href="#toc4" tabindex="0">UNIQUE・SEQUENCE・SORT・ARRAYFORMULAの役割比較表</a><ol><li><a href="#toc5" tabindex="0">4関数の機能比較表</a></li><li><a href="#toc6" tabindex="0">「重複除去」「連番」「並び替え」「全行展開」の役割分担</a></li></ol></li><li><a href="#toc7" tabindex="0">シナリオA：UNIQUE+SORTで担当者のユニーク一覧を自動更新</a><ol><li><a href="#toc8" tabindex="0">元データと完成イメージ</a></li><li><a href="#toc9" tabindex="0">数式を3層で読み解く</a></li><li><a href="#toc10" tabindex="0">データ検証（プルダウン）の入力範囲に使う</a></li></ol></li><li><a href="#toc11" tabindex="0">シナリオB：SEQUENCE+COUNTAで行数可変の自動連番を作る</a><ol><li><a href="#toc12" tabindex="0">元データと完成イメージ</a></li><li><a href="#toc13" tabindex="0">COUNTAで「データのある行数」を数える理由</a></li><li><a href="#toc14" tabindex="0">動作のポイント</a></li><li><a href="#toc15" tabindex="0">行ごとの条件付き連番</a></li></ol></li><li><a href="#toc16" tabindex="0">シナリオC：ARRAYFORMULAで全行に条件付き数式を展開する</a><ol><li><a href="#toc17" tabindex="0">元データと完成イメージ</a></li><li><a href="#toc18" tabindex="0">数式の構造を読み解く</a></li><li><a href="#toc19" tabindex="0">ARRAYFORMULA内ではAND・ORが使えない</a></li><li><a href="#toc20" tabindex="0">VLOOKUPと組み合わせて全行に展開する</a></li></ol></li><li><a href="#toc21" tabindex="0">ExcelのUNIQUE・SEQUENCEとの互換性差異</a><ol><li><a href="#toc22" tabindex="0">Excel 365/2021との互換性表</a></li><li><a href="#toc23" tabindex="0">Sheets→Excelに数式を持っていくときの書き換え</a></li><li><a href="#toc24" tabindex="0">Excel 2019以前を意識するときは配列数式に書き換え</a></li></ol></li><li><a href="#toc25" tabindex="0">スプレッドシートの動的リスト関数のよくあるエラーと対処法</a><ol><li><a href="#toc26" tabindex="0">#REF! エラー（スピル先にデータあり）</a></li><li><a href="#toc27" tabindex="0">UNIQUEの結果に空白行が混じる問題</a></li><li><a href="#toc28" tabindex="0">ARRAYFORMULAでANDが効かない問題</a></li></ol></li><li><a href="#toc29" tabindex="0">スプレッドシートの動的リスト関数の使い分けまとめ</a><ol><li><a href="#toc30" tabindex="0">「目的→関数」の早見ガイド</a></li><li><a href="#toc31" tabindex="0">個別記事への深掘り誘導</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートで動的リストを作る関数の全体像</span></h2>



<p>スプレッドシートの「動的リスト」とは、元データが増減すると参照先も自動で更新されるリストのことです。手動で範囲を広げ直したり、コピペで連番を振り直したりする手間がなくなります。</p>



<h3 class="wp-block-heading"><span id="toc2">動的リストを支える4つの関数</span></h3>



<p>動的リスト作りに登場する関数は、突き詰めると次の4つだけです。</p>



<ul class="wp-block-list"><li><strong>UNIQUE</strong>：重複を取り除いて、一意の値だけを返す</li><li><strong>SEQUENCE</strong>：連続した番号を一気に生成する</li><li><strong>SORT / SORTN</strong>：範囲を並び替える（SORTNは上位N件だけ取り出す）</li><li><strong>ARRAYFORMULA</strong>：1つの数式を範囲全体に展開する</li></ul>



<p>このうちUNIQUE・SEQUENCE・SORTはExcel 365にもあります。一方、SORTNとARRAYFORMULAはGoogleスプレッドシート固有の関数です。</p>



<h3 class="wp-block-heading"><span id="toc3">なぜ「組み合わせ」が前提なのか</span></h3>



<p>これらの関数は単独でも便利ですが、本領を発揮するのは組み合わせて使ったときです。たとえば「担当者の一覧を作りたい」場面を考えてみます。UNIQUEで重複を消し、SORTで並べ替え、FILTERで空白を除く、という3つの動きを1つの数式にまとめられます。</p>



<p>実務では「ユニーク化＋並び替え」「連番＋データ件数連動」「全行に条件適用」といった複合ニーズが多いんですよね。複数の処理を1つの数式にまとめると、メンテナンスもラクになります。</p>



<p>各関数の詳しい構文や引数は、それぞれの個別記事に詳しくまとまっています。本記事では「実務でどう組み合わせるか」に絞って解説していきます。</p>



<h2 class="wp-block-heading"><span id="toc4">UNIQUE・SEQUENCE・SORT・ARRAYFORMULAの役割比較表</span></h2>



<p>最初に、4関数の機能を1枚にまとめた比較表を見てみましょう。「どの関数が何の役割を担うか」を判断する早見表として使ってください。</p>



<h3 class="wp-block-heading"><span id="toc5">4関数の機能比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>主な目的</th><th>戻り値の形</th><th>Excel互換</th><th>Sheets固有機能</th></tr></thead><tbody><tr><td>UNIQUE</td><td>重複除去</td><td>動的配列</td><td>あり（365・2021）</td><td>第3引数の「1回だけ登場」抽出</td></tr><tr><td>SEQUENCE</td><td>連番生成</td><td>動的配列</td><td>あり（365・2021）</td><td>なし</td></tr><tr><td>SORT</td><td>並び替え</td><td>動的配列</td><td>あり（365・2021）</td><td>なし</td></tr><tr><td>SORTN</td><td>並び替え+上位N件</td><td>動的配列</td><td>なし</td><td>Sheets専用関数</td></tr><tr><td>ARRAYFORMULA</td><td>数式の全行展開</td><td>動的配列</td><td>なし（暗黙スピルで代替）</td><td>Sheets専用関数</td></tr></tbody></table></figure>



<p>UNIQUE・SEQUENCE・SORTはExcel 365でも同じ構文で使えます。一方、SORTNとARRAYFORMULAはSheets限定の関数です。Excelに数式を持ち出すときは、この2つを別の関数で書き換える必要があります。</p>



<h3 class="wp-block-heading"><span id="toc6">「重複除去」「連番」「並び替え」「全行展開」の役割分担</span></h3>



<p>4関数を実務目的で並べ替えると、次のように整理できます。</p>



<ol class="wp-block-list"><li><strong>重複を消したい</strong> → UNIQUE</li><li><strong>連番を振りたい</strong> → SEQUENCE</li><li><strong>並び替えたい</strong> → SORT（上位N件ならSORTN）</li><li><strong>全行に同じ判定をしたい</strong> → ARRAYFORMULA</li></ol>



<p>この4つの役割を組み合わせるだけで、ほとんどの動的リストが作れます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ARRAYFORMULAは「他の関数を全行に広げる接着剤」として機能します。単独で使うことはほぼなく、IFやVLOOKUPと組み合わせるのが基本です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">シナリオA：UNIQUE+SORTで担当者のユニーク一覧を自動更新</span></h2>



<p>ここからは、実務でよく登場する3つの組み合わせシナリオを紹介します。最初は「担当者のユニーク一覧を自動更新する」パターンです。</p>



<h3 class="wp-block-heading"><span id="toc8">元データと完成イメージ</span></h3>



<p>A列に担当者名が並んでいる受注管理表があるとします。同じ担当者が複数行に登場するため、別シートで「担当者の一覧」を自動生成したい、という場面ですね。</p>



<p>完成形の数式はシンプルです。</p>



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



<p>A列に担当者を追加したら、別シートのリストも自動で更新されます。手動でドロップダウンの選択肢を増やす必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc9">数式を3層で読み解く</span></h3>



<p>この数式は内側から読むのがコツです。</p>



<ol class="wp-block-list"><li><strong>FILTER(A2:A, A2:A<>&#8220;&#8221;)</strong>：A列の空白以外を抽出</li><li><strong>UNIQUE(&#8230;)</strong>：抽出結果から重複を除いて一意の値だけ残す</li><li><strong>SORT(&#8230;)</strong>：結果を昇順に並び替える</li></ol>



<p>FILTERで空白を先に除外しているのがポイントです。UNIQUE単体だと空白行も「1つの空白」として一覧に残ってしまうため、FILTERでラップしてから渡しています。</p>



<h3 class="wp-block-heading"><span id="toc10">データ検証（プルダウン）の入力範囲に使う</span></h3>



<p>このユニーク一覧をデータ検証（入力規則）の選択肢として使うと、便利な動的プルダウンが完成します。</p>



<ol class="wp-block-list"><li>プルダウンを設定したいセルを選択</li><li>メニューから「データ」→「データの入力規則」</li><li>条件で「リストを範囲で指定」を選ぶ</li><li>範囲に <code>'マスタ'!A2:A100</code> のように、ユニーク一覧のスピル範囲を指定する</li></ol>



<p>A列に新しい担当者が追加されたら、プルダウンの選択肢にも自動で反映されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>プルダウンの参照範囲は余裕をもたせて100行や1000行で指定しておくと、ユニーク数が増えても対応できます。スピル範囲を超える指定をしても空白セルが選ばれるだけで害はありません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc11">シナリオB：SEQUENCE+COUNTAで行数可変の自動連番を作る</span></h2>



<p>2つ目のシナリオは「行数が変わっても自動で連番を振り直す」パターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">元データと完成イメージ</span></h3>



<p>B列にデータが並んでいて、A列に1から始まる連番を自動で振りたい、という場面です。データが増えたり減ったりしても、A列の連番が常に正しい状態に保たれるのが目標です。</p>



<p>完成形の数式は、A2セル1つに次のように書きます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(COUNTA(B2:B))</code></pre>



<p>A2に入れるだけで、B列のデータ数に応じた連番がA2から自動で展開されます。データを増やせば連番も伸び、削除すれば連番も縮みます。</p>



<h3 class="wp-block-heading"><span id="toc13">COUNTAで「データのある行数」を数える理由</span></h3>



<p>SEQUENCEの第1引数は「生成する行数」です。これにB列のデータ件数を渡せば、データ数ぴったりの連番が作れます。</p>



<p>COUNTAは「空白でないセルの数」を返す関数です。B列にデータが10行入っていれば10、20行に増えれば20を返します。SEQUENCEがその数を受け取って、1〜10や1〜20の連番を返してくれる、という仕組みですね。</p>



<h3 class="wp-block-heading"><span id="toc14">動作のポイント</span></h3>



<ul class="wp-block-list"><li>A2セルにだけ数式を書き、ほかの行はSEQUENCEのスピルで自動的に埋まる</li><li>B列が空白行を含む場合は、COUNTAではなく <code>COUNTIF(B2:B, "?*")</code> などで条件を変える</li><li>開始番号を変えたいなら <code>SEQUENCE(COUNTA(B2:B), 1, 10)</code> で10からスタートできる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>オートフィルで連番を作ると、行を挿入したときに番号が飛びます。SEQUENCE+COUNTAなら、行の挿入・削除に強い自動連番が作れますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">行ごとの条件付き連番</span></h3>



<p>「ステータスが完了の行だけ連番を振りたい」のような応用も可能です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(C2:C=&quot;完了&quot;, COUNTIFS(C$2:C2, &quot;完了&quot;), &quot;&quot;))</code></pre>



<p>この場合はSEQUENCEではなくCOUNTIFSの累積カウントを使います。シナリオCで紹介するARRAYFORMULAの応用例ですね。</p>



<h2 class="wp-block-heading"><span id="toc16">シナリオC：ARRAYFORMULAで全行に条件付き数式を展開する</span></h2>



<p>3つ目のシナリオは「全行に同じ判定を一気に適用する」パターンです。</p>



<h3 class="wp-block-heading"><span id="toc17">元データと完成イメージ</span></h3>



<p>B列にテストの点数が並んでいて、C列に「合格」「不合格」を判定したいとします。</p>



<p>通常なら、C2セルに <code>=IF(B2>=80, "合格", "不合格")</code> を入れて、下までドラッグでコピーしますよね。ところが、データが増えるたびに数式をコピーし直すのは面倒です。</p>



<p>ARRAYFORMULAを使うと、C2セル1つに数式を書くだけで、B列のデータがある行すべてに判定を展開できます。</p>



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



<p>B列に新しい点数を追加すると、C列の判定も自動で広がります。</p>



<h3 class="wp-block-heading"><span id="toc18">数式の構造を読み解く</span></h3>



<p>二重のIFを入れているのには理由があります。</p>



<ul class="wp-block-list"><li><strong>外側のIF</strong>：B列が空白なら何も表示しない（空白行に「不合格」と出るのを防ぐ）</li><li><strong>内側のIF</strong>：B列に値があれば、80点以上で「合格」、それ未満で「不合格」と判定</li></ul>



<p>外側のIFを省くと、空白行にも「不合格」と表示されて見栄えが悪くなります。空白行の制御はARRAYFORMULAを書くときの定番テクニックです。</p>



<h3 class="wp-block-heading"><span id="toc19">ARRAYFORMULA内ではAND・ORが使えない</span></h3>



<p>ここで注意点が1つあります。ARRAYFORMULA内ではAND・OR関数が動きません。複数条件を組み合わせたいときは、<code>*</code>（積）と<code>+</code>（和）の演算子を使います。</p>



<p><strong>「80点以上 かつ 出席率80%以上」（ANDの代替）</strong></p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(B2:B=&quot;&quot;, &quot;&quot;, IF((B2:B&gt;=80)*(C2:C&gt;=0.8), &quot;合格&quot;, &quot;不合格&quot;)))</code></pre>



<p><strong>「80点以上 または 加点あり」（ORの代替）</strong></p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(B2:B=&quot;&quot;, &quot;&quot;, IF((B2:B&gt;=80)+(D2:D&gt;0), &quot;合格&quot;, &quot;不合格&quot;)))</code></pre>



<p><code>*</code>はTRUE×TRUEのときだけ1（合格判定）になり、<code>+</code>はどちらかがTRUEなら1以上になる仕組みです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><code>*</code>はAND、<code>+</code>はOR、と覚えると簡単です。ARRAYFORMULAをマスターすると、IFの3段ネストやVLOOKUPの全行展開も同じパターンで自動化できます。</p></blockquote>



<p>条件分岐の関数選びで迷う場合は、関連記事も参考にしてみてください。詳しい使い分けは <a href="https://mashukabu.com/sheets-if-ifs-iferror-ifna/">スプレッドシートのIF・IFS・IFERROR・IFNAの使い分け</a> にまとまっています。</p>



<h3 class="wp-block-heading"><span id="toc20">VLOOKUPと組み合わせて全行に展開する</span></h3>



<p>ARRAYFORMULAはVLOOKUPやXLOOKUPと組み合わせると、列全体の参照を1つの数式で書けます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(A2:A=&quot;&quot;, &quot;&quot;, VLOOKUP(A2:A, マスタ!A:B, 2, FALSE)))</code></pre>



<p>A列に商品コードを追加すると、B列に単価が自動で入ります。VLOOKUPやXLOOKUPの使い分けは、 <a href="https://mashukabu.com/sheets-vlookup-xlookup-index-match/">VLOOKUP・XLOOKUP・INDEX/MATCH 使い分けガイド</a> にまとめてありますよ。</p>



<h2 class="wp-block-heading"><span id="toc21">ExcelのUNIQUE・SEQUENCEとの互換性差異</span></h2>



<p>スプレッドシートで作った動的リストの数式を、Excelに持っていって動かしたい場面もありますよね。ここではExcel側との互換性を整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc22">Excel 365/2021との互換性表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>Excel 365/2021</th><th>Excel 2019以前</th><th>Sheetsとの違い</th></tr></thead><tbody><tr><td>UNIQUE</td><td>使える</td><td>使えない</td><td>構文ほぼ同一</td></tr><tr><td>SEQUENCE</td><td>使える</td><td>使えない</td><td>構文同一</td></tr><tr><td>SORT</td><td>使える</td><td>使えない</td><td>構文同一</td></tr><tr><td>SORTN</td><td>使えない</td><td>使えない</td><td>Sheets専用</td></tr><tr><td>ARRAYFORMULA</td><td>使えない</td><td>使えない</td><td>Excelは暗黙のスピルで代替</td></tr><tr><td>FILTER</td><td>使える</td><td>使えない</td><td>構文同一</td></tr></tbody></table></figure>



<p>UNIQUE・SEQUENCE・SORTはExcel 365なら同じ構文で動きます。一方、SORTN・ARRAYFORMULAはSheets専用なので注意が必要です。</p>



<h3 class="wp-block-heading"><span id="toc23">Sheets→Excelに数式を持っていくときの書き換え</span></h3>



<p>Excel 365に数式をコピーするときは、次のように書き換えます。</p>



<ul class="wp-block-list"><li><strong>SORTN(範囲, n)</strong> → SORTで並び替えてからINDEXやTAKEで上位n件を取り出す</li><li><strong>ARRAYFORMULA(&#8230;)</strong> → 関数自体を外して、Excel 365の暗黙スピルに任せる</li><li><strong>AND/ORの代替<code>*</code>・<code>+</code></strong> → そのままで動く（ExcelもSheetsと同じ挙動）</li></ul>



<p>たとえば <code>=ARRAYFORMULA(IF(B2:B>=80, "合格", "不合格"))</code> をExcel 365で動かすには、<code>=IF(B2:B100>=80, "合格", "不合格")</code> のように範囲を明示するだけで動きます。</p>



<h3 class="wp-block-heading"><span id="toc24">Excel 2019以前を意識するときは配列数式に書き換え</span></h3>



<p>Excel 2019以前を使う環境にデータを渡すなら、UNIQUE・SEQUENCE・SORTそのものが使えません。次のように書き換えます。</p>



<ul class="wp-block-list"><li><strong>UNIQUE</strong> → 配列数式 <code>{=IFERROR(INDEX(...), "")}</code> パターン、またはピボットテーブルで重複削除</li><li><strong>SEQUENCE</strong> → ROW関数で代替（<code>=ROW(A1)</code> を下にコピー）</li><li><strong>SORT</strong> → LARGE/SMALL関数の組み合わせで配列数式</li></ul>



<p>Excel 2019以前は動的配列に対応していないので、Ctrl+Shift+Enterで配列数式として入力する必要があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>配布先の環境がExcel 2019以前なら、SheetsからCSVでエクスポートする前に「値だけ貼り付け」で確定値に変えてから渡すのが確実です。数式を渡す必要がないケースも多いですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc25">スプレッドシートの動的リスト関数のよくあるエラーと対処法</span></h2>



<p>最後に、UNIQUE・SEQUENCE・SORT・ARRAYFORMULAを使い始めたときに陥りがちな落とし穴を3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc26">#REF! エラー（スピル先にデータあり）</span></h3>



<p>UNIQUEやSEQUENCEを入力したら <code>#REF!</code> と表示される問題です。</p>



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



<p>この数式が #REF! になるのは、結果が展開される下のセルに別のデータが入っているからです。動的配列はスピル先が空でないと展開できません。</p>



<p>対処法は次のとおりです。</p>



<ul class="wp-block-list"><li>スピル先に入っているデータを削除する</li><li>数式を入れるセル位置を、空き行が十分にある場所に変える</li><li>結合セルがスピル先にある場合は結合を解除する</li></ul>



<h3 class="wp-block-heading"><span id="toc27">UNIQUEの結果に空白行が混じる問題</span></h3>



<p>UNIQUEを使ったら、空白の値が一覧に1つ残ってしまうケースです。</p>



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



<p>A列の途中に空白行があると、UNIQUEは「空白も1つの値」として扱うので、結果に空白が混じります。</p>



<p>対処法はFILTERで空白を除外することです。</p>



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



<p>シナリオAでも紹介した定番パターンですね。SORTでくるむと並び替えも一緒にできます。</p>



<h3 class="wp-block-heading"><span id="toc28">ARRAYFORMULAでANDが効かない問題</span></h3>



<p>複数条件を組み合わせようとして、次のように書いたら結果が変になるケースです。</p>



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



<p>ARRAYFORMULA内ではAND関数が範囲全体に対して1つの結果しか返しません。全行が同じ判定になってしまうんですよね。</p>



<p>対処法は <code>*</code>（積）演算子に書き換えることです。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF((B2:B&gt;=80)*(C2:C&gt;=0.8), &quot;合格&quot;, &quot;不合格&quot;))</code></pre>



<p>OR関数も同じ理由で動かないので、<code>+</code>（和）演算子で代替します。シナリオCでも触れたとおり、ARRAYFORMULAを書くときの基本ルールとして覚えておくと便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc29">スプレッドシートの動的リスト関数の使い分けまとめ</span></h2>



<p>スプレッドシートの動的リストは、UNIQUE・SEQUENCE・SORT・ARRAYFORMULAの4関数で必要十分です。</p>



<h3 class="wp-block-heading"><span id="toc30">「目的→関数」の早見ガイド</span></h3>



<p>実務での選び方をまとめると、次のようになります。</p>



<ol class="wp-block-list"><li><strong>重複を消したい</strong> → UNIQUE（空白除外はFILTERでラップ）</li><li><strong>連番を振りたい</strong> → SEQUENCE（行数はCOUNTAで動的に取得）</li><li><strong>並び替えたい</strong> → SORT、上位N件だけ取り出すならSORTN</li><li><strong>全行に同じ判定をしたい</strong> → ARRAYFORMULA（AND/ORは<code>*</code>/<code>+</code>で代替）</li></ol>



<p>この4ステップに従えば、動的リスト作りで関数選びに迷うことはほぼなくなります。</p>



<h3 class="wp-block-heading"><span id="toc31">個別記事への深掘り誘導</span></h3>



<p>それぞれの関数の構文や引数、応用パターンは個別記事にもっと詳しくまとめています。</p>



<ul class="wp-block-list"><li>重複除去の基本: スプレッドシートのUNIQUE関数の使い方</li><li>連番生成の基本: スプレッドシートのSEQUENCE関数の使い方</li><li>並び替えの基本: スプレッドシートのSORT関数の使い方</li><li>上位N件の取り出し: スプレッドシートのSORTN関数の使い方</li><li>全行展開の基本: スプレッドシートのARRAYFORMULA関数の使い方</li></ul>



<p>条件分岐とエラー処理を組み合わせる場合は、 <a href="https://mashukabu.com/sheets-if-ifs-iferror-ifna/">スプレッドシートのIF・IFS・IFERROR・IFNAの使い分け</a> や <a href="https://mashukabu.com/sheets-vlookup-xlookup-index-match/">VLOOKUP・XLOOKUP・INDEX/MATCH 使い分けガイド</a> もあわせて参照してください。</p>



<p>「マスタを更新するたびに参照先を直しに行くのが面倒」「連番がいつも飛ぶ」状態は、UNIQUE+SORTやSEQUENCE+COUNTAで一気に解消できます。まずは手元の管理表で1つだけ、動的リストに置き換えてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/sheets-unique-sequence-sort-dynamic-list/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
