ラベルラベル

動的配列・スピル入門

SORT関数を見て理解する

配列を指定した行または列を基準に並べ替え、新しい配列として返す関数です。

3つのポイント

  1. 並べ替える表全体を指定する
  2. 基準にする列番号を決める
  3. 昇順・降順で並べ替え複数セルへスピルする
例題Excel仕様

社員データを評価点の高い順に並べる

サンプル数式

  • 配列
  • 基準位置
  • 並べ替え順序

いまの結果:

4行 × 3列
計算結果
結果セル:H2スピル範囲:H2:J5

先頭行:「佐藤」 | 「開発」 | 92

入力・条件:3項目
  • 配列A2:C5(4行 × 3列)先頭行:「田中」 | 「営業」 | 78
  • 基準位置E2:3
  • 並べ替え順序F2:-1
この結果になる理由

指定条件で行または列を並べ替えた結果です。

サンプルデータ

基準の列を変えてみよう

※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。

「社員データを評価点の高い順に並べる」のサンプルデータ。引数番号は正式引数と教材要素の対応、小さな角丸数字は処理順を表します。
ABCDEFGHIJ
1社員名部署評価点 基準列順序 結果  
2田中営業78  佐藤開発92
3佐藤開発92    高橋営業88
4鈴木人事85    鈴木人事85
5高橋営業88    田中営業78
配列基準位置並べ替え順序起点セルスピル結果
①・②・③ 正式引数 / 教材要素1–4 処理の流れ

E2、F2に値を入力すると、結果と処理順が変わります。

3つの引数

色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。

  1. A2:C5表のセル: A2:C5

    並べ替える社員データです。

  2. E2表のセル: E2

    Excelのsort_indexとして、配列の何列目を基準にするか指定します。この例では評価点の3列目です。

  3. F2表のセル: F2

    Excelのsort_orderでは1が昇順、-1が降順です。この例では-1で高い順にします。

この数式を日本語にすると

ExcelのSORTでA2:C5の社員データを、E2で指定した3列目の評価点を基準に、F2の-1で降順に並べ替え、H2:J5へスピルします。

この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。

処理の流れ

手順1〜4を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。

  1. 配列を確認する

    A2B2C2A3B3C3A4B4C4A5B5C5

    A2:C5を並べ替える元配列として使います。

  2. 並べ替えの基準を確認する

    E2

    3なので、第3列を並べ替えの基準にします。

  3. 並べ替え順を確認する

    F2

    -1なので、降順で並べ替えます。

  4. 配列を指定順に並べ替える

    H2:J5

    第3列を基準に降順で並べ替え、4行×3列の結果をH2:J5へスピルします。

対応アプリ

  • Excel
  • Google スプレッドシート

関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。

この例の注意点

  • この操作例はExcelのSORT構文を使います。sort_indexは配列内で何番目の行または列を並べ替え基準にするか指定します。
  • Excelではsort_orderは1で昇順、-1で降順です。
  • この例では社員データを評価点の降順に並べます。
  • Google スプレッドシートでは、3番目の引数で「昇順にするかどうか」をTRUE/FALSEで指定します。TRUEなら昇順、FALSEなら降順です。3列目を降順にする場合は=SORT(A2:C5,3,FALSE)となります。

一般構文

対応:Excel / Google スプレッドシート ・ 構文:構文差あり

  • Sheetsのsort_columnとis_ascendingには[]がありません。
  • Sheetsでは並べ替え列と昇順指定を組で追加できます。
  • Excelのby_colに相当する引数はSheetsにはありません。
  • Excelのsort_orderは1/-1、Sheetsのis_ascendingはTRUE/FALSEで指定します。
  • 並べ替えでは、数値・文字列・真偽値・エラー値・空白が混在する場合の順序や、全角・半角を含む文字列の扱いがExcelとGoogle スプレッドシートで異なるケースがあります。
  • 引数エラーが競合するケースでは、Excelが#DIV/0!を返す一方、Google スプレッドシートが#N/Aを返すなど、返されるエラーが異なる場合があります。

Excel

=SORT(array, [sort_index], [sort_order], [by_col])

[] は省略できる引数です。

省略時

sort_index
→ 1省略すると、先頭の列または行を並べ替えの基準にします。
sort_order
→ 1省略すると、昇順に並べます。
by_col
→ FALSE省略すると、行を並べ替えます。

Google スプレッドシート

=SORT(range, sort_column, is_ascending, [sort_column2, is_ascending2], ...)
公式資料・確認範囲

実機確認

  • Excel 2021 / Google スプレッドシート計算結果・入力の扱い・エラーを確認済み

未確認

配列展開

次に学ぶ関数

カテゴリから探す

次に学ぶおすすめ関数はありません。カテゴリから探しましょう。

カテゴリを見る