工作中接到一個咨詢,說領導要他将下面的數據按在學曆高低排序的同時,再結合績效降序排序,關于這個問題,思考的邏輯就是排序的問題,排序中的自定義排序的問題。
這個問題的産生原因,中文在排序方面特殊性。電腦并不知道該怎麼排序。
如:一班、二班、三班、周日、周一等
要解決上面的問題有多種方法:
方法1:創建自定義排序,按本科、專科、高中、初中這樣的順序排序;
方法2:創建一列輔助列,強制編号1、2、3, 然後用VLOOKUP引用過去,再排序
……
今天古老師分享的是用SORTBY來解決這個問題,還是老方法:
分别從:函數參數、注意事項、函數安全這三大方向着手
函數定義: 函數基于相應範圍或數組中的值對範圍或數組的内容進行排序
白話說明: 就是用公式創建一個新的數據區域,按用戶指定條件,多條件排序
使用格式: SORTBY (array, by_array1, [sort_order1], [by_array2], [sort_order2],...)
對應版本: OFFICE365、OFFICE2021
參數 |
參數要求 |
參數說明 |
array |
必需 |
要排序的區域或數組 |
by_array1 |
必需 |
要對其進行排序的數組或區域 |
[sort_order1] |
可選 |
一個數字,表示所需的排序順序;1 表示升序(默認值),-1 表示降序 |
[by_array2] |
可選 |
要對其進行排序的數組或區域 |
[sort_order2] |
可選 |
一個數字,表示所需的排序順序;1 表示升序(默認值),-1 表示降序 |
1.可将數組視為一行值、一列值或幾行值和幾列的組合。
2.SORTBY 函數将返回一個數組,如果該數組是公式的最終結果,則将溢出。
3.按“Enter”時,Excel 将動态創建相應大小的數組範圍
4.Excel 對工作簿之間的動态數據提供有限支持,并且僅當這兩個工作簿都處于打開狀态時才支持此方案。
5.針對8的理解就是盡量内部關聯,外部引用如果關了一個就會出錯誤,返回 #REF! 錯誤
一般用法
案例1:按不同銷售員的銷售數量降序排序
在不更改源數據的情況下,我們隻需要在新的工作表中錄入以下函數就可以實現多條件排序。
=SORTBY(B26:D36,D26:D36,1,C26:C36,-1)
案例1:排程整理
我們在排程過程中,對各類産品進行排程,當排程完後,數據有可能是如下狀态,從視覺效果來看,體驗不是很好,如果我們能夠對數據進行整理,效果就會完全不一樣
此時我們創建一個新表,錄入以下公式,返回結果如下圖:
對比圖1和圖2,可以看出在閱讀體驗效果上的差異,對于古老師的強迫症是一個非常好的一個方案;
高級用法
案例1:按學曆高低、和績效雙條件排序
下圖中的難點在于,學曆沒有辦法按高低排序;
此時我們可以創建一個臨時輔助區域,對學曆進行人工定義排序
步驟:選中學曆列→複制到新區域→删除重複項目→人工定義排序→公式合并成一列
=TEXTJOIN(,,N72:N75)
'=SORTBY(B77:E86,FIND(C77:C86,N77),1,E77:E86,-1)
思路解釋:
1、通過人工定義需要排序的數據進行強制排序
2、再通過合并需要排序的數據在一個單元格格
3、配合FIND函數找到對應源數據的位置号
4、再配合SORTBY函數進行強制排序
5、可以通過公式→求值→看每一步的運算結果;
案例2:對下面的數據進行随機分成三個組
看到上面的要求,需要随機,少不了是随機函數RAND(),此時我們隻需加上輔助列,錄入RAND函數,再通過SORTBY進行數據重建,就可以實現,然後不停的按F9就達到效果了。
'=SORTBY(B92:C100,C92:C100,1)
高階應用需要理解以下函數:
最後總結:
我是古哥:
從事制造行業18年,在企業運營、供應鍊管理、智能制造系統等方面具有豐富的實戰經驗。企業智能化,柔性化計劃運營管理專家,擅長通過企業流程優化規範,企業管理、導入計劃運營提升企業效率;對提高企業準時交貨率,降低企業庫存,輸出智能制造人才有豐富的經驗。學習PMC生産計劃,關注古哥計劃!8月特訓班2期即将開班,全方位學習計劃運營知識。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!