<?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/%e9%85%8d%e5%88%97%e3%83%bb%e3%82%b9%e3%83%94%e3%83%ab/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 18 Sep 2026 22:31:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</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>ExcelのSORTBY関数の使い方｜複数条件・別列基準</title>
		<link>https://mashukabu.com/excel-function-howto-use-sortby/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-sortby/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:11 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[バージョン差]]></category>
		<category><![CDATA[並べ替え・抽出]]></category>
		<category><![CDATA[配列・スピル]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5768</guid>

					<description><![CDATA[ExcelのSORTBY関数の使い方を基本から解説。別列基準・複数条件での並べ替え方、SORT関数との違い、FILTER関数と組み合わせた抽出＋並べ替え、PHONETIC・VSTACK関数との連携、よくあるエラーの対処法まで実例付きで詳しく紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで表を並べ替えるとき、「部署ごとにまとめて、その中は売上の高い順にしたい」と思ったことはありませんか？ <a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>（並べ替えの基本関数）は、基準を列番号で指定します。そのため表に列を挿入すると、番号と実際の列がずれてしまうんですよね。</p>



<p class="wp-block-paragraph">そこで活躍するのが、ExcelのSORTBY関数です。基準にしたい列を範囲で直接指定するので、列の増減に強く、複数条件の並べ替えも1つの数式で書けます。</p>



<p class="wp-block-paragraph">この記事では、SORTBY関数の基本から応用まで、サンプルデータを使って順番に解説します。FILTER関数（条件に合うデータを抜き出す関数）との組み合わせや、エラーの対処法もまとめました。困ったときの辞書代わりに使ってみてください。</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">Excel SORTBY関数とは？別列基準で並べ替える関数</a><ol><li><a href="#toc2" tabindex="0">SORTBY関数が使えるExcelのバージョン</a></li><li><a href="#toc3" tabindex="0">基本構文と引数</a></li><li><a href="#toc4" tabindex="0">SORT関数との違い｜使い分けの判断基準</a></li></ol></li><li><a href="#toc5" tabindex="0">基本の使い方｜単一基準・複数キーで並べ替える</a><ol><li><a href="#toc6" tabindex="0">売上金額を降順で並べ替える</a></li><li><a href="#toc7" tabindex="0">日付を昇順で並べ替える</a></li><li><a href="#toc8" tabindex="0">配列外の列を基準にする</a></li><li><a href="#toc9" tabindex="0">部署→売上の2キーで並べ替える</a></li><li><a href="#toc10" tabindex="0">3キー以上で並べ替える</a></li></ol></li><li><a href="#toc11" tabindex="0">FILTER関数と組み合わせる｜抽出＋並べ替えを一発で</a><ol><li><a href="#toc12" tabindex="0">条件抽出しながら並べ替える基本パターン</a></li><li><a href="#toc13" tabindex="0">配列と基準配列のサイズ不一致エラーをLET関数で防ぐ</a></li><li><a href="#toc14" tabindex="0">抽出結果が0件のときの#CALC!エラーに備える</a></li></ol></li><li><a href="#toc15" tabindex="0">実務で使える応用パターン｜PHONETIC・VSTACKとの組み合わせ</a><ol><li><a href="#toc16" tabindex="0">PHONETIC関数で五十音順に並べ替える</a></li><li><a href="#toc17" tabindex="0">VSTACK関数で複数シートを統合して並べ替える</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excel SORTBY関数とは？別列基準で並べ替える関数</span></h2>



<p class="wp-block-paragraph">SORTBY関数（読み方：ソートバイ）は、指定した基準の値をもとに表を並べ替える関数です。英語の「sort by」には、「〜を基準に並べ替える」という意味があります。</p>



<p class="wp-block-paragraph">名前のとおり、SORTBY関数は「何を基準に並べるか」を範囲で渡すのが特徴。売上金額で並べたいなら、売上金額の列の範囲をそのまま指定すればOKです。</p>



<p class="wp-block-paragraph">では、なぜSORT関数ではなくSORTBY関数を選ぶのでしょうか？ 主な理由は次の3つです。</p>



<ul class="wp-block-list"><li><strong>列の増減に強い</strong>: 基準を範囲で指定するので、列を挿入しても参照が自動で調整される</li><li><strong>複数条件に対応</strong>: 基準と順序のペアを足すだけで、2段階・3段階の並べ替えができる</li><li><strong>表の外の列も基準にできる</strong>: 結果に表示しない列を、並べ替えのキーに使える</li></ul>



<p class="wp-block-paragraph">特に3つ目は、SORT関数にはないSORTBY関数ならではの強み。記事の後半では、この性質を活かした実務パターンも紹介しますよ。</p>



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



<p class="wp-block-paragraph">SORTBY関数は、Excelのバージョンによって使える・使えないが分かれる関数です。まずは、お使いの環境が対応しているか確認しておきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: Microsoft 365（Windows/Mac）、Excel 2021、Excel 2024、Excel for the web／Excel 2019以前は非対応（#NAME?エラー）</p></blockquote>



<p class="wp-block-paragraph">Excel 2019以前で数式を入力すると、関数名が認識されず#NAME?エラーになります。古いExcelを使っている人とファイルを共有するときは、相手の環境にも気を配りたいところ。</p>



<p class="wp-block-paragraph">お使いのバージョンは、Windows版なら［ファイル］タブ→［アカウント］で確認できます。動的配列関数がどの版から使えるかは、<a href="https://mashukabu.com/modern-excel-explanation/">モダンExcel解説</a>の対応表もチェックしてみてください。</p>



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



<p class="wp-block-paragraph">SORTBY関数の構文は、次のとおりです。</p>



<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><th>既定値</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>並べ替えたいセル範囲または配列</td><td>&#8211;</td></tr><tr><td>基準配列1</td><td>必須</td><td>並べ替えの基準にする範囲（1列または1行のみ）</td><td>&#8211;</td></tr><tr><td>並べ替え順序1</td><td>省略可</td><td>1＝昇順／-1＝降順</td><td>1（昇順）</td></tr><tr><td>基準配列2以降</td><td>省略可</td><td>2番目以降の基準と順序のペア（続けて追加できる）</td><td>&#8211;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">必須の引数は「配列」と「基準配列1」の2つだけ。並べ替え順序を省略すると、昇順（1）として扱われます。</p>



<p class="wp-block-paragraph">引数の指定で注意したいのは、次の3点です。</p>



<ul class="wp-block-list"><li>基準配列は<strong>1列（または1行）だけ</strong>を指定する</li><li>基準配列の行数は、配列の行数とそろえる</li><li>並べ替え順序には、1か-1のどちらかを指定する</li></ul>



<p class="wp-block-paragraph">どれか1つでも外れると、#VALUE!エラーになります。最初に押さえておけば、あとで慌てずに済みますよ。</p>



<h3 class="wp-block-heading"><span id="toc4">SORT関数との違い｜使い分けの判断基準</span></h3>



<p class="wp-block-paragraph">SORTBY関数とよく比べられるのが、<a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>です。どちらも表を並べ替える関数ですが、基準の渡し方が大きく違います。</p>



<p class="wp-block-paragraph">たとえばA〜D列の表で、C列の売上金額を降順に並べる場合を比べてみましょう。</p>



<pre class="wp-block-code"><code>=SORT(A2:D8, 3, -1)
=SORTBY(A2:D8, C2:C8, -1)</code></pre>



<p class="wp-block-paragraph">SORT関数は「表の3列目」と番号で指定し、SORTBY関数は「C2:C8」と範囲で指定します。結果は同じですが、列を挿入したときの強さに差が出るんです。</p>



<p class="wp-block-paragraph">もしB列とC列の間に列を1つ挿入すると、SORT関数の「3」は新しく挿入した空の列を指してしまいます。SORTBY関数なら参照が自動で <code>D2:D8</code> に変わるので、基準は売上金額のまま。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SORT関数</th><th>SORTBY関数</th></tr></thead><tbody><tr><td>基準の指定方法</td><td>列番号（数値）</td><td>範囲（C2:C8など）</td></tr><tr><td>複数の基準</td><td>列番号を配列定数で並べる（例: <code>{2,3}</code>）</td><td>範囲と順序のペアを追加</td></tr><tr><td>列の挿入・削除</td><td>番号と実際の列がずれることがある</td><td>参照が追従するので壊れにくい</td></tr><tr><td>列方向（横方向）の並べ替え</td><td>by_col引数にTRUEで可能</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">実はSORT関数も、<code>=SORT(A2:D8, {2,3}, {1,-1})</code> のように書けば複数の基準で並べ替えられます。列番号と順序を波かっこ <code>{ }</code> で並べる「配列定数」という書き方です。ただし番号で指定する点は同じなので、列の挿入に弱いことは変わりません。</p>



<p class="wp-block-paragraph"><strong>SORT関数が向いているケース</strong></p>



<ul class="wp-block-list"><li>基準が1つだけのシンプルな並べ替え</li><li>表の先頭列で並べるだけのとき（<code>=SORT(A2:D8)</code> で済む）</li><li>列方向（横方向）に並べ替えたいとき</li></ul>



<p class="wp-block-paragraph"><strong>SORTBY関数が向いているケース</strong></p>



<ul class="wp-block-list"><li>2つ以上の基準で並べ替えたいとき</li><li>列の挿入・削除がよくある表</li><li>結果に表示しない列を基準にしたいとき</li></ul>



<p class="wp-block-paragraph">迷ったときは、あとから基準を足しやすいSORTBY関数を選んでおくと安心です。SORT関数そのものの使い方は、<a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数の記事</a>も参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc5">基本の使い方｜単一基準・複数キーで並べ替える</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>480,000</td><td>2024/4/5</td></tr><tr><td>鈴木</td><td>総務部</td><td>320,000</td><td>2024/4/12</td></tr><tr><td>高橋</td><td>営業部</td><td>550,000</td><td>2024/4/3</td></tr><tr><td>田中</td><td>経理部</td><td>280,000</td><td>2024/4/18</td></tr><tr><td>伊藤</td><td>営業部</td><td>410,000</td><td>2024/4/8</td></tr><tr><td>渡辺</td><td>総務部</td><td>350,000</td><td>2024/4/15</td></tr><tr><td>山本</td><td>経理部</td><td>290,000</td><td>2024/4/22</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">1行目が見出し、2〜8行目がデータという配置です。数式は、表の右側にある空いたセルに入力してください。</p>



<p class="wp-block-paragraph">SORTBY関数の結果は、数式を入れたセルから4列×7行ぶん自動で広がります。この動きを「スピル」と呼び、広がる先のセルは空けておく必要がありますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">売上金額を降順で並べ替える</span></h3>



<p class="wp-block-paragraph">まずは、売上金額が高い順に並べ替えてみます。基準にしたいC列の範囲を、第2引数に直接指定するのがポイント。</p>



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



<p class="wp-block-paragraph">第1引数が表全体（A2:D8）、第2引数が基準列（C2:C8）、第3引数の-1が降順の指定です。結果は以下のとおり。</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>550,000</td><td>2024/4/3</td></tr><tr><td>佐藤</td><td>営業部</td><td>480,000</td><td>2024/4/5</td></tr><tr><td>伊藤</td><td>営業部</td><td>410,000</td><td>2024/4/8</td></tr><tr><td>渡辺</td><td>総務部</td><td>350,000</td><td>2024/4/15</td></tr><tr><td>鈴木</td><td>総務部</td><td>320,000</td><td>2024/4/12</td></tr><tr><td>山本</td><td>経理部</td><td>290,000</td><td>2024/4/22</td></tr><tr><td>田中</td><td>経理部</td><td>280,000</td><td>2024/4/18</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">売上金額の高い順に、担当者・部署・日付も一緒に並べ替わりましたね。行ごとまとめて動くので、データの対応がくずれる心配はありませんよ。</p>



<h3 class="wp-block-heading"><span id="toc7">日付を昇順で並べ替える</span></h3>



<p class="wp-block-paragraph">次は、日付の古い順に並べ替える例です。第3引数を1（昇順）にします。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:D8, D2:D8, 1)</code></pre>



<p class="wp-block-paragraph">昇順は既定値なので、第3引数を省略した <code>=SORTBY(A2:D8, D2:D8)</code> でもOK。結果は日付の古い順に、高橋→佐藤→伊藤→鈴木→渡辺→田中→山本と並びます。</p>



<p class="wp-block-paragraph">ただし、日付が文字列として入力されていると、意図した順にならないことがあります。セルの値が日付として認識されているか、確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc8">配列外の列を基準にする</span></h3>



<p class="wp-block-paragraph">SORTBY関数の大きな特長は、表示するデータの外にある列でも基準に使えることです。たとえばE列に「表示順」の番号を入れておけば、A〜D列のデータをE列の順に並べ替えられます。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:D8, E2:E8, 1)</code></pre>



<p class="wp-block-paragraph">結果に出てくるのはA〜D列の4列だけで、基準にしたE列は表示されません。「並べ替えには使いたいけれど、見せる必要はない列」があるときに便利なんです。</p>



<p class="wp-block-paragraph">SORT関数では、この書き方はできません。基準を「配列の中の何列目か」でしか指定できないからです。この性質は、後半で紹介する五十音順の並べ替えでも活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">部署→売上の2キーで並べ替える</span></h3>



<p class="wp-block-paragraph">SORTBY関数の真骨頂は、複数の基準で並べ替えられること。基準配列と並べ替え順序のペアを追加するだけで、2段階の並べ替えができます。</p>



<p class="wp-block-paragraph">ここでは部署を昇順で並べ、同じ部署の中では売上金額を降順にしてみましょう。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:D8, B2:B8, 1, C2:C8, -1)</code></pre>



<p class="wp-block-paragraph">第2・3引数が1つ目の基準（部署の昇順）、第4・5引数が2つ目の基準（売上の降順）です。1つ目の基準で同じ値が並んだときに、2つ目の基準が使われる仕組みになっています。結果は次のとおり。</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>550,000</td><td>2024/4/3</td></tr><tr><td>佐藤</td><td>営業部</td><td>480,000</td><td>2024/4/5</td></tr><tr><td>伊藤</td><td>営業部</td><td>410,000</td><td>2024/4/8</td></tr><tr><td>山本</td><td>経理部</td><td>290,000</td><td>2024/4/22</td></tr><tr><td>田中</td><td>経理部</td><td>280,000</td><td>2024/4/18</td></tr><tr><td>渡辺</td><td>総務部</td><td>350,000</td><td>2024/4/15</td></tr><tr><td>鈴木</td><td>総務部</td><td>320,000</td><td>2024/4/12</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">部署ごとにまとまり、各部署の中では売上の高い順に並んでいますね。なお、部署名のような漢字の文字列は、読みの五十音順ではなく文字コードの順で並びます。今回はたまたま「営業部→経理部→総務部」と読みの順と同じになりましたが、いつも一致するとは限りません。</p>



<p class="wp-block-paragraph">部署を決まった順番で並べたいなら、部署ごとの並び順（営業部＝1、総務部＝2など）を入れた作業列を用意しましょう。その列を基準配列にすれば、配列外の列を基準にできる強みがそのまま活きますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">3キー以上で並べ替える</span></h3>



<p class="wp-block-paragraph">基準と順序のペアは、3組以上に増やすこともできます。たとえば「部署→日付→売上」の3段階で並べ替えるなら、次のように書きます。</p>



<pre class="wp-block-code"><code>=SORTBY(A2:D8, B2:B8, 1, D2:D8, 1, C2:C8, -1)</code></pre>



<p class="wp-block-paragraph">部署の昇順で並べ、同じ部署の中は日付の古い順、日付まで同じなら売上の高い順という指定です。結果は次のとおり。</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>550,000</td><td>2024/4/3</td></tr><tr><td>佐藤</td><td>営業部</td><td>480,000</td><td>2024/4/5</td></tr><tr><td>伊藤</td><td>営業部</td><td>410,000</td><td>2024/4/8</td></tr><tr><td>田中</td><td>経理部</td><td>280,000</td><td>2024/4/18</td></tr><tr><td>山本</td><td>経理部</td><td>290,000</td><td>2024/4/22</td></tr><tr><td>鈴木</td><td>総務部</td><td>320,000</td><td>2024/4/12</td></tr><tr><td>渡辺</td><td>総務部</td><td>350,000</td><td>2024/4/15</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">2キーの例と見比べると、経理部と総務部の中の順番が入れ替わっていますね。2つ目の基準を、売上から日付に変えたためです。</p>



<p class="wp-block-paragraph">サンプルデータには同じ日付がないため、3つ目の基準（売上）は結果に影響していません。とはいえ実務では、同じ日付に複数の取引が並ぶこともよくありますよね。そんなとき3つ目の基準があれば、並び順が最後まで決まります。</p>



<p class="wp-block-paragraph">ペアが増えても、「基準列, 順序」の組を並べているだけ。落ち着いて1組ずつ足してみてください。</p>



<h2 class="wp-block-heading"><span id="toc11">FILTER関数と組み合わせる｜抽出＋並べ替えを一発で</span></h2>



<p class="wp-block-paragraph">「営業部だけを売上順に並べたい」のように、条件で絞り込んでから並べ替えたい場面は多いですよね。そんなときは、<a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>（条件に合うデータを抜き出す関数）とSORTBY関数を組み合わせます。</p>



<p class="wp-block-paragraph">抽出と並べ替えが1つの数式で終わるので、元データを書き換えれば結果も自動で更新されます。毎回フィルターをかけてから並べ替える手間も、もういりませんよ。</p>



<h3 class="wp-block-heading"><span id="toc12">条件抽出しながら並べ替える基本パターン</span></h3>



<p class="wp-block-paragraph">営業部のデータだけを、売上金額の高い順に表示してみましょう。</p>



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



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。数式は、次の3つの部品でできています。</p>



<ul class="wp-block-list"><li><code>FILTER(A2:D8, B2:B8="営業部")</code>: 営業部の行だけを抜き出した表（配列）</li><li><code>FILTER(C2:C8, B2:B8="営業部")</code>: 営業部の売上金額だけを抜き出した列（基準配列）</li><li><code>-1</code>: 降順の指定</li></ul>



<p class="wp-block-paragraph">結果は、以下のとおりです。</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>550,000</td><td>2024/4/3</td></tr><tr><td>佐藤</td><td>営業部</td><td>480,000</td><td>2024/4/5</td></tr><tr><td>伊藤</td><td>営業部</td><td>410,000</td><td>2024/4/8</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">営業部の3人が、売上の高い順に並びました。数式内に2か所ある「営業部」を「総務部」に書き換えれば、総務部の2人が同じように並びます。</p>



<p class="wp-block-paragraph">ポイントは、基準列も同じ条件でFILTERしていること。SORTBY関数は、配列と基準配列の行数がそろっていないとエラーになるからです。</p>



<p class="wp-block-paragraph">もし基準配列を <code>C2:C8</code> のままにすると、配列は3行・基準配列は7行でサイズが合いません。この場合は#VALUE!エラーになるので注意してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>基準が表の中の1列だけなら、SORT関数でも同じ結果になります。</strong></p><p><code>=SORT(FILTER(A2:D8, B2:B8="営業部"), 3, -1)</code><br>FILTERが1回で済むぶん、こちらのほうがシンプル。複数の基準で並べたいときこそ、SORTBY関数の出番です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">配列と基準配列のサイズ不一致エラーをLET関数で防ぐ</span></h3>



<p class="wp-block-paragraph">FILTER＋SORTBYで特につまずきやすいのが、2つのFILTERの条件がずれるミスです。たとえば条件を「総務部」に変えるとき、片方だけ直し忘れると行数が合わず#VALUE!エラーになります。</p>



<p class="wp-block-paragraph">さらに厄介なのは、たまたま行数が同じだった場合。エラーは出ないのに、別の条件で抜き出した値を基準に並んでしまうことがあります。</p>



<p class="wp-block-paragraph">そこで役立つのが、<a href="https://mashukabu.com/excel-function-howto-use-let/">LET関数</a>（計算式や値に名前を付けて、数式の中で使い回せる関数）です。条件式に名前を付けて1か所にまとめれば、2つのFILTERに必ず同じ条件が渡ります。</p>



<pre class="wp-block-code"><code>=LET(cond, B2:B8=&quot;営業部&quot;, SORTBY(FILTER(A2:D8, cond), FILTER(C2:C8, cond), -1))</code></pre>



<p class="wp-block-paragraph">数式の中身を分解してみましょう。</p>



<ul class="wp-block-list"><li><code>cond, B2:B8="営業部"</code>: 条件式に「cond」という名前を付ける</li><li><code>FILTER(A2:D8, cond)</code>: condの条件で表を抜き出す（配列）</li><li><code>FILTER(C2:C8, cond)</code>: 同じcondで売上金額を抜き出す（基準配列）</li></ul>



<p class="wp-block-paragraph">結果は、先ほどの基本パターンと同じ営業部の3行（高橋→佐藤→伊藤）です。条件を変えたいときは「営業部」の1か所を書き換えるだけなので、直し忘れが起きません。</p>



<p class="wp-block-paragraph">なお、LET関数を使ってもFILTERの計算が1回に減るわけではありません。効果はあくまで「条件のずれによる入力ミスを防ぐこと」と考えておきましょう。</p>



<p class="wp-block-paragraph">LET関数の対応バージョンは、SORTBY関数と同じです。Microsoft 365、Excel 2021・2024、Excel for the webで使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">抽出結果が0件のときの#CALC!エラーに備える</span></h3>



<p class="wp-block-paragraph">FILTER関数は、条件に合うデータが1件もなく第3引数も省略されていると、#CALC!エラーを返します。たとえば表にない「企画部」を条件にすると、抽出結果が0件になり、SORTBY関数の結果もエラーになってしまいます。</p>



<p class="wp-block-paragraph">これを防ぐのが、FILTER関数の第3引数（空の場合の値）です。SORTBY関数と組み合わせるときは、2つのFILTERの両方に同じ値を指定しておきましょう。</p>



<pre class="wp-block-code"><code>=LET(cond, B2:B8=&quot;企画部&quot;, SORTBY(FILTER(A2:D8, cond, &quot;該当なし&quot;), FILTER(C2:C8, cond, &quot;該当なし&quot;), -1))</code></pre>



<p class="wp-block-paragraph">この形なら、0件のときはエラーではなく「該当なし」と表示されます。片方のFILTERだけに第3引数を入れると、もう片方のエラーが残るので気をつけてください。条件を切り替えて使う表なら、最初から第3引数を入れておくと安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">実務で使える応用パターン｜PHONETIC・VSTACKとの組み合わせ</span></h2>



<p class="wp-block-paragraph">ここからは、ほかの関数と組み合わせた実務パターンを2つ紹介します。「名簿を五十音順にしたい」「月別のシートをまとめて並べたい」といった、事務作業でよくある悩みに効く組み合わせですよ。</p>



<h3 class="wp-block-heading"><span id="toc16">PHONETIC関数で五十音順に並べ替える</span></h3>



<p class="wp-block-paragraph">担当者名で <code>=SORTBY(A2:D8, A2:A8, 1)</code> と並べ替えても、五十音順になるとは限りません。漢字の文字列は、読みではなく文字コードの順で比較されるからです。</p>



<p class="wp-block-paragraph">そこで使うのが、<a href="https://mashukabu.com/excel-function-howto-use-phonetic/">PHONETIC関数</a>（セルのふりがなを取り出す関数）です。ふりがなを基準にすれば、読みの順に並べ替えられます。</p>



<p class="wp-block-paragraph">ただし、PHONETIC関数は <code>A2:A8</code> のような範囲をまとめて渡す使い方には向きません。公式ヘルプによると、範囲を指定した場合は左上隅のセルのふりがなだけが返されます。</p>



<p class="wp-block-paragraph">解決策は、1行ずつふりがなを取り出す作業列を作ること。ここでは、表の右隣にある空いたE列を使います。</p>



<ol class="wp-block-list"><li>E1セルに見出し「ふりがな」を入力する</li><li>E2セルに <code>=PHONETIC(A2)</code> を入力する</li><li>E2セルをE8までコピーする</li><li>表の右側の空いたセル（たとえばG2）に、次の数式を入力する</li></ol>



<pre class="wp-block-code"><code>=SORTBY(A2:D8, E2:E8, 1)</code></pre>



<p class="wp-block-paragraph">E列のふりがなを基準に、A〜D列の表を昇順で並べ替える数式です。基準のE列は結果に表示されないので、表の見た目は4列のまま。先ほど紹介した「配列外の列を基準にできる」強みを、そのまま活かした使い方なんです。</p>



<p class="wp-block-paragraph">担当者名を入力したときのふりがなが正しく登録されていれば、結果は次のようになります。</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>410,000</td><td>2024/4/8</td></tr><tr><td>佐藤</td><td>営業部</td><td>480,000</td><td>2024/4/5</td></tr><tr><td>鈴木</td><td>総務部</td><td>320,000</td><td>2024/4/12</td></tr><tr><td>高橋</td><td>営業部</td><td>550,000</td><td>2024/4/3</td></tr><tr><td>田中</td><td>経理部</td><td>280,000</td><td>2024/4/18</td></tr><tr><td>山本</td><td>経理部</td><td>290,000</td><td>2024/4/22</td></tr><tr><td>渡辺</td><td>総務部</td><td>350,000</td><td>2024/4/15</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">イトウ→サトウ→スズキ→タカハシ→タナカ→ヤマモト→ワタナベと、読みの五十音順に並びましたね。</p>



<p class="wp-block-paragraph">PHONETIC関数を使うときは、次の2点に気をつけてください。</p>



<ul class="wp-block-list"><li><strong>ふりがな情報がないセル</strong>: CSVから取り込んだデータや貼り付けたデータは、ふりがな情報を持たないことがあります。その場合は読みが取れず、五十音順に並ばないことも。</li><li><strong>Excel for the web</strong>: 公式ヘルプの対応バージョン一覧に、Web版の記載がありません。Web版では使えない可能性がある点を覚えておきましょう。</li></ul>



<p class="wp-block-paragraph">ふりがなが取れないセルは、Windows版なら「ふりがなの編集」（Shift+Alt+↑）で直せます。CSVデータのふりがなをまとめて整える方法は、<a href="https://mashukabu.com/excel-function-howto-use-phonetic/">PHONETIC関数の記事</a>で詳しく解説していますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">VSTACK関数で複数シートを統合して並べ替える</span></h3>



<p class="wp-block-paragraph">月ごとにシートが分かれた売上データを、1つにまとめて並べ替えたいこともありますよね。そんなときは、<a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数</a>（複数の範囲を縦につなげる関数）で結合してから、SORTBY関数で並べ替えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン（VSTACK関数）</strong>: Microsoft 365（Windows/Mac）、Excel 2024、Excel for the web／Excel 2021以前は非対応</p></blockquote>



<p class="wp-block-paragraph">SORTBY関数が使えるExcel 2021でも、VSTACK関数は使えません。SORTBY関数より対応範囲が狭い点に注意しましょう。</p>



<p class="wp-block-paragraph">Sheet1とSheet2に、それぞれA2:D8の売上データがある場合の数式です。</p>



<pre class="wp-block-code"><code>=SORTBY(VSTACK(Sheet1!A2:D8, Sheet2!A2:D8), VSTACK(Sheet1!C2:C8, Sheet2!C2:C8), -1)</code></pre>



<p class="wp-block-paragraph">2つのシートを縦につないだ14行の表を、売上金額の高い順に並べ替えています。ポイントは、データ全体（配列）と基準列（基準配列）の両方をVSTACKでつなぐことです。</p>



<p class="wp-block-paragraph">配列は7行＋7行＝14行、基準配列も7行＋7行＝14行になり、行数がそろいます。基準配列を片方のシートの範囲だけにすると、行数が合わず#VALUE!エラーになるので要注意。</p>



<p class="wp-block-paragraph">シートごとに行数が違う場合も、考え方は同じ。たとえばSheet2のデータが10行なら、Sheet2側の範囲は <code>A2:D11</code> と <code>C2:C11</code> にします。</p>



<p class="wp-block-paragraph">なお、つなぐ表の列数がそろっていないと、足りない列は#N/Aで埋められます。各シートの列の並びは、あらかじめそろえておきましょう。そうすれば、月別シートを手作業でコピペしてまとめる必要はもうありませんよ。</p>



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



<p class="wp-block-paragraph">SORTBY関数でうまくいかないときは、まず以下の表で症状を確認してみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td>#SPILL!エラー</td><td>スピル先に値や結合セルがある／テーブル内に入力した</td><td>広がる先を空けて結合を解除する／テーブルの外に入力する</td></tr><tr><td>#VALUE!エラー</td><td>基準配列が複数列（複数行）になっている</td><td>基準配列を1列（または1行）にする</td></tr><tr><td>#VALUE!エラー</td><td>並べ替え順序が1・-1以外</td><td>1（昇順）か-1（降順）に直す</td></tr><tr><td>#VALUE!エラー</td><td>配列と基準配列の行数が違う</td><td>両方の範囲の行数をそろえる</td></tr><tr><td>#NAME?エラー</td><td>対応していないバージョン（Excel 2019以前）</td><td>Microsoft 365・Excel 2021以降・Excel for the webで開く</td></tr><tr><td>#CALC!エラー</td><td>FILTERの抽出結果が0件</td><td>FILTERの第3引数（空の場合の値）を指定する</td></tr><tr><td>数値の並び順がおかしい</td><td>文字列として入力された数字が混ざっている</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>などで数値にそろえる</td></tr><tr><td>名前が五十音順にならない</td><td>漢字は読みではなく文字コードの順で並ぶ</td><td>PHONETIC関数の作業列を基準にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">FILTER関数と組み合わせたときのサイズ不一致なら、LET関数で条件をまとめる書き方が効きます。それ以外でつまずきやすいものを、いくつか補足しておきますね。</p>



<p class="wp-block-paragraph"><strong>#SPILL!エラー</strong>は、結果が広がる範囲にすでに何か入っていると起きます。見た目は空でも、スペースだけが入ったセルが残っていることも。範囲をまとめて選んで、内容を削除してみてください。</p>



<p class="wp-block-paragraph"><strong>#NAME?エラー</strong>は、SORTBY関数に対応していないExcel 2019以前で起きるエラーです。古いバージョンの人とファイルをやり取りするなら、［データ］タブの［並べ替え］で並べ替えた表を渡すのも一案でしょう。</p>



<p class="wp-block-paragraph"><strong>数値の並び順がおかしい</strong>ときは、数字が文字列として入力されていないか確認します。Excelの並べ替えでは、数値と「文字列の数字」が別物として扱われるためです。<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>（文字列の数字を数値に変換する関数）で数値にそろえてから、並べ替えてみてください。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのSORTBY関数の使い方を解説しました。最後に、ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>SORTBY関数は、基準にする列を<strong>範囲で直接指定</strong>して並べ替える関数</li><li>基準と順序のペアを追加すれば、<strong>複数条件</strong>で並べ替えられる</li><li>結果に表示しない列（配列外の列）も基準に使える</li><li><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a>と組み合わせると、抽出と並べ替えを1つの数式で書ける</li><li>条件のずれが心配なら、<a href="https://mashukabu.com/excel-function-howto-use-let/">LET関数</a>で条件を1か所にまとめる</li><li>五十音順にしたいときは、PHONETIC関数で作った作業列を基準にする</li><li>使えるのはMicrosoft 365・Excel 2021・Excel 2024・Excel for the web</li></ul>



<p class="wp-block-paragraph">基準が1つだけなら、<a href="https://mashukabu.com/excel-function-howto-use-sort/">SORT関数</a>のほうがシンプルに書けます。一方で、複数条件や列の増減がある表なら、SORTBY関数のほうが扱いやすいはず。まずは「部署→売上」の2キー並べ替えから試してみてくださいね。</p>



<p class="wp-block-paragraph">スピル（動的配列）の関数をまとめて学ぶなら、<a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">スピル関数の入門記事</a>もあわせて読んでみてください。</p>



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



<h3 class="wp-block-heading"><span id="toc20">この記事で紹介した関数・関連記事</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-filter/">FILTER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-let/">LET関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-phonetic/">PHONETIC関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vstack/">VSTACK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-unique/">UNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">スピル（動的配列）関数入門</a></li><li><a href="https://mashukabu.com/modern-excel-explanation/">モダンExcel解説</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-sortby/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
