說明
使用此函數以升序或降序方式,依一列或多列對範圍或陣列進行動態排序。
語法
SORT(array, [sort_column1], [sort_order1], [sort_order2], [sort_order3])
輸入
此函式接受下列參數:
| 名稱 | 必要 | 說明 | 有效輸入 |
|---|---|---|---|
陣列 |
是 | 要排序的範圍或陣列。 | 一個儲存格、一個單元格範圍或一個公式,其結果為其中之一。 |
[sort_column1] 欄號。 |
否 | 要排序方式的資料欄編號。第一欄 (A) 為 1。 | 一個正整數,代表要排序的資料欄,或是一個結果為正整數的公式。 |
[sort_order1] |
否 | 指定資料欄的排序方式。預設為 1 (以升序方式排序)。 | 值為 1 (升序) 或 -1 (降序) 的正整數,或結果為其中之一的公式。 |
[by_column] |
否 | 如果要以資料欄的方式排序。預設為 FALSE (依行垂直排序資料)。 | TRUE 或 1 = 依資料欄排序方式。FALSE 或 0 = 按行排序方式,或結果為其中之一的公式。 |
範例
範例資料
| A | B | C | 暗示性的對話 (D) | E | |
|---|---|---|---|---|---|
| 1 | 名稱 | 姓氏 | 年齡 | 城市 | 薪資 |
| 2 | 約翰 | 史密斯 | 35 | 費城 | 75000 |
| 3 | 愛麗絲 | 強生 | 28 | 芝加哥 | 65000 |
| 4 | 鮑勃 | 洛杉磯 | 42 | 洛杉磯 | 85000 |
| 5 | 哈利 | 哈里森 | 33 | 芝加哥 | 70000 |
| 6 | 愛麗絲 | 克拉姆登 | 39 | 布魯克林 | 72000 |
公式範例
| 使用案例 | 公式 | 結果 | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 以升序方式依特定資料欄排序資料集。 | =sort(a2:e6, 3, 1) |
此公式將整個資料集依年齡以升序排序。對於此資料集,它會返回以下內容:
|
|||||||||||||||||||||||||
| 按特定欄以升序排列資料集,同時保留原始的行關係。 | =sort(a2:e6, 4, 1, 0) |
此公式按 City 欄(第 4 欄)以升序排列整個範圍,同時保留原始的行關係。 對於此資料集,它會返回以下內容:
|
|||||||||||||||||||||||||
| 選取儲存格的子集,然後將結果以另一列資料的方式排序。 | =sort(filter(a2:e6, c2:c630), 5, -1) |
此公式使用FILTER 篩選條件,選取 30 歲以上的員工 (
|
|||||||||||||||||||||||||
| 產生一個沒有重複名稱的世代清單。 | =sort(unique(a2:a6), 1, 1) |
此公式使用UNIQUE 建立一個名稱清單,使每個名稱在清單中只出現一次,然後按字母順序排序。對於此資料集,它會返回以下內容:
|
|||||||||||||||||||||||||
| 尋找資料設定中最年長者的名稱。 | =take(sort(a2:b6, 2, -1), 1, 1) |
此公式首先將資料依年齡由大到小排序,因此年紀最大的人 (Bob, 42 歲) 會先出現。TAKE ,然後返回第一行的 Name 值。對於此資料集,它會返回以下內容:
|
附註
SORT:排序方式:
- 能以指定順序的多列資料欄排序方式。
- 適用於靜態範圍和動態陣列。
- 支援升序和降序排序方式。
提示
- 如果您有標題行,如果您不想包含標題,請從下一行開始陣列值(例如,在上面的資料集中,從 A2 而不是 A1 開始)。
- SORT 可與其他函數合併/組合,包括: FILTER:
相關功能
以下是 Workiva 電子試算表支援的其他陣列公式函數。