動的配列・スピル入門
SORTBY関数を見て理解する
別の配列の値を基準に、元の配列を並べ替えて返す関数です。複数のキーを指定すると、先のキーが同じ場合に次のキーで順序を決めます。
3つのポイント
- 並べ替える配列を指定する
- 別のキー配列を基準にする
- 同値なら次のキーで順序を決める
グループ順、同じグループでは得点の高い順に名前を並べる
サンプル数式
- 並べ替える配列
- 第1キー
- 第1キーの順序
- 第2キー
- 第2キーの順序
いまの結果:
先頭行:「佐藤」
入力・条件:5項目
- 並べ替える配列A2:A5(4セル)値の例:「田中」、「佐藤」、「鈴木」
- 第1キーB2:B5(4セル)値の例:2、1
- 第1キーの順序E2:1
- 第2キーC2:C5(4セル)値の例:80、90
- 第2キーの順序F2:-1
指定したキーで並べ替えた結果です。
サンプルデータ
※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 名前 | グループ | 得点 | 第1順序 | 第2順序 | 結果 | ||
| 2 | 田中 | 2 | 80 | 佐藤 | ||||
| 3 | 佐藤 | 1 | 90 | 鈴木 | ||||
| 4 | 鈴木 | 1 | 80 | 高橋 | ||||
| 5 | 高橋 | 2 | 90 | 田中 |
E2、F2に値を入力すると、結果と処理順が変わります。
元の位置と結果の対応
元の4行を並べ替え、結果の4行へ対応させます。
元配列の行
- 1行目 採用
- 2行目 採用
- 3行目 採用
- 4行目 採用
- 元2行目 A3結果1行目 H2文字列「佐藤」
- 元3行目 A4結果2行目 H3文字列「鈴木」
- 元4行目 A5結果3行目 H4文字列「高橋」
- 元1行目 A2結果4行目 H5文字列「田中」
出力先 H2:H5・4セル
5つの引数
色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。
A2:A5表のセル: A2:A5並べ替える名前の一覧です。
B2:B5表のセル: B2:B5優先して並べるグループ番号です。
E2表のセル: E21で小さい順、-1で大きい順にします。
C2:C5表のセル: C2:C5グループ番号が同じときに比べる得点です。
F2表のセル: F21で低い順、-1で高い順にします。
この数式を日本語にすると
名前をグループ番号の小さい順に並べます。同じグループ内では得点の高い順にし、佐藤、鈴木、高橋、田中の順でH2:H5に表示します。
この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。
処理の流れ
手順1〜6を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。
配列を確認する
A2A3A4A5A2:A5を並べ替える元配列として使います。
第1キーを確認する
B2B3B4B5B2:B5を第1キーとして確認しました。
第1キーの並べ替え順を確認する
E21なので、昇順で並べ替えます。
第2キーを確認する
C2C3C4C5C2:C5を第2キーとして確認しました。
第2キーの並べ替え順を確認する
F2-1なので、降順で並べ替えます。
別の配列を基準に並べ替える
H2:H5第1キーを昇順、第2キーを降順の優先順で並べ替え、4行×1列の結果をH2:H5へスピルします。
対応アプリ
- Excel
関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。
この例の注意点
- 並べ替え順は1が昇順、-1が降順です。最初の順序を省略すると昇順になります。
- キー配列は1列または1行にし、並べ替える配列と対応する行数または列数を揃えます。
- SORTは配列内の位置を基準にします。SORTBYは別の配列を基準にでき、キーを優先順に追加できます。
- 結果は複数セルへスピルします。結果を広げる場所は空けておきます。
一般構文
対応:Excelのみ
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)[] は省略できる引数です。
省略時
sort_order1→ 1省略すると、昇順に並べます。
公式資料・確認範囲
公式資料
- Microsoft Excel 公式対応状況・構文・省略時の扱い
実機確認
- Excel 2021計算結果・入力の扱い・エラー・配列展開を確認済み
- Google スプレッドシート対応状況を確認済み
次に学ぶ関数
カテゴリから探す
次に学ぶおすすめ関数はありません。カテゴリから探しましょう。
カテゴリを見る