好久不見。
最近一直在處理數據,偶然之下,我發現了一種不尋常的多條件排序方法,當然這不屬于官方直接提供的功能,而這種方法操作起來不難,隻是一開始可能會不太習慣,不過習慣後,操作可以比官方功能更快捷,而且可以輕松應用到移動端 APP 的使用。
目前微軟、WPS 或 Apple 的移動端表格處理 APP 均沒有實現多條件排序的功能,有的隻是簡單的對單條件排序,而這個方法在這三方均是可以實現的,這将是一個很好的輔助手段。
①自定義排序
Excel 中,要根據多個條件進行排序,用自帶的【自定義排序】功能就可以實現了。
以 Excel 2016 為例,先鼠标點擊表格内一非空單元格,通過 開始》排序和篩選》自定義排序,打開【排序】對話框,選擇好相應的條件,也就是列關鍵字,并調整好排序依據和次序,即可進行排序。
用這種操作的習慣一般是,先選好主要條件(即主要關鍵字),再選擇次要條件(即次要關鍵字)。
多條件排序是處理數據中很常見的一個操作,很多時候都會用得上。如上操作并沒有什麼問題,隻是接下來的方法,恐怕要刷新你的認知了。
②兩次單列排序
在過去一個來月的日子裡,我每天都要處理數據,每天的數據不算特别多,數據的框架也基本不變,隻是每天會有新的數據出現。
在我習慣了前期的處理手法後,我開始探求更便捷的操作,偶然之下,就讓我注意到,實現多條件排序的一個另類的方法——
分别根據兩個條件列數據進行排序
這樣疊加在一起的效果就是多條件排序了。
哈哈,你沒看錯,就是通過普通的單條件排序,來實現多條件排序的結果。
這真的能實現嗎?
嗯,沒錯,經測試,确實可以。
下面,我來進行說明吧。
1. 對次要條件列進行排序
這個方法的第一步就是:
先對次要條件列數據進行排序
(在我處理數據的時候,恰好是要先獨立對次要條件列進行排序,于是我就發現了這個小技巧)
先對次要條件排序,這與自定義排序的習慣不一樣,這就是一開始不習慣的地方,但有意識地去适應,你就會發現這是一種方便、炫酷(zhuang bi)的操作了。
2. 對主要條件列進行排序
第二步就是:
對主要條件列的數據進行排序
第二步也是簡單的單列排序,但就是這樣簡單的操作造就了按多列排序的效果。
當然這是基于隻有兩個條件的情況而言,如果有更多的條件,那就對第一步的最次要條件的上一位條件列數據進行排序,一直到最後,才對主要條件列進行排序。
所以,這個方法排序操作的順序是:
先次要,再主要
先次要,再主要
先次要,再主要
說三次大概能加深你的印象了。
這其實就是這個方法的關鍵了。
那麼為什麼是這樣的操作呢?
接下來進行解釋。
(能看懂也行,看不懂就照做)
首先,經過第一步,次要條件的一列已經排好序了,這點都可以理解吧;
接着,第二步僅對主要條件一列進行排序,那麼 結果一定首先傾向于主要條件(從普通的單列排序角度去看就好),保證主要條件列是不會錯的;
最後,次要條件列,雖然由于主要條件列的重新排序,而導緻變亂序了,但 主要條件相同值對應的次要條件列的數據,則還是會按照先前的順序進行排列的,而不會使之也亂序。
這樣分析的話,就相當于實現了多條件排序的效果了。
看到這裡,你可能有點懵逼,可能沒看懂,特别是最後一點。不用怕,後面我會舉例子說明的。
不過,這裡,我還得為看懂的小夥伴做進一步的解釋。
憑什麼我會認為:
主要條件相同值對應的次要條件列的數據不會重新排序,而是一定按照先前的順序排列着呢?
其實一開始我隻是猜想,隻是一味地這樣認為,經測試卻發現符合猜想,而且接下來我每天繼續處理的數據都沒有出現問題,基本可以認為這種做法是可行的。
當然測試是無法窮盡所有可能的,而我個人認為是沒有問題的,所以同意這一做法的,盡管可以去操作。
那麼為什麼會這麼想呢?
很簡單,基于算法的優越性。
我曾經對編程有點接觸,排序的算法是一個很基礎的内容,排序就是一個又一個數值位置的交換,直到最後排好序,而可以實現排序的算法很多。實際上,一般,計算機運算步驟越少,計算越快,人們追求的當然是日益高效,而不是冗餘的步驟。
回到上面說到的,對于已經根據次要條件排好序的數據,對應的主要條件的值相同的部分,根本可以不必交換順序了,這樣做已經是多餘的步驟了。
一個優秀的算法,應該還是要避免這樣的情況發生的,這一點點操作對現在強大的計算機而言似乎沒什麼影響,但當處理的數據足夠多,影響就會變得顯著。
雖然我是想這麼說的,但是,這其實還得看具體的算法是什麼,有的算法确實可能會發生看上去不必要的位置互換的情況,但不一定就是低效。而事實上,我無法得知 Excel 裡具體用的什麼算法。
恰巧的是,經過了測試,發現我的想法是可實行的。
說了那麼多,歸根到底就是:
基于少許的經驗,對存在的可能性,進行了嘗試,爾後,确認了可能性。
③輔助小技巧
方法是有了,但要讓這個方法達到更高的效率,需要再利用Excel的一個小技巧——【把常用命令添加到快速訪問工具欄】。
這個操作非常簡單,而且一勞永逸,添加後,某些命令可以更快捷地使用。
這裡我需要把【升序】和【降序】這兩個命令添加進去。點開【排序和篩選】,分别右鍵點擊【升序】和【降序】,選擇【添加到快速訪問工具欄】即可。這樣就可以在工具欄看到相應的圖标了。
舉個例子
如下作一簡單的例子。
數據:一列是水果名,包括蘋果、香蕉、橙子、水蜜桃、西瓜、柚子,部分水果有多次數據;一列是相應水果的數量。
排序:以水果名為主要關鍵字,數量列為次要關鍵字,進行多條件排序,均按升序排序。
表格:左側表格是利用兩次單列排序方法測試數據,右側表格是利用Excel自帶的【自定義排序】功能進行排序的的結果。
随機數列:用于生成随機數的序列,其作用是打亂左側表格;每次通過排序打亂後,由于随機數會重新生成,所以可以多次打亂。
匹配結果:,當【自定義排序】與【兩次單列排序】同一行水果名及數量完全一緻時,顯示為【√】,其他情況顯示為【×】。
操作:
① 打亂左側表格
鼠标定位到随機數列任一随機數上,點擊快速工具欄上的升序按鈕進行快速排序。
(一個小技巧:鼠标不要直接選擇整列數據,不然會彈出【排序提醒】對話框,這樣就慢了,如下)
② 兩次單列排序
先後對【數量】列和【水果】列進行升序排序,操作如上。
(整個測試過程)
可見,兩種操作獲取的結果是一緻的,多次嘗試也無異常。
不考慮随機數打亂順序,僅【四次點擊】,就完成了排序,有沒有酷酷的感覺呢?以此類推,多一列條件,就多兩次點擊,這要比自定義排序節省一點操作。
在【WPS office】上同樣可以用這種方法,但是 WPS 目前的快速訪問工具欄還不允許添加升序或降序命令,所以提速不明顯。
不過,在移動端,不管是 Microsoft Excel,還是 WPS Office,或是蘋果的 Numbers,經測試,這都是一個可應用的方法。所以,以後,即便隻有手機,也能做到更多的事情。
附:這裡有個注意的地方,如果手機設置語言為英文,那麼 Excel 排序的時候,會出現奇怪的結果。想要恢複正常,需要把語言調回中文。
⑤
總結
小斌感謝您的閱讀
希望本文對您有所幫助
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!