本ページには広告が含まれています。

SORTBY 関数 複数の基準を同時に指定して並べ替える

SORTBY関数で複数の基準を同時に並べ替える

SORTBY 関数の使い方を紹介します。
SORTBY は複数の「基準」を同時に指定して並べ替えを行える関数です。並べ替えたデータは、スピル機能で複数のセルに結果を表示させることができます。※「スピル」についてはこちらで解説していますのでご覧ください。

くるみこ
くるみこ

今回はSORTBY 関数です。この関数もサブスクリプション版の「Microsoft 365」アプリの「Excel for Microsoft 365」と永続ライセンス版の最新版 Excel 2021で使用できます。
前回のSORT 関数では基本的に単一の[基準位置]で並べ替えを行うものでしたが、SORTBY 関数では複数を指定できます。

ということは、SORT関数で複数指定するためにネストするなんてことをしなくてもできるということですか?今回もよろしくお願いします(^^)/

【この記事でわかることは】
・SORTBY 関数の特徴使い方がわかります

スポンサーリンク

SORTBY 関数の構文

SORTBY 関数の「数式オートコンプリート」を確認してみます。

SORTBY関数の数式オートコンプリート

さらに、表示される引数の表示画像がこちらです。

SORTBY関数の引数入力時の数式オートコンプリート

SORTBY(配列,基準配列1,[並べ替え順序1], …)
必須なのは「配列」と「基準配列1」でその他の[]は省略できるようですね。

SORTBY 関数の構文をもう少しわかりやすくしてみると次のような感じです。

【構文】

=SORTBY(範囲(配列), 基準1, [順序1], [基準2], [順序2], … ) …に必要数を追加できます。
 ※[ ]の引数はオプション(省略可能)です。最初の範囲基準1必須です。
 ※指定できる基準の最大数は126個です。

引数内容
範囲または配列【必須】セル範囲(配列)を指定します
基準【必須】並べ替えの基準となる範囲を指定します
基準の範囲は必ず1列または1行で指定します
[順序] 1:昇順で並べ替えます(デフォルト)
-1:降順で並べ替えます
[]表示は省略可能な引数です

SORT関数と違い[方向]の引数がありません。それは「基準」に指定する範囲の方向で「列」か「行」かを判断できるため不要なのでしょう。

行や列の位置を指定して並べ替えるには SORT 関数 を使用します。

SORTBY関数も引数にワークシートでソートする時のような「先頭行をデータの見出しとして使用する」というオプション設定はありません。
[範囲] の指定には「見出し行」は含めないようにします!
引数の [範囲] に1行目の「見出し行」まで含めてしまうと「見出し」も並べ替えられてしまいますので注意しましょう!

SORTBY 関数の使用例

SORTBY 関数もスピル機能を使っているので、一つのセルに式を入力するだけで複数のセルに結果が表示されます。それではさっそく使用例を見ていきましょう。

複数の基準で並べ替える

日本百名山」の4つの標高が同じ山だけのリストを使って並べ替えてみます。

「標高は降順」と「山のNo.は昇順」に並べ替える

G2 セルに入力する数式は、=SORTBY(A2:E9,D2:D9,-1,A2:A9,1)
範囲A2:E9 (見出しを除いた範囲を指定)
基準1には 標高 D2:D9, [順序1]は 降順 = -1 を指定
基準2には NO. A2:A9, [順序2]は 昇順 = 1 を指定しました。

SORTBY関数で複数の基準を同時に指定して並べ替えるサンプル

うまく並び替え出来ました。

SORT関数で同じことをするなら数式は、=SORT(SORT(A2:E9,1,1),4,-1) となります。

範囲と基準は離れていても並べ替えできる

最初の例では範囲内に基準がありましたが、範囲と基準が別の位置でも並べ替えできます。

SORTBY関数で離れた場所の基準で表示させるサンプル

上の画像のG2セルの式は、基準は「標高」ですが、範囲は「No.」という離れた状態です。
結果は「標高」を降順に並べ替えたとおりに「No.」が並び変えられました。

SORTBY 関数の動作は、「基準」を並べ替えし、それに対応して「範囲」を並べ替えた結果をスピル配列で表示しています。

SORTBY 関数を使えば、位置を入れ替えて表示したり、不要な列は表示しないようにすることが可能ということがわかりました。

データをランダムに並べ替えたい場合

範囲のデータをランダムに並べ替えたい場合があります。
そんなときは、引数「基準」範囲に「RANDARRAY 関数」を使用します。

詳しくは、このリンク先「RANDARRAY 関数」の使用例をご覧ください。

SORTBY 関数を使う場合の留意点

・「基準」の範囲は必ず列または行で指定します。

・すべての引数は同一のサイズで指定します。相違する場合は #VALUE! エラーになります。

・「基準」に複数行または複数列は指定できません。指定すると #VALUE! エラーになります。

漢字の並べ替えや日付を並べ替える場合の注意点はSORT関数(リンク先)と同じです。

 

まとめ(おわりに)

以上、複数の「基準」を同時に指定して並べ替えできる SORTBY 関数 の使用例を解説しました。
「範囲」と「基準」が離れていても並べ替えできる点も SORTBY 関数 の特徴です。

くるみこ
くるみこ

今回のSORTBY関数はいかがでしたか?
ソートする場合には、用途に合わせてSORT関数と使い分けしましょう。
SORT関数でできることはSORTBY関数でもできますが「基準」を範囲で指定する必要があることが大きな相違点です。

 

「基準」を範囲で指定するのは少し面倒な気がしますけど、必要な列だけで表示したりできるのは便利かもしれませんね。

※「スピル」の解説についてはこちらをご覧ください。

すでに使用できるバージョンのExcelユーザーのみなさんは、いろいろ試して使い方に慣れておきましょう。職場のExcelがまだ対応していないバージョンの方も、近い将来には対応するExcelバージョンにアップグレードされるはずですから。

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

【今後の記事について】

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m

【検討中の今後の記事内容は・・・・】
・実務に役立つものを提供できるよう常に検討しています(^^ゞ
・その他雑記的に「プチネタなど」もいろいろ考えていきたいと思っています・・・・
・今後の記事にご期待ください(^^)/

スポンサーリンク
スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください