excelperfect
標(biāo)簽:Excel函數(shù),SORT函數(shù),SORTBY函數(shù)
SORT函數(shù)和SORTBY函數(shù)聽起來很相似,它們都是Excel的動態(tài)數(shù)組函數(shù),用來排序數(shù)據(jù),然而它們有什么不同呢?
SORT函數(shù)按一個條件對整個數(shù)據(jù)集排序
SORT函數(shù)的語法如下:
SORT(array,[sort_index],[sort_order],[by_col])
其中,參數(shù)array必需,想要排序的單元格區(qū)域或數(shù)組;參數(shù)sort_index可選,用來指示排序依據(jù)的行或列的數(shù)字;參數(shù)sort_order可選,指示想要排序順序的數(shù),1代表升序(默認(rèn)),-1代表降序;參數(shù)by_col可選,指示想要排序方向的邏輯值,FALSE代表按行排序(默認(rèn)),TRUE代表按列排序。
圖1
由于SORT函數(shù)和SORTBY函數(shù)返回表中的數(shù)據(jù),但不會返回相應(yīng)的列標(biāo)簽,因此首先使用下面的公式輸入第一行:
=表1[#標(biāo)題]
如果我們要以分?jǐn)?shù)列由高到低降序排列,則可以使用公式:
=SORT(表1,MATCH('分?jǐn)?shù)',表1[#標(biāo)題],0),-1)
圖2
SORT函數(shù)將總是按數(shù)據(jù)區(qū)域中的列/行之一對數(shù)據(jù)區(qū)域進行排序。
SORTBY函數(shù)按另一個數(shù)組排序
SORTBY函數(shù)更加動態(tài),更易于使用。SORTBY函數(shù)的語法如下:
SORTBY(array,by_array1,[sort_order1],[by_array2,sort_order2],…)
其中,參數(shù)array必需,想要排序的數(shù)組或單元格區(qū)域;參數(shù)by_array1必需,要排序的數(shù)組或單元格區(qū)域;參數(shù)sort_order1可選,用于排序的順序,1代表升序,-1代表降序,默認(rèn)升序;參數(shù)by_array2可選,要排序的數(shù)組或單元格區(qū)域;參數(shù)sort_order2可選,用于排序的順序,1代表升序,-1代表降序,默認(rèn)升序。
下面使用SORTBY函數(shù)對表1中的分?jǐn)?shù)列按降序排列,公式如下:
=SORTBY(表1,表1[分?jǐn)?shù)],-1)
圖3
可以看到,結(jié)果與上文中使用的SORT函數(shù)得到的結(jié)果相同。
按多個條件排序
SORTBY函數(shù)可以根據(jù)多個條件對數(shù)據(jù)進行排序,也可以分別選擇是升序還是降序。例如,對表1不僅按分?jǐn)?shù)降序排列數(shù)據(jù),還按性別升序排列數(shù)據(jù):
=SORTBY(表1,表1[分?jǐn)?shù)],-1,表1[性別],1)
按另一列排序而無需顯示這些列
SORTBY函數(shù)真正有趣的地方是,可以使用它按另一個區(qū)域?qū)σ粋€區(qū)域進行排序,甚至不包括這個排序區(qū)域。假設(shè)我們只想要上圖1所示表1的名字按分?jǐn)?shù)和性別排序名單列表,但不要顯示性別和分?jǐn)?shù),可以使用公式:
=SORTBY(表1[姓名],表1[分?jǐn)?shù)],-1,表1[性別],1)
圖4
小結(jié)
SORT函數(shù)通過一個且僅一個索引編號對數(shù)據(jù)集進行排序,而SORTBY函數(shù)允許按多個條件進行排序,且無需結(jié)果中顯示這些條件列。
注:本文學(xué)習(xí)自stringfestanalytics.com。
聯(lián)系客服