SORT 函數是 Excel 的動態陣列函數,能夠根據指定的欄位或列,自動將資料範圍按遞增或遞減順序重新排列。公式結果會自動溢出至相鄰的空白儲存格,不需要手動拖曳複製。
Excel SORT 函數語法
=SORT(陣列, [排序索引], [排序順序], [依欄排序])| 參數 | 必填 | 說明 |
|---|---|---|
| 陣列 | 是 | 要進行排序的儲存格範圍或陣列。 |
| 排序索引 | 選填 | 指定要作為排序基準的欄數或列數。預設值為 1(第一欄或第一列)。 |
| 排序順序 | 選填 | 設定排序的方式。1 代表遞增排序(預設值),-1 代表遞減排序。 |
| 依欄排序 | 選填 | 設定排序的方向。FALSE 代表依列排序(上下排序,預設值),TRUE 代表依欄排序(左右排序)。 |
回傳:重新排序後的陣列資料。
適用版本:Microsoft 365、Excel 2021 以上版本支援。
SORT 函數範例
範例 1:基本遞增排序
將業務員的業績資料由低到高進行排序。
| 姓名 | 業績 |
|---|---|
| 王小明 | 500 |
| 陳怡君 | 800 |
| 林志明 | 300 |
| 張雅婷 | 600 |
在 D2 輸入公式:
=SORT(A2:B5, 2, 1)結果:林志明。針對 A2:B5 範圍,以第 2 欄(業績)為基準,使用遞增順序(1)進行排序。公式結果會自動溢出,D2 顯示業績最低的姓名。
範例 2:指定欄位遞減排序
將學生的考試成績由高到低進行排序。
| 姓名 | 成績 |
|---|---|
| 王小明 | 85 |
| 陳怡君 | 92 |
| 林志明 | 78 |
| 張雅婷 | 95 |
在 D2 輸入公式:
=SORT(A2:B5, 2, -1)結果:張雅婷。針對 A2:B5 範圍,以第 2 欄(成績)為基準,設定為遞減順序(-1)進行排序。D2 會顯示成績最高的姓名,其餘資料向下溢出。
範例 3:水平方向(依欄)排序
將各月份的營收資料依照金額由高到低進行水平排序。
| 項目 | 1月 | 2月 | 3月 |
|---|---|---|---|
| 營收 | 5000 | 3000 | 8000 |
在 B4 輸入公式:
=SORT(B1:D2, 2, -1, TRUE)結果:3月。針對 B1:D2 範圍,以第 2 列(營收)為基準進行遞減排序,並將第四個參數設為 TRUE 以執行水平排序。B4 會顯示營收最高的月份。
使用 SORT 的技巧與注意事項
- SORT 函數只需在左上角的第一個儲存格輸入公式即可,系統會自動計算並將結果填滿所需的儲存格範圍。
- 原始資料的格式(如儲存格顏色、框線)不會隨著 SORT 函數帶到新的範圍,只會回傳值與部分數值格式。
- 若需要同時依照多個條件進行排序(例如先依部門排序,再依業績排序),無法單靠 SORT 完成,需改用 SORTBY 函數。
SORT 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #SPILL! | 公式預期展開(溢出)的範圍內已經有其他資料、空白字元或合併儲存格,導致無法填入完整的排序結果。 | 清除阻擋公式展開範圍內的所有內容或取消合併儲存格,讓系統有足夠的空白空間顯示結果。 |
| #VALUE! | 「排序索引」參數輸入的數字超出了陣列的實際欄數或列數。例如陣列只有 2 欄,卻輸入 3。 | 檢查並修正第二個參數,確保該數字小於或等於選定範圍的總欄數或總列數。 |
Google 試算表可以用 SORT 嗎?
Google 試算表支援 SORT 函數,但參數邏輯與 Excel 完全不同。Google 試算表的語法為 SORT(範圍, 排序列, 遞增遞減, [排序列2, 遞增遞減2...]),可直接支援多條件排序。
下載 SORT 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:SORT 範例.xlsx(範例公式的結果經過兩個模型交叉核對)。
常見問題
為什麼公式輸入後出現 #SPILL! 錯誤?
這是因為 SORT 函數需要將結果填入相鄰的空白儲存格中。如果目標範圍內已經有其他資料或合併儲存格,就會阻擋公式展開。將該範圍的內容清除即可恢復正常。
可以同時依照兩個以上的欄位進行排序嗎?
Excel 的 SORT 函數只能指定單一欄位或列的索引。若需要多條件排序,請改用 SORTBY 函數,它允許設定多組排序基準與順序。
排序後的資料可以手動修改嗎?
不能直接修改溢出範圍內的單一儲存格。因為整個結果是由左上角的第一個公式產生的,若嘗試修改其他儲存格,會導致陣列中斷並顯示 #SPILL! 錯誤。
相關函數
這篇收錄在「Excel 函數字典」。



