Excel合并單元格将相同内容合并居中顯示,從而使表格更加簡單直觀,但也帶來一些麻煩,其中之一就是存在合并單元格的表格無法正常升降序。
如下圖所示,如何實現組内的排序,将成績由小到大排列。
如果我們直接篩選排序的話,Excel會報錯,提示【若要執行此操作,所有合并單元格需大小相同】,直接篩選方法行不通。
如果僅篩選後兩列(不篩選合并列),雖然可以正常升降序,但是會導緻數據錯位,此方法也不可取。
那麼如何快速實現合并單元格小組内的排序?
組内排序實現的方法需要借助輔助列。
第一步,D2單元格内輸入公式,并填充(注意其中的相對引用與絕對引用):
=counta($A$2:A2)*10^4 C2
第二步,選中後三列(除了合并單元格列,其它列都要選中),點擊【篩選】—【升序】,搞定!
如果要組内降序,公式修改成:
= -COUNTA($A$2:A2)*10^4 C2
前面加個“-”負号即可。
原理講解首先要知道2個知識點:
1、counta是非空單元格計數函數;
2、合并單元格的内容其實是存放于最上方的單元格,其它單元格為空。
明白了以上兩點,我們來看公式,D2:D4公式計算A2:A4非空單元格個數,由于A2:A4是個合并的單元格,其内容實際存放于A2單元格,所以D2:D4皆返回數字1;
同理D5:D7皆返回數字2;D8:D10皆返回數字3.....
這樣所有合并單元格(小組)的數字是一樣的。
接着我們再來理解為啥要乘以10的4次方(10000)?
要知道我們做的一切并沒有修改Excel升降序的邏輯,最後一步升序的時候,Excel也是将D列的數字從小到大排列。
之所以要乘以10的4次方,是為了讓三組之前的成績差異擴大化!
下面的輔助列數據可以發現,A組與B組之間的數據相差了1萬,B組與C組的數據相差了1萬;
也就是說,無論如何升序,A組的數據不會跑到B組下面(因為沒人家大)、B組的數據不會跑到C組下面,從而保證了各小組的排名隻會在組内進行變動。
這樣,即使最後一步升序的時候不帶上A列(合并單元格列),其對應的姓名、成績也不會發生錯位。
下圖是沒乘10的4次方結果,如果升序出的話,數字130/132肯定會排列到底部C組,導緻姓名、組别對應錯誤。
PS:如果數據本身比較大,比如成績都是10W以上的數字,那麼這裡乘以10的4次方區分度就不夠了,至少要乘以10的6次方。
相似場景Excel中,很多場景也需要借助輔助列去完成,比如數據透視表的篩選。
我們知道,在數據透視表中是無法實現篩選功能的,如下圖中,在透視表狀态下,數據視圖中的篩選按鈕處于灰色狀态,無法進行篩選。
那麼如何實現透視表的篩選?
同樣的是借助輔助列,鼠标點擊 透視表 表頭行 右側的 空白單元格,就可以使用篩選功能。
本篇文字有點多哈,看着可能枯燥了些,主要是将原理解釋了下,這樣有助于大家理解公式,理解的基礎上進行記憶,下次才能快速使用。
以上就是今天的分享,希望對你有所幫助,覺得有用的話,記得點個贊 關注喲。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!