馬震安
有時,為了分類更明顯,我們會將相同名稱或類別的單元格放在一起,并將同一名圖的相鄰單元格合并為一個單元格。但是,合并之后,在數據排序、計算或統計的時候,就會遇到麻煩。下面我們就探討在不動合并后的單元格,不重新拆分單元格的情況下,照樣進行數據排序、計算、統計的方法。
日常教學中很多老師都用Excel工作表記錄學生的學習情況。例如,某老師就用工作表記錄了每個學生各學科作業的得A情況(圖1)。月底,老師想對每個學生各學科得A情況進行從低到高排序,以查看學生是否偏科。但是,一開始記錄時,他制作的工作表在學生姓名處進行了單元格合并,這就給排序工作帶來了一定的麻煩,普通的排序方法肯定是不行的,怎么辦呢?是將合并的單元格取消后再填充,再分別排序,然后再合并相應單元格嗎?這種方法不是不可以,但這也太費事。其實,在原有數據格式不動的情況下,通過輔助列的方法就能輕松實現對帶有合并單元格數據的子數據進行排序。
巧用輔助列
在D2單元格輸入“=COUNTA($A$2:A2)*10^4 +C2”,向下拖動填充到數據的最后單元格;然后,在標題行選擇除去姓名列的單元格(即B1:D1),點擊“篩選”,在“輔助列”字段處點擊小黑箭頭后選擇“升序”,這樣就實現了每個人各學科按得A數從低到高排序了(圖2)。
雖然,上述方法能夠解決合并單元格從低到高排序,但是如果要實現從高到低排序,用這種方法就不靈驗了。那如何解決這個問題呢?我們不妨用另外一種方法,即“輔助列+普通排序”法。
添加輔助列
將表格數據復制到一個新的表中,在新的工作表最左側添加插入一列,列字段為“序號”,選定“姓名”列數據向左拖動填充到新插入的“序號”列,在填充選項中選擇“僅填充格式”,在“序號”列依次輸入1、2并選定它們,拖動填充到下面的單元格中(圖3)。
取消合并單元格
選定“序號”列和“姓名”列,點擊“合并后并居中”按鈕來取消單元格的合并;接下來,點擊“查找和選擇”按鈕下的“定位條件”,在彈出窗口選擇“空值”,確定后在公式編輯欄輸入“=A2”,并同時按下Ctrl和Enter鍵,對空白單元格進行填充(圖4)。
普通排序巧利用
選擇所有數據進行復制,并在原有區域進行選擇性粘貼,選擇“值”;選擇“姓名”字段名,點擊“自定義排序”,主要關鍵字選擇“姓名”,點擊“添加條件”,次要關鍵字選擇“得A數”,次序選擇“降序”,點擊“確定”;再選定“序號”字段名,點擊“升序”,這樣就實現了按姓名分類、按得A數從高到低的排序(圖5)。
最后,就該還原表格原來的格式了。刪除“序號”列,切換到原表,選擇姓名這列的數據,點擊“格式刷”,將新表中的“姓名”這列刷成與原表中一樣的格式(圖6)。
擴展應用
有時需要對有合并單元格的子數據進行排名,如按“得A數”對每個學生的各科進行排名,其做法也是先將合并單元格取消后進行相應的填充,然后在排名列輸入“=SUMPRODUCT(($A$2:$A$19=A2)*($C$2:$C$19>C2))+1”,并向下填充到最后的數據單元格,這樣就完成了分類排名。同樣,再利用格式刷將新表刷成原表的樣式(圖7)。
此外,使用SUMPRODUCT函數可以進行多條件排名,其語法為“=SUMPRODUCT((條件1)*(條件2)*(條件3)* …(條件n))”,作用就是統計同時滿足條件1、條件2到條件n的記錄的個數。
其實,帶有合并單元格的數據表,實際上是以被合并的列作為分類,在這樣的數據表中排序、匯總統計實際上就是進行多條件的排序、匯總統計。在日常辦公中除了上述的SUMPRODUCT函數能進行多條件統計外,在Excel 2016中還新增了SUMIFS、AVERAGEIFS、COUNTIFS等函數,這些函數也都能進行多條件的統計。