<?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>SORT &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/sort/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:10:47 +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>SORT &#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 class="wp-block-paragraph">「担当者リストを更新するたびに、重複削除を手で何度もやっている」「行を増やしたら連番が飛んでしまった」。Googleスプレッドシートで管理表を作っていると、こんな手作業に悩まされますよね。</p>



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



<p class="wp-block-paragraph">この記事では、動的リスト作りの中核になる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 class="wp-block-paragraph">スプレッドシートの「動的リスト」とは、元データが増減すると参照先も自動で更新されるリストのことです。手動で範囲を広げ直したり、コピペで連番を振り直したりする手間がなくなります。</p>



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



<p class="wp-block-paragraph">動的リスト作りに登場する関数は、突き詰めると次の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 class="wp-block-paragraph">このうちUNIQUE・SEQUENCE・SORTはExcel 365にもあります。一方、SORTNとARRAYFORMULAはGoogleスプレッドシート固有の関数です。</p>



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



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



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



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



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



<p class="wp-block-paragraph">最初に、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 class="wp-block-paragraph">UNIQUE・SEQUENCE・SORTはExcel 365でも同じ構文で使えます。一方、SORTNとARRAYFORMULAはSheets限定の関数です。Excelに数式を持ち出すときは、この2つを別の関数で書き換える必要があります。</p>



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



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



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



<p class="wp-block-paragraph">A列に担当者名が並んでいる受注管理表があるとします。同じ担当者が複数行に登場するため、別シートで「担当者の一覧」を自動生成したい、という場面ですね。</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">完成形の数式はシンプルです。</p>



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



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



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



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



<p class="wp-block-paragraph">この数式は内側から読むのがコツです。</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 class="wp-block-paragraph">FILTERで空白を先に除外しているのがポイントです。UNIQUE単体だと空白行も「1つの空白」として一覧に残ってしまうため、FILTERでラップしてから渡しています。</p>



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">2つ目のシナリオは「行数が変わっても自動で連番を振り直す」パターンです。</p>



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



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



<p class="wp-block-paragraph">完成形の数式は、A2セル1つに次のように書きます。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_formula_sequence-counta.png" alt="04 formula sequence counta" /></figure>



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



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



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



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



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/sheets-unique-sequence-sort-dynamic-list/05_result_sequence-counta.png/">_images/sheets-unique-sequence-sort-dynamic-list/05_result_sequence-counta.png</a></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 class="wp-block-paragraph">「ステータスが完了の行だけ連番を振りたい」のような応用も可能です。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">B列に新しい点数を追加すると、C列の判定も自動で広がります。</p>



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



<p class="wp-block-paragraph">二重のIFを入れているのには理由があります。</p>



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



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



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



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



<p class="wp-block-paragraph"><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 class="wp-block-paragraph"><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 class="wp-block-paragraph"><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 class="wp-block-paragraph">条件分岐の関数選びで迷う場合は、関連記事も参考にしてみてください。詳しい使い分けは <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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">スプレッドシートで作った動的リストの数式を、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 class="wp-block-paragraph">UNIQUE・SEQUENCE・SORTはExcel 365なら同じ構文で動きます。一方、SORTN・ARRAYFORMULAはSheets専用なので注意が必要です。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">たとえば <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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">最後に、UNIQUE・SEQUENCE・SORT・ARRAYFORMULAを使い始めたときに陥りがちな落とし穴を3つ紹介します。</p>



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



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



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



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



<p class="wp-block-paragraph">対処法は次のとおりです。</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 class="wp-block-paragraph">UNIQUEを使ったら、空白の値が一覧に1つ残ってしまうケースです。</p>



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



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



<p class="wp-block-paragraph">対処法はFILTERで空白を除外することです。</p>



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



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



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



<p class="wp-block-paragraph">複数条件を組み合わせようとして、次のように書いたら結果が変になるケースです。</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 class="wp-block-paragraph">ARRAYFORMULA内ではAND関数が範囲全体に対して1つの結果しか返しません。全行が同じ判定になってしまうんですよね。</p>



<p class="wp-block-paragraph">対処法は <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 class="wp-block-paragraph">OR関数も同じ理由で動かないので、<code>+</code>（和）演算子で代替します。シナリオCでも触れたとおり、ARRAYFORMULAを書くときの基本ルールとして覚えておくと便利ですよ。</p>



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



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



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



<p class="wp-block-paragraph">実務での選び方をまとめると、次のようになります。</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 class="wp-block-paragraph">この4ステップに従えば、動的リスト作りで関数選びに迷うことはほぼなくなります。</p>



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



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



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



<p class="wp-block-paragraph">条件分岐とエラー処理を組み合わせる場合は、 <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 class="wp-block-paragraph">「マスタを更新するたびに参照先を直しに行くのが面倒」「連番がいつも飛ぶ」状態は、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>
		<item>
		<title>ExcelのUNIQUE・FILTER・SORT・SEQUENCE関数入門｜スピル（動的配列）で集計・抽出を自動化する</title>
		<link>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/</link>
					<comments>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 21:31:28 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[FILTER]]></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=6432</guid>

					<description><![CDATA[ExcelのUNIQUE・FILTER・SORT・SEQUENCE関数とスピル（動的配列）の基本を、中級者向けにハンズオンで解説。重複削除・条件抽出・並び替え・連番生成を数式1本で自動化する方法と、#SPILL!エラー対処、Excel 2021/Microsoft 365での対応状況をまとめます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「同じデータが何度も出てくるリストから、ユニークな項目だけ取り出したい」「条件に合う行だけ別シートに抽出したい」。こんなとき、ピボットや手作業のフィルタコピペで対応していませんか。</p>



<p class="wp-block-paragraph">Excel 2021 / Microsoft 365 では<strong>スピル（動的配列）</strong>が使えます。スピルを活用すると、これらの作業を<strong>数式1本で自動化</strong>できます。元データを更新すれば、抽出結果も自動で追随します。</p>



<p class="wp-block-paragraph">この記事ではスピルの基本概念と、入門で押さえたい4関数の使い方を解説します。UNIQUE・FILTER・SORT・SEQUENCEの基本と、実務で使える組み合わせパターンを紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Excelのスピル（動的配列）とは？従来の数式との違い</a><ol><li><a href="#toc2" tabindex="0">スピルの特徴</a></li><li><a href="#toc3" tabindex="0"># 演算子（スピル範囲演算子）の使い方</a></li></ol></li><li><a href="#toc4" tabindex="0">ExcelのUNIQUE関数で重複を一発削除する</a><ol><li><a href="#toc5" tabindex="0">UNIQUE関数の構文</a></li><li><a href="#toc6" tabindex="0">基本的な使い方</a></li><li><a href="#toc7" tabindex="0">「1回しか出現しない値」だけ取り出す</a></li></ol></li><li><a href="#toc8" tabindex="0">ExcelのFILTER関数で条件に合う行だけ抽出する</a><ol><li><a href="#toc9" tabindex="0">FILTER関数の構文</a></li><li><a href="#toc10" tabindex="0">基本的な使い方</a></li><li><a href="#toc11" tabindex="0">AND条件とOR条件</a></li></ol></li><li><a href="#toc12" tabindex="0">ExcelのSORT関数で並び替えを数式化する</a><ol><li><a href="#toc13" tabindex="0">SORT関数の構文</a></li><li><a href="#toc14" tabindex="0">基本的な使い方</a></li><li><a href="#toc15" tabindex="0">SORTBY関数で別範囲を基準に並び替える</a></li></ol></li><li><a href="#toc16" tabindex="0">ExcelのSEQUENCE関数で連番・行番号を自動生成する</a><ol><li><a href="#toc17" tabindex="0">SEQUENCE関数の構文</a></li><li><a href="#toc18" tabindex="0">基本的な使い方</a></li><li><a href="#toc19" tabindex="0">日付の連番を作る</a></li></ol></li><li><a href="#toc20" tabindex="0">UNIQUE・FILTER・SORT・SEQUENCEを組み合わせた実務テクニック</a><ol><li><a href="#toc21" tabindex="0">パターン1: 重複削除＋並び替え</a></li><li><a href="#toc22" tabindex="0">パターン2: 条件抽出＋並び替え＋上位N件</a></li><li><a href="#toc23" tabindex="0">パターン3: 動的に伸び縮みするドロップダウンリスト</a></li><li><a href="#toc24" tabindex="0">パターン4: ピボット代替のクロス集計ひな形</a></li></ol></li><li><a href="#toc25" tabindex="0">スピル特有のエラー（#SPILL!・#CALC!）と対処法</a><ol><li><a href="#toc26" tabindex="0">#SPILL! エラー</a></li><li><a href="#toc27" tabindex="0">#CALC! エラー</a></li></ol></li><li><a href="#toc28" tabindex="0">UNIQUE・FILTER・SORT・SEQUENCE関数の対応バージョンと互換性</a><ol><li><a href="#toc29" tabindex="0">Excelバージョンごとの対応</a></li><li><a href="#toc30" tabindex="0">Excel 2019以前で開いたときの挙動</a></li><li><a href="#toc31" tabindex="0">Googleスプレッドシートとの互換性</a></li><li><a href="#toc32" tabindex="0">LibreOffice Calcとの互換性</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excelのスピル（動的配列）とは？従来の数式との違い</span></h2>



<p class="wp-block-paragraph"><strong>スピル（spill）</strong>は「あふれ出す」という意味の英語です。Excelの数式が複数の値を返すとき、その結果が周辺セルへ自動的にあふれ出す動作を指します。</p>



<p class="wp-block-paragraph">従来のExcelでは、配列を返す数式に <code>Ctrl + Shift + Enter</code> で「配列数式」として確定する必要がありました。スピル対応のExcelなら、普通に <code>Enter</code> するだけで結果が複数セルに展開されます。</p>



<h3 class="wp-block-heading"><span id="toc2">スピルの特徴</span></h3>



<ul class="wp-block-list"><li>数式は<strong>左上の1セルにだけ</strong>入力する</li><li>結果が展開された範囲を「<strong>スピル範囲</strong>」と呼ぶ</li><li>スピル範囲全体を参照したいときは <code>A2#</code> のように <code>#</code>（スピル範囲演算子）を付ける</li><li>元データの行数が変わっても、スピル範囲は自動で伸び縮みする</li></ul>



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



<p class="wp-block-paragraph">この数式を <code>D2</code> に入れると、結果が <code>D2</code> から下方向に自動展開されます。これがスピルです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル機能はMicrosoft 365 / Excel 2021 / Excel for the web / Excel 2024で利用できます。Excel 2019・2016・2013以前では動作しません。詳しくは記事末尾の互換性セクションを参照してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc3"># 演算子（スピル範囲演算子）の使い方</span></h3>



<p class="wp-block-paragraph">スピル範囲を別の数式で参照するときは、左上セルの後ろに <code>#</code> を付けます。</p>



<pre class="wp-block-code"><code>=COUNTA(D2#)</code></pre>



<p class="wp-block-paragraph">これで <code>D2</code> から始まるスピル範囲全体の個数をカウントできます。元データが増減してスピル範囲が変わっても、自動的に追随するのが便利なポイントです。</p>



<h2 class="wp-block-heading"><span id="toc4">ExcelのUNIQUE関数で重複を一発削除する</span></h2>



<p class="wp-block-paragraph">UNIQUE関数は、指定範囲から<strong>重複を取り除いた一意のリスト</strong>を返します。「データ→重複の削除」と違い、元データを変更せずに集計用の一覧を作れます。</p>



<h3 class="wp-block-heading"><span id="toc5">UNIQUE関数の構文</span></h3>



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



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: 一意の値を取り出したい範囲</li><li><strong>列の比較</strong>（省略可）: TRUE で列方向の比較、FALSE/省略で行方向の比較</li><li><strong>回数指定</strong>（省略可）: TRUE で「1回しか出現しない値」だけ返す、FALSE/省略で重複を除いた全種類</li></ul>



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



<p class="wp-block-paragraph">A列に部署名がランダムに並んでいるとき、ユニークな部署名のリストを取り出します。</p>



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



<p class="wp-block-paragraph">部署名が「営業」「開発」「総務」「営業」「開発」…と並んでいても、「営業」「開発」「総務」の3つだけが返ります。</p>



<h3 class="wp-block-heading"><span id="toc7">「1回しか出現しない値」だけ取り出す</span></h3>



<p class="wp-block-paragraph">第3引数を <code>TRUE</code> にすると、複数回登場する値は除外されます。<strong>1回しか登場しない値のみ</strong>が返ります。</p>



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



<p class="wp-block-paragraph">「異常値が1件だけ混入していないか」「ユニークな顧客だけ抽出したい」といった用途で重宝します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>UNIQUE関数の詳しい使い方や応用例は、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-unique/">ExcelのUNIQUE関数で重複データを除外する方法</a>」も参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">ExcelのFILTER関数で条件に合う行だけ抽出する</span></h2>



<p class="wp-block-paragraph">FILTER関数は、<strong>条件に合致する行だけ</strong>を抽出してスピル展開する関数です。オートフィルタの「数式版」と考えると分かりやすいです。</p>



<h3 class="wp-block-heading"><span id="toc9">FILTER関数の構文</span></h3>



<pre class="wp-block-code"><code>=FILTER(配列, 含む, [空の場合])</code></pre>



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: フィルタしたい元データの範囲</li><li><strong>含む</strong>（必須）: 「配列」と同じ高さのTRUE/FALSE配列。条件式 <code>(範囲=値)</code> で自動生成される</li><li><strong>空の場合</strong>（省略可）: 該当行が0件の場合に返す代替値</li></ul>



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



<p class="wp-block-paragraph">A〜C列の表から、B列が「営業」の行だけ抽出します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">第3引数に <code>"該当なし"</code> を入れておくと、ヒットがゼロでも <code>#CALC!</code> エラーになりません。代わりに指定した文字列が表示されます。</p>



<h3 class="wp-block-heading"><span id="toc11">AND条件とOR条件</span></h3>



<p class="wp-block-paragraph">複数条件を組み合わせるときは、<strong>AND は <code>*</code></strong>、<strong>OR は <code>+</code></strong> で連結します。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, (B2:B100=&quot;営業&quot;)*(C2:C100&gt;=100), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「営業部署」かつ「数値が100以上」の行を抽出するAND条件の例です。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, (B2:B100=&quot;営業&quot;)+(B2:B100=&quot;開発&quot;), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「営業」または「開発」を抽出するOR条件の例です。<code>*</code> と <code>+</code> の使い分けがFILTER関数の肝になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SUMIFSやCOUNTIFSと違い、FILTER関数は条件をかけ算・足し算で表現します。慣れないうちは違和感がありますが、TRUE=1、FALSE=0として扱われるルールから来ています。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>FILTER関数の応用パターンは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-filter/">ExcelのFILTER関数で条件に合うデータだけ抽出する方法</a>」で詳しく解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc12">ExcelのSORT関数で並び替えを数式化する</span></h2>



<p class="wp-block-paragraph">SORT関数は、<strong>並び替え結果を数式で取得</strong>する関数です。元データを並び替えずに、別の場所にソート済みリストを作れるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc13">SORT関数の構文</span></h3>



<pre class="wp-block-code"><code>=SORT(配列, [並び替えインデックス], [並び替え順序], [並び替え基準])</code></pre>



<ul class="wp-block-list"><li><strong>配列</strong>（必須）: 並び替えたい範囲</li><li><strong>並び替えインデックス</strong>（省略可）: 並び替えに使う列番号（1から開始、省略時は1列目）</li><li><strong>並び替え順序</strong>（省略可）: 1=昇順（既定）、-1=降順</li><li><strong>並び替え基準</strong>（省略可）: FALSE/省略で行方向、TRUE で列方向</li></ul>



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



<p class="wp-block-paragraph">A〜C列の表全体を、C列（売上）の降順で並び替えます。</p>



<pre class="wp-block-code"><code>=SORT(A2:C100, 3, -1)</code></pre>



<p class="wp-block-paragraph">数式を入れた場所にC列降順で並んだ表が展開されます。元データはそのままです。</p>



<h3 class="wp-block-heading"><span id="toc15">SORTBY関数で別範囲を基準に並び替える</span></h3>



<p class="wp-block-paragraph">似た関数に <strong>SORTBY関数</strong> があります。並び替え対象と並び替え基準を別範囲にしたいときに便利です。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:B100, C2:C100, -1)</code></pre>



<p class="wp-block-paragraph">A〜B列の範囲を、C列の値を基準に降順で並び替えます。「表示したい列」と「並び替えに使う列」を分けられるのがポイントです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SORT関数とSORTBY関数の使い分けは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-sort/">ExcelのSORT関数の使い方</a>」で詳しく扱っています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">ExcelのSEQUENCE関数で連番・行番号を自動生成する</span></h2>



<p class="wp-block-paragraph">SEQUENCE関数は、<strong>連番や行番号を自動生成</strong>する関数です。一見地味ですが、他のスピル関数と組み合わせるととても強力になります。</p>



<h3 class="wp-block-heading"><span id="toc17">SEQUENCE関数の構文</span></h3>



<pre class="wp-block-code"><code>=SEQUENCE(行, [列], [開始値], [増分])</code></pre>



<ul class="wp-block-list"><li><strong>行</strong>（必須）: 生成する行数</li><li><strong>列</strong>（省略可）: 生成する列数（既定は1）</li><li><strong>開始値</strong>（省略可）: 開始する数値（既定は1）</li><li><strong>増分</strong>（省略可）: 増加する間隔（既定は1）</li></ul>



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



<pre class="wp-block-code"><code>=SEQUENCE(10)</code></pre>



<p class="wp-block-paragraph">1から10まで縦に並んだ連番が展開されます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(5, 3, 100, 10)</code></pre>



<p class="wp-block-paragraph">5行3列の数値表が展開されます。100始まり10刻みなので、1行目は100・110・120、2行目は130・140・150…と続きます。</p>



<h3 class="wp-block-heading"><span id="toc19">日付の連番を作る</span></h3>



<p class="wp-block-paragraph">開始値に日付を渡せば、日付の連番も作れます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(7, 1, TODAY(), 1)</code></pre>



<p class="wp-block-paragraph">今日から7日分の日付がスピル展開されます。表示形式を「日付」に変えれば、週次の予定表のひな形が一瞬で完成します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SEQUENCE関数の活用パターンは、個別記事「<a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数で連続した数値を生成する方法</a>」も参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc20">UNIQUE・FILTER・SORT・SEQUENCEを組み合わせた実務テクニック</span></h2>



<p class="wp-block-paragraph">4関数の真価は<strong>組み合わせ</strong>にあります。実務でよく使うパターンを4つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc21">パターン1: 重複削除＋並び替え</span></h3>



<p class="wp-block-paragraph">ユニークな部署一覧を昇順で取得します。</p>



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



<p class="wp-block-paragraph">UNIQUEで重複を除いた結果を、SORTでそのまま並び替えています。スピル関数同士はネストできるのが特徴です。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン2: 条件抽出＋並び替え＋上位N件</span></h3>



<p class="wp-block-paragraph">営業部署の行だけ抽出し、売上（C列）の降順で並べます。</p>



<pre class="wp-block-code"><code>=SORT(FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;該当なし&quot;), 3, -1)</code></pre>



<p class="wp-block-paragraph">さらに「上位5件だけ」に絞りたい場合は、Microsoft 365 の <code>TAKE</code> 関数が便利です。</p>



<pre class="wp-block-code"><code>=TAKE(SORT(FILTER(A2:C100, B2:B100=&quot;営業&quot;), 3, -1), 5)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>TAKE関数はMicrosoft 365で利用できる比較的新しい関数です。Excel 2021では未対応のため、上位N件の抽出はINDEXとSEQUENCEで代替してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc23">パターン3: 動的に伸び縮みするドロップダウンリスト</span></h3>



<p class="wp-block-paragraph">データ追加で自動拡張するプルダウンを作るには、入力規則のリスト元に<strong>スピル範囲演算子 <code>#</code></strong> を使います。</p>



<ol class="wp-block-list"><li>任意の作業セル（例: <code>Z2</code>）に <code>=UNIQUE(A2:A100)</code> を入力</li><li>入力規則のリスト元に <code>=$Z$2#</code> と指定</li></ol>



<p class="wp-block-paragraph">A列にデータを追加すると、プルダウンの選択肢も自動で増えます。<code>OFFSET</code> と <code>COUNTA</code> で組んでいた動的リストが、スピルなら一発で実現できます。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン4: ピボット代替のクロス集計ひな形</span></h3>



<p class="wp-block-paragraph">UNIQUE で集計軸を作り、SUMIFS で値を埋めるとピボット不要のクロス集計が作れます。</p>



<pre class="wp-block-code"><code>=UNIQUE(A2:A100)       ' D2 に入力（部署一覧がスピル展開）
=SUMIFS(C:C, A:A, D2#) ' E2 に入力（D2のスピル範囲に対して集計がスピル展開）</code></pre>



<p class="wp-block-paragraph"><code>D2</code> にUNIQUEの結果を出し、<code>E2</code> にSUMIFSを入れます。<code>D2#</code> のスピル範囲に対してSUMIFSもスピル展開されるため、元データが増えても集計表が自動で伸び縮みします。</p>



<h2 class="wp-block-heading"><span id="toc25">スピル特有のエラー（#SPILL!・#CALC!）と対処法</span></h2>



<p class="wp-block-paragraph">スピル関数を使い始めると、見慣れないエラーに遭遇することがあります。代表的な2つを覚えておきましょう。</p>



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



<p class="wp-block-paragraph">スピル範囲に<strong>何かが入っている</strong>ためにあふれ出せないときに発生します。原因と対処は次のとおりです。</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>Excelの「テーブル」内にスピル数式を入れた</td><td>テーブル外で使うか、テーブルを通常の範囲に変換する</td></tr><tr><td>スピル範囲がワークシートの端を超えている</td><td>行・列の参照範囲を絞る</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p><code>#SPILL!</code> セルを選択すると、エラー三角マークの横に「障害物のあるセルを選択」リンクが表示されます。クリックすると原因セルを特定できます。</p></blockquote>



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



<p class="wp-block-paragraph">FILTER関数で<strong>該当データが0件</strong>のときに最もよく見ます。第3引数（空の場合）を指定すれば回避できます。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C100, B2:B100=&quot;営業&quot;, &quot;データなし&quot;)</code></pre>



<p class="wp-block-paragraph">ほかに、スピル関数同士のサイズ不整合や、空の配列を返す関数を渡したときにも発生します。FILTERの第3引数を習慣的に書く癖をつけると安全です。</p>



<h2 class="wp-block-heading"><span id="toc28">UNIQUE・FILTER・SORT・SEQUENCE関数の対応バージョンと互換性</span></h2>



<p class="wp-block-paragraph">スピル関数は新しい機能のため、環境によって動作が大きく変わります。</p>



<h3 class="wp-block-heading"><span id="toc29">Excelバージョンごとの対応</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>完全対応</td></tr><tr><td>Excel 2024</td><td>完全対応</td></tr><tr><td>Excel 2021</td><td>UNIQUE/FILTER/SORT/SEQUENCE 対応</td></tr><tr><td>Excel for the web</td><td>完全対応</td></tr><tr><td>Excel 2019・2016・2013</td><td>未対応（<code>#NAME?</code> または暗黙的交差で動かない）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc30">Excel 2019以前で開いたときの挙動</span></h3>



<p class="wp-block-paragraph">スピル数式を含むxlsxファイルをExcel 2019以前で開くと、数式は自動変換されます。<code>@</code> 演算子付きの「暗黙的な交差」形式になり、結果は1セルだけでスピル展開しません。複数人で共有するファイルでは、開く側の環境を事前に確認しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc31">Googleスプレッドシートとの互換性</span></h3>



<p class="wp-block-paragraph">GoogleスプレッドシートにはUNIQUE / FILTER / SORT / SEQUENCEがすべて存在します。ただし<strong>引数の仕様が一部異なります</strong>。特にFILTER関数のAND/OR表現が違うため、Excel数式をそのままコピペしても動かないケースがあります。両方使うなら、関数ごとに動作確認をおすすめします。</p>



<h3 class="wp-block-heading"><span id="toc32">LibreOffice Calcとの互換性</span></h3>



<p class="wp-block-paragraph">LibreOffice Calcは7.x以降でスピル関連関数の対応を進めています。古いバージョン（6.x以前）では未対応です。</p>



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



<p class="wp-block-paragraph">ExcelのUNIQUE・FILTER・SORT・SEQUENCE関数とスピル（動的配列）を使えば、集計・抽出作業を<strong>数式1本で自動化</strong>できます。ピボットや手作業でやっていた工程を一気に省けます。</p>



<ul class="wp-block-list"><li><strong>UNIQUE</strong>: 重複削除でユニークなリストを作る</li><li><strong>FILTER</strong>: 条件に合う行だけ抽出する</li><li><strong>SORT</strong>: 並び替えを数式化する（元データを汚さない）</li><li><strong>SEQUENCE</strong>: 連番・行番号・日付連番を自動生成する</li></ul>



<p class="wp-block-paragraph">4関数は単独でも便利ですが、<strong>組み合わせる</strong>ことで真価を発揮します。「UNIQUE→SORT」「FILTER→SORT」のネストや、<code>#</code> 演算子を使った動的範囲参照をぜひ試してみてください。毎日のExcel作業が一段速くなります。</p>



<p class="wp-block-paragraph">ピボットを使うほどではないけれど集計したい。フィルタを毎回設定し直すのが面倒。そんなときはスピル関数を試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-unique-filter-sort-sequence-spill/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのSORT・SORTN・SORTBY関数の使い方｜3兄弟を使い分けてデータを自動で並べ替える完全ガイド</title>
		<link>https://mashukabu.com/spreadsheet-sort-sortn-sortby/</link>
					<comments>https://mashukabu.com/spreadsheet-sort-sortn-sortby/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:28:44 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[SORT]]></category>
		<category><![CDATA[SORTBY]]></category>
		<category><![CDATA[SORTN]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データ整理]]></category>
		<category><![CDATA[並べ替え]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4027</guid>

					<description><![CDATA[GoogleスプレッドシートのSORT・SORTN・SORTBY関数の使い方を1記事で完全解説。3関数の構文・違いと使い分けフロー・FILTER関数との組み合わせ・スピル仕様・Excelとの互換性・よくあるエラー対処まで、実務で使えるサンプル付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上データを金額順に並べ替えたい」「上位5件だけ自動表示したい」。こんな場面、仕事でよくありますよね。</p>



<p class="wp-block-paragraph">フィルター機能で手動ソートする方法もありますが、データが更新されるたびにやり直すのは面倒です。しかも元データの並び順が変わってしまうのも困りものです。</p>



<p class="wp-block-paragraph">そんなときに使えるのが<strong>SORT・SORTN・SORTBY関数</strong>です。元データを変えずに、並べ替えた結果を別のセルに自動で表示してくれます。</p>



<p class="wp-block-paragraph">この記事では3関数の基本的な書き方から、使い分けフロー、<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>との組み合わせ、Excelとの互換性まで実務サンプル付きで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">SORT・SORTN・SORTBY関数とは？並べ替え関数3兄弟の共通点</a><ol><li><a href="#toc2" tabindex="0">3関数のひとこと比較</a></li><li><a href="#toc3" tabindex="0">3関数に共通する3つの特長</a></li></ol></li><li><a href="#toc4" tabindex="0">スプレッドシートのSORT関数の書き方と基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">SORT関数の構文</a></li><li><a href="#toc6" tabindex="0">SORT関数の基本例</a></li><li><a href="#toc7" tabindex="0">複数条件で並べ替える</a></li></ol></li><li><a href="#toc8" tabindex="0">スプレッドシートのSORTN関数の書き方と基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">SORTN関数の構文</a></li><li><a href="#toc10" tabindex="0">SORTN関数の基本例（金額トップ3）</a></li><li><a href="#toc11" tabindex="0">同順位モード（0/1/2/3）の使い分け</a></li></ol></li><li><a href="#toc12" tabindex="0">スプレッドシートのSORTBY関数の書き方と基本的な使い方</a><ol><li><a href="#toc13" tabindex="0">SORTBY関数の構文</a></li><li><a href="#toc14" tabindex="0">SORTBY関数の基本例</a></li><li><a href="#toc15" tabindex="0">複数基準での並べ替え</a></li></ol></li><li><a href="#toc16" tabindex="0">SORT・SORTN・SORTBYの使い分けフローチャート</a><ol><li><a href="#toc17" tabindex="0">判断ステップ</a></li><li><a href="#toc18" tabindex="0">使い分け早見表</a></li></ol></li><li><a href="#toc19" tabindex="0">SORT系関数の実践的な使い方・応用例5選</a><ol><li><a href="#toc20" tabindex="0">パターン1: FILTER+SORTで条件付き並べ替え</a></li><li><a href="#toc21" tabindex="0">パターン2: SORTNで売上ランキング表</a></li><li><a href="#toc22" tabindex="0">パターン3: SORTBYで別シートの評価順に並べる</a></li><li><a href="#toc23" tabindex="0">パターン4: プルダウン+FILTER+SORTで動的レポート</a></li><li><a href="#toc24" tabindex="0">パターン5: SORTNモード3で「人気商品ランキング」</a></li></ol></li><li><a href="#toc25" tabindex="0">SORT系関数でよくあるエラーと対処法</a></li><li><a href="#toc26" tabindex="0">ExcelのSORT・SORTBY関数との違い</a><ol><li><a href="#toc27" tabindex="0">SORT関数の引数仕様の違い</a></li><li><a href="#toc28" tabindex="0">SORTNはGoogleスプレッドシート固有</a></li><li><a href="#toc29" tabindex="0">SORTBYはExcelにもある</a></li></ol></li><li><a href="#toc30" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc31" tabindex="0">まとめ｜SORT・SORTN・SORTBYで並べ替えを自動化しよう</a><ol><li><a href="#toc32" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">SORT・SORTN・SORTBY関数とは？並べ替え関数3兄弟の共通点</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートにはデータSort専用の関数が3つ用意されています。まず全体像を押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">3関数のひとこと比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>読み方</th><th>ひとこと説明</th><th>使う場面</th></tr></thead><tbody><tr><td>SORT</td><td>ソート</td><td>指定した列を基準にデータを並べ替える</td><td>売上順・日付順など基本的な並べ替え</td></tr><tr><td>SORTN</td><td>ソートエヌ</td><td>並べ替えた結果から上位N件だけ返す</td><td>トップ5・ワースト3など件数指定の抽出</td></tr><tr><td>SORTBY</td><td>ソートバイ</td><td>別の列（範囲）を基準にして並べ替える</td><td>基準列が表の外にある・複数基準の並べ替え</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3つとも元データはそのままで、別のセルに結果を自動展開（スピル）してくれます。</p>



<h3 class="wp-block-heading"><span id="toc3">3関数に共通する3つの特長</span></h3>



<p class="wp-block-paragraph"><strong>元データを変えない</strong></p>



<p class="wp-block-paragraph">フィルター機能とは違い、元の表はまったく触りません。集計表と元データを同じシートで管理するときも安心です。</p>



<p class="wp-block-paragraph"><strong>スピルで結果が自動展開される</strong></p>



<p class="wp-block-paragraph">数式を入力したセルから下と右に結果が自動で広がります。データが増えても範囲を広げ直す必要がなく、常に最新の状態を保ちます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル先に既にデータがあると「<code>#REF!</code>（結果がオーバーフローします）」エラーになります。スピル先の領域を必ず空けておいてください。</p></blockquote>



<p class="wp-block-paragraph"><strong>配列として他の関数に渡せる</strong></p>



<p class="wp-block-paragraph">SORT・SORTN・SORTBYの結果をFILTER関数の中に入れたり、INDEXで先頭行だけ取り出したりと、他の関数と組み合わせて使えます。</p>



<h2 class="wp-block-heading"><span id="toc4">スプレッドシートのSORT関数の書き方と基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc5">SORT関数の構文</span></h3>



<pre class="wp-block-code"><code>=SORT(範囲, 並べ替え列, 昇順か, [並べ替え列2, 昇順か2, ...])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>並べ替えたいデータ範囲</td></tr><tr><td>並べ替え列</td><td>任意</td><td>範囲内の何列目を基準にするか（1始まり）。省略時は1列目</td></tr><tr><td>昇順か</td><td>任意</td><td><code>TRUE</code>=昇順 / <code>FALSE</code>=降順。省略時はTRUE</td></tr><tr><td>並べ替え列2, 昇順か2</td><td>任意</td><td>第2・第3基準を追加するペア</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">SORT関数の基本例</span></h3>



<p class="wp-block-paragraph">A1:D100に売上データ（A:日付、B:担当者、C:商品、D:金額）が入っているとします。</p>



<p class="wp-block-paragraph"><strong>D列（金額）を降順（多い順）に並べ替える:</strong></p>



<pre class="wp-block-code"><code>=SORT(A1:D100, 4, FALSE)</code></pre>



<ul class="wp-block-list"><li>第2引数「4」はD列（4列目）を基準にする指定</li><li>第3引数「FALSE」は降順</li></ul>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-sort-sortn-sortby/01_formula_sort-basic.png/">_images/spreadsheet-sort-sortn-sortby/01_formula_sort-basic.png</a></p>



<h3 class="wp-block-heading"><span id="toc7">複数条件で並べ替える</span></h3>



<p class="wp-block-paragraph">第4引数以降に「列番号・昇順か」のペアを追加すると、複数の基準で並べ替えられます。「B列（担当者）で昇順、次にD列（金額）で降順」にするには:</p>



<pre class="wp-block-code"><code>=SORT(A1:D100, 2, TRUE, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">担当者の五十音順にまず並べて、同じ担当者内では金額の多い順に並びます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SORT関数の第2引数は「範囲内の列番号」です。A列から始まる範囲ならA列=1、B列=2です。列を追加・削除すると番号がずれる点に注意してください。列のずれが心配な場合はSORTBY関数を使うと安全ですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">スプレッドシートのSORTN関数の書き方と基本的な使い方</span></h2>



<p class="wp-block-paragraph">SORTN関数はGoogleスプレッドシート固有の関数です。ExcelにはSORTN相当の関数がありません。</p>



<h3 class="wp-block-heading"><span id="toc9">SORTN関数の構文</span></h3>



<pre class="wp-block-code"><code>=SORTN(範囲, [n], [表示順の同順位モード], [並べ替え列, 昇順か, ...])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>対象のデータ範囲</td></tr><tr><td>n</td><td>任意</td><td>返す行数。省略時は1</td></tr><tr><td>表示順の同順位モード</td><td>任意</td><td>0/1/2/3（後述）。省略時は0</td></tr><tr><td>並べ替え列, 昇順か</td><td>任意</td><td>SORT関数と同じペア指定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc10">SORTN関数の基本例（金額トップ3）</span></h3>



<p class="wp-block-paragraph">売上上位3件を取り出すには:</p>



<pre class="wp-block-code"><code>=SORTN(A1:D100, 3, 0, 4, FALSE)</code></pre>



<ul class="wp-block-list"><li>第2引数「3」で上位3件を指定</li><li>第3引数「0」は同順位があっても合計3件で返す（既定）</li><li>第4・第5引数「4, FALSE」でD列（金額）を降順</li></ul>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-sort-sortn-sortby/02_formula_sortn-top3.png/">_images/spreadsheet-sort-sortn-sortby/02_formula_sortn-top3.png</a></p>



<h3 class="wp-block-heading"><span id="toc11">同順位モード（0/1/2/3）の使い分け</span></h3>



<p class="wp-block-paragraph">SORTN関数の第3引数（同順位モード）は結果の行数に影響します。</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>動作</th><th>使いどころ</th></tr></thead><tbody><tr><td>0（既定）</td><td>上位n件をそのまま返す（同順位でも合計n件）</td><td>表示件数を固定したいとき</td></tr><tr><td>1</td><td>同順位を含めて返す（同点があれば件数が増える）</td><td>「5位タイ」を全員表示したいとき</td></tr><tr><td>2</td><td>重複行を除去してから上位n件を返す</td><td>重複データを除いたランキング</td></tr><tr><td>3</td><td>指定列で出現頻度の高い上位n種類を返す</td><td>人気商品・頻出カテゴリの抽出</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">モード3の使い方は少し特殊です。C列（商品名）で最も頻度が高い上位3種類を返すには:</p>



<pre class="wp-block-code"><code>=SORTN(C2:C100, 3, 3, C2:C100, TRUE)</code></pre>



<p class="wp-block-paragraph">第5引数（TRUE/FALSE）は昇降順ではなく形式的な指定で、実質TRUEを入れておけば問題ありません。</p>



<h2 class="wp-block-heading"><span id="toc12">スプレッドシートのSORTBY関数の書き方と基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc13">SORTBY関数の構文</span></h3>



<pre class="wp-block-code"><code>=SORTBY(範囲, 並べ替え基準範囲1, 順序1, [並べ替え基準範囲2, 順序2, ...])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>並べ替えたいデータ範囲</td></tr><tr><td>並べ替え基準範囲1</td><td>必須</td><td>並べ替えの基準となる列範囲（例: D2:D100）</td></tr><tr><td>順序1</td><td>必須</td><td><code>1</code>=昇順 / <code>-1</code>=降順（注: TRUE/FALSEではない）</td></tr><tr><td>並べ替え基準範囲2, 順序2</td><td>任意</td><td>第2・第3基準のペア</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SORT関数との大きな違いは「基準を列番号ではなく範囲で指定する」点です。列を追加・削除しても数式を直す必要がなく、範囲さえ正しければ自動で追従します。</p>



<h3 class="wp-block-heading"><span id="toc14">SORTBY関数の基本例</span></h3>



<p class="wp-block-paragraph">A1:D100のデータをD列（金額）の降順に並べ替えるには:</p>



<pre class="wp-block-code"><code>=SORTBY(A1:D100, D1:D100, -1)</code></pre>



<p class="wp-block-paragraph">SORT関数で書くなら <code>=SORT(A1:D100, 4, FALSE)</code> と同じ結果ですが、SORTBY版は列が増えてもD1:D100の参照が壊れません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SORTBY関数の順序指定は <code>1</code>（昇順）/ <code>-1</code>（降順）です。SORT関数の <code>TRUE</code> / <code>FALSE</code> とは異なるので混同しないよう注意してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">複数基準での並べ替え</span></h3>



<p class="wp-block-paragraph">「B列（担当者）を昇順、D列（金額）を降順」にするには:</p>



<pre class="wp-block-code"><code>=SORTBY(A1:D100, B1:B100, 1, D1:D100, -1)</code></pre>



<p class="wp-block-paragraph">基準ペアを追加するだけで何段階でも指定できます。</p>



<p class="wp-block-paragraph"><strong>別シートの列を基準にする例:</strong></p>



<pre class="wp-block-code"><code>=SORTBY(A2:C100, '評価シート'!B2:B100, -1)</code></pre>



<p class="wp-block-paragraph">別シートの評価点を基準に並べ替えられます。SORT関数では「範囲内の列番号」しか指定できないため、こうした用途にはSORTBYが唯一の選択肢です。</p>



<h2 class="wp-block-heading"><span id="toc16">SORT・SORTN・SORTBYの使い分けフローチャート</span></h2>



<h3 class="wp-block-heading"><span id="toc17">判断ステップ</span></h3>



<p class="wp-block-paragraph">どの関数を使うか迷ったときは、次の順番で考えてみてください。</p>



<p class="wp-block-paragraph"><strong>Step 1: 件数を絞りたいか？</strong></p>



<ul class="wp-block-list"><li>YES → <strong>SORTN</strong> を使う（上位N件抽出）</li><li>NO → Step 2へ</li></ul>



<p class="wp-block-paragraph"><strong>Step 2: 基準列が元データの範囲外（別シート/別範囲）か？</strong></p>



<ul class="wp-block-list"><li>YES → <strong>SORTBY</strong> 一択（別範囲を基準にできるのはSORTBYだけ）</li><li>NO → Step 3へ</li></ul>



<p class="wp-block-paragraph"><strong>Step 3: 列の追加・削除が頻繁に起きる表か？</strong></p>



<ul class="wp-block-list"><li>YES → <strong>SORTBY</strong>（列番号がずれる心配がない）</li><li>NO → <strong>SORT</strong>（書き方がシンプル）</li></ul>



<h3 class="wp-block-heading"><span id="toc18">使い分け早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数</th></tr></thead><tbody><tr><td>全件を1列基準で並べ替え（シンプルな書き方）</td><td>SORT</td></tr><tr><td>全件を複数列基準で並べ替え（列構成が安定）</td><td>SORT</td></tr><tr><td>上位N件だけ取り出す</td><td>SORTN</td></tr><tr><td>同順位を全員表示したい</td><td>SORTN（モード1）</td></tr><tr><td>頻度の高い上位N種を返す</td><td>SORTN（モード3）</td></tr><tr><td>基準列が範囲外・別シート</td><td>SORTBY</td></tr><tr><td>列を追加・削除しやすいダイナミックな表</td><td>SORTBY</td></tr><tr><td>Excel互換が最優先</td><td>SORTBY（SORTNは除く）</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc19">SORT系関数の実践的な使い方・応用例5選</span></h2>



<h3 class="wp-block-heading"><span id="toc20">パターン1: FILTER+SORTで条件付き並べ替え</span></h3>



<p class="wp-block-paragraph">「東京支店のデータだけを金額降順で表示したい」という場面です。</p>



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



<p class="wp-block-paragraph">FILTER関数で「東京支店」のデータを抽出し、その結果をSORT関数が金額降順に並べ替えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SOTの第2引数「4」はFILTER結果内の列番号です。元データ（A:D）の4列目=D列（金額）と一致しますが、FILTER結果の列数が変わると番号もずれます。</p></blockquote>



<p class="wp-block-paragraph">FILTER結果が0件のときにエラーを回避するには:</p>



<pre class="wp-block-code"><code>=IFERROR(SORT(FILTER(A2:D100, B2:B100=&quot;東京&quot;), 4, FALSE), &quot;該当データなし&quot;)</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-sort-sortn-sortby/03_formula_filter-sort.png/">_images/spreadsheet-sort-sortn-sortby/03_formula_filter-sort.png</a></p>



<h3 class="wp-block-heading"><span id="toc21">パターン2: SORTNで売上ランキング表</span></h3>



<p class="wp-block-paragraph">月次レポートに「今月の売上トップ5」を自動表示するには:</p>



<pre class="wp-block-code"><code>=SORTN(A2:D100, 5, 0, 4, FALSE)</code></pre>



<p class="wp-block-paragraph">データが更新されてもランキングが自動で変わります。順位が上書きされないので元データを触らずに済みますよ。</p>



<h3 class="wp-block-heading"><span id="toc22">パターン3: SORTBYで別シートの評価順に並べる</span></h3>



<p class="wp-block-paragraph">顧客マスターシート（A:C列）を、評価シートのスコア（B列）順に並べ替えるには:</p>



<pre class="wp-block-code"><code>=SORTBY(A2:C100, '評価シート'!B2:B100, -1)</code></pre>



<p class="wp-block-paragraph">顧客マスターに評価列を追加しなくても並べ替えができます。データが分散しているときにSORTBYが力を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc23">パターン4: プルダウン+FILTER+SORTで動的レポート</span></h3>



<p class="wp-block-paragraph">G1セルにデータの入力規則（プルダウン）で支店名を設定しておくと:</p>



<pre class="wp-block-code"><code>=SORT(FILTER(A2:D100, B2:B100=G1), 4, FALSE)</code></pre>



<p class="wp-block-paragraph">プルダウンで支店を切り替えるたびに、その支店のデータが金額降順で自動表示されます。フィルター機能をいちいち操作する必要がなく、閲覧者が自分で絞り込める資料が作れますよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-pulldown/">プルダウンの作り方</a>を合わせて確認すると、より実用的に活用できます。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン5: SORTNモード3で「人気商品ランキング」</span></h3>



<p class="wp-block-paragraph">注文ログのC列（商品名）から最も多く登場する上位3種類を取り出すには:</p>



<pre class="wp-block-code"><code>=SORTN(C2:C100, 3, 3, C2:C100, TRUE)</code></pre>



<p class="wp-block-paragraph">売れ筋商品・頻出カテゴリを自動集計できます。COUNTIF+手動集計より大幅に手間が減りますよ。</p>



<h2 class="wp-block-heading"><span id="toc25">SORT系関数でよくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>エラー / 症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code>（オーバーフロー）</td><td>スピル先にデータがある</td><td>スピル先の領域を空ける</td></tr><tr><td><code>#VALUE!</code></td><td>SORTBYの基準範囲と元データの行数が不一致</td><td>基準範囲の行数を元データと揃える</td></tr><tr><td><code>#N/A</code></td><td>FILTER+SORTで該当データがない</td><td>IFERRORで包んでエラー表示を変える</td></tr><tr><td><code>#NUM!</code></td><td>SORTNのnに0や負数を指定</td><td>nは1以上の整数を指定する</td></tr><tr><td><code>#NAME?</code></td><td>関数名のタイポ（SORTNやSORTBY）</td><td>関数名のスペルを確認する</td></tr><tr><td>並び順がおかしい</td><td>数値が文字列として入っている</td><td><a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a>で数値に変換する</td></tr><tr><td>日付の並びがずれる</td><td>日付が文字列扱い</td><td><a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a>で日付型に変換する</td></tr><tr><td>SORTNの結果が想定と違う</td><td>同順位モード（第3引数）の指定ミス</td><td>モード0/1/2/3を見直す</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p><code>#REF!</code> が出たら、数式セルにカーソルを当てると「どのセルがブロックしているか」がポップアップで表示されます。そのセルのデータを別の場所に移動するか、数式を別の空き領域に移してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc26">ExcelのSORT・SORTBY関数との違い</span></h2>



<h3 class="wp-block-heading"><span id="toc27">SORT関数の引数仕様の違い</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel（Microsoft 365 / Excel 2024）</th></tr></thead><tbody><tr><td>昇順/降順の値</td><td>TRUE / FALSE</td><td>1（昇順）/ -1（降順）</td></tr><tr><td>複数基準の指定方法</td><td>列番号と順序のペアを繰り返す</td><td>配列定数で同時指定可（例: <code>{1,3},{1,-1}</code>）</td></tr><tr><td>第4引数の意味</td><td>第2並べ替え列</td><td>並べ替え基準（1=行方向/2=列方向）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">スプレッドシートからExcelにコピーした場合、SORT関数の引数の値（TRUE/FALSEと1/-1）が変わるため、結果がずれることがあります。</p>



<h3 class="wp-block-heading"><span id="toc28">SORTNはGoogleスプレッドシート固有</span></h3>



<p class="wp-block-paragraph">SORTNに相当するExcel関数はありません。Excelで同様の結果を出すには、SOTの結果をINDEXとSEQUENCEで上位N件に絞り込む必要があります。スプレッドシートのSORTNはGoogleならではの強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc29">SORTBYはExcelにもある</span></h3>



<p class="wp-block-paragraph">SORTBYはMicrosoft 365とExcel 2024で利用できます。構文もほぼ同じです。スプレッドシートとExcelを行き来する環境では、SORTBY関数が最も互換性が高い選択肢です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel 2019以前（永続ライセンス版）にはSORT・SORTBYともに存在しません。古いExcelファイルを共有する場合は、相手の環境を確認してください。</p></blockquote>



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



<p class="wp-block-paragraph"><strong>Q. SOTとSORTBYの結果はいつも同じですか？</strong></p>



<p class="wp-block-paragraph">A. 同じデータを同じ基準で並べ替えた場合、結果は同じです。違いは「基準の指定方法」だけです。SORT関数は「列番号（整数）」で指定し、SORTBY関数は「列の範囲」で指定します。列が追加・削除されても壊れにくい方を選ぶとよいですよ。</p>



<p class="wp-block-paragraph"><strong>Q. SORTN関数はExcelで使えますか？</strong></p>



<p class="wp-block-paragraph">A. 使えません。SORTNはGoogleスプレッドシート固有の関数です。Excelで上位N件を取り出すには、SORT結果にINDEX+SEQUENCEを組み合わせる必要があります。</p>



<p class="wp-block-paragraph"><strong>Q. スピルエリアのセルを直接編集できますか？</strong></p>



<p class="wp-block-paragraph">A. できません。スピルで展開されたセルは編集不可です。数式が入っている先頭セル（アンカーセル）だけ編集できます。展開されたセルをクリックすると、数式バーに薄いグレーで元の数式が表示されますよ。</p>



<p class="wp-block-paragraph"><strong>Q. FILTER関数と組み合わせるときの注意点は？</strong></p>



<p class="wp-block-paragraph">A. SORT関数のなかにFILTER関数を入れる場合、SORT関数の「列番号」はFILTER結果内の列番号になります。元データ全体の列番号と一致する場合は問題ありませんが、FILTER結果の列数が変わると番号がずれます。SORTBYならFILTER結果の範囲を直接指定できるので、より安全な場合もあります。</p>



<p class="wp-block-paragraph"><strong>Q. 並べ替えた結果をさらに並べ替えることはできますか？</strong></p>



<p class="wp-block-paragraph">A. できます。<code>SORT(SORT(...))</code> のようにネストするか、SORTとSORTBYを組み合わせることができます。またSORTNとSORTを組み合わせれば「上位N件をさらに別の基準で並べ替え」も1式で書けますよ。</p>



<h2 class="wp-block-heading"><span id="toc31">まとめ｜SORT・SORTN・SORTBYで並べ替えを自動化しよう</span></h2>



<p class="wp-block-paragraph">スプレッドシートのSORT・SORTN・SORTBY関数のポイントをおさらいします。</p>



<ul class="wp-block-list"><li><strong>SORT</strong>: 指定列を基準に全件を並べ替え。書き方がシンプル</li><li><strong>SORTN</strong>: 上位N件の抽出。同順位モードで細かく制御できる（Googleスプレッドシート固有）</li><li><strong>SORTBY</strong>: 別の列範囲を基準に並べ替え。列の追加・削除に強く、別シート参照も可能</li><li>3関数ともスピルで結果を自動展開し、元データを変更しない</li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>と組み合わせると「条件絞り込み+並べ替え」が1式で実現</li><li>ExcelとはSORT関数の引数仕様が一部異なる。SORTBYが最も互換性が高い</li></ul>



<p class="wp-block-paragraph">まずは <code>=SORT(A1:D100, 4, FALSE)</code> で金額降順の並べ替えから試してみてください。慣れたらSORTNとSORTBYも使い分けてみましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する実務7パターン</a></li><li><a href="https://mashukabu.com/spreadsheet-pulldown/">スプレッドシートのプルダウン作り方｜色付け・連動まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-xlookup/">スプレッドシートのXLOOKUP関数の使い方｜VLOOKUPとの違い・逆方向検索・スピル活用まで実例解説</a></li><li><a href="https://mashukabu.com/spreadsheet-sortn-function/">スプレッドシートのSORTN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sortby-function/">スプレッドシートのSORTBY関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-sort-sortn-sortby/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
