以前工作,需要排序的時候,我們只能手動的去進行操作排序,但是當我們左邊數據更新之後,我們又得手動的操作一次排序。針對這一痛點,Excel出來了一個排序新公式sortby,當我們設定好條件之後,左邊數據變化,排序的結果也能隨之變化。
我們來看看實際案例:
前兩天的文章我們分享了兩個牛叉的數組公式,其中一個數組公式:
{=INDEX($A$2:$A$9,MATCH(LARGE($B$2:$B$9+0.1*ROW($B$2:$B$9),ROW()-1),$B$2:$B$9+0.1*ROW($B$2:$B$9),0))}
其主要實現了按B列降序對A列的重新排序。
公式可謂是又臭又長,很多小夥伴看了直呼頭疼,公式原理詳見之前的文章【哇,這是我見過最牛的數組公式,沒有之一】
如果你的OFFICE版本是2021或365,那麼這個問題就簡單多了。
單元格直接輸入公式:
=SORT(A2:B9,2,-1)
是的,沒錯,就是這麼簡單。
SORT函數語法
SORT函數一共有4個參數:
- 參數1:需要排序的範圍或者數組;
- 參數2:按第幾列排序,可省略,默認按第一列排序;
- 參數3:升序還是降序排序,1是升序,2是降序,可省略,默認按升序排序;
- 參數4:按行或列排序,True是按行,False按列,可省略,默認按列。
上例中,參數一排序範圍是A-B列,參數二按銷量排序(位於第二列,所以輸入2),參數三降序排序,所以輸入-1。SORT篩選排序
結合FILTER函數可以輕鬆篩選排序TOP數據。
比如下面篩選銷量TOP3小組,並按銷量降序排序,直接輸入公式:
=SORT(FILTER(A2:B9,B2:B9>LARGE(B2:B9,4)),2,-1)
SORT多欄位升降排序
下圖中,我們需要根據兩個欄位排序,首先按A列“品類”升序,其次按C列銷量“降序”
這裡涉及到多列排序,公式可以這樣輸入:
=SORT(A2:C10,{1,3},{1,-1})
說完SORT函數,我們再來了解下SORTBY函數。
SORTBY與SORT函數功能基本一致,只不過語法略有出入。
SORTBY函數語法
語法:=SORTBY(數據源,排序列1,升序or降序,排序列2,升序or降序……)
其中排序列可指定多個列,最多可以指定126個;函數最少輸入2個參數。
SORTBY單列排序
還是按照銷量對小組降序排序,SORTBY函數與SORT函數公式略有不同:
=SORTBY(A2:B9,B2:B9,-1)
可以發現的是,兩者的差異在於參數二:
SORTBY參數二是單元格區域、SORT參數二是數字。
SORTBY多列排序
SORTBY排序依據列可多次輸入,最多輸入126列,下圖中先是根據“品類”升序、再是根據“銷量”降序,公式為:
=SORTBY(A2:C10,A2:A10,1,C2:C10,-1)
與SORT函數的寫法略有不同,不過實現的功能是一樣的。
SORTBY自定義排序
相信大家都遇到過這種情況,在對月份升序排序的時候會出現10-12月排在最上方的情況:
這是由於Excel排序是按位排序,10-12月份第二位為數字“012”,要小於1-9月的第二位“月”字,所以排到了最前方。
這裡我們利用SORTBY函數糾正這個BUG。
輸入以下公式:
=SORTBY(A2:A13,FIND(A2:A13,"1月2月3月4月5月6月7月8月9月10月11月12月"))
FIND函數查找每個月份在字元串中的位置,並返回一個數字列表,SORTBY參數3省略,默認升序排序,實現月份的正確排序。
關於這個函數公式,你學會了么?動手試試吧!
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291294.html