SORTBY函數根據在對應範圍或陣列中的值來排序範圍或陣列的內容。
在此範例中,我們將按照人員的年齡,以遞增順序來排序他們的名稱清單。
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…)
引數 |
說明 |
---|---|
array 必要 |
要排序的陣列或範圍 |
by_array1 必要 |
陣列或範圍的排序依據 |
[sort_order1] 選用 |
要用於排序的順序。 1 表示遞增,而 -1 表示遞減。 預設值為遞增。 |
[by_array2] 選用 |
陣列或範圍的排序依據 |
[sort_order2] 選用 |
要用於排序的順序。 1 表示遞增,而 -1 表示遞減。 預設值為遞增。 |
附註:
-
您可以將陣列想成是一列的值、一欄的值,或是一列值以及一欄值的組合。 在上例中,用於我們的 SORTBY 公式的陣列是源自於範圍 D2:E9。
-
SORTBY 函數將傳回一個陣列,如果其為公式的最終結果則將溢出。 這表示,當您按 ENTER 時,Excel 將動態建立適當大小的陣列範圍。 如果支援資料是在 Excel 表格,而您使用了結構化參照,則您從陣列範圍新增或移除資料時,陣列會自動調整大小。 如需詳細資料,請參閱溢出陣列行為 (機器翻譯)。
-
Excel 對活頁簿之間的動態陣列提供有限支援,只有同時開啟活頁簿時才支援這種情況。 如果您關閉來源活頁簿,當您重新整理時,任何連結的動態陣列公式均會傳回 #REF! 錯誤 。
範例
將表格先按照地區以遞增順序來排序,然後按照每個人的年齡以遞減順序來排序。
使用 SORTBY 搭配 RANDARRAY 和 COUNTA 以任意排列值的清單。 在此例中,E2# 是指從 E2 儲存格開始的動態陣列範圍,是使用 =SEQUENCE(10) 產生。 # 符號稱為溢出範圍運算子。
使用 SORTBY 按照高溫來排序溫度和雨量值的表格。
錯誤條件
-
by_array 引數必須為一列高或一欄寬。
-
所有引數必須為相同大小。
-
如果排列順序引數不是 -1 或 1,公式將導致 #VALUE! 錯誤。 如果您省略排序次序引數,Excel 會預設為遞增順序。
需要更多協助嗎?
您可以隨時詢問 Excel 技術社群中的專家,或在社群中取得支援。