平淡
對已經完成所有數據錄入的文檔,我們可以借助Excel的“查找和替換”功能方便地將同一類型的數據查找出來,然后再將它們歸類排序即可。選中A2:A10區域,依次點擊“開始→查找和替換”,在“查找內容”處輸入“村”,點擊“選項”按鈕,在“搜索”處選擇“按列”,接著點擊“查找全部”,然后按下“Ctrl+A”組合鍵全選下方窗格中的搜索結果(圖2)。
這時在A2:A10區域就會自動選中所有帶“村”的數據,右擊任意一個數據并選擇“復制”,然后將其粘貼到B列。操作同上,繼續搜索“街道”、“居委會”,并將找到的數據依次粘貼到B列即可(圖3)。
如果原始文檔中還需要不斷錄入新的數據,那么每次錄入后都要重復執行上述的操作,非常麻煩。對于這類數據,我們可以借助函數對數據進行自動歸類排序。
定位到C2單元格,輸入公式“=IF(LEN(A2)<>LEN(SUBSTITUTE(A 2,"村","")),A 2,"")”并下拉填充公式。接著在D2和E2單元格中分別輸入公式“=IF(LEN(A2)<>LEN(SUBSTITUTE(A2,"街道","")),A2,"")”、“=IF(LEN(A 2)<>LEN(SUBSTITUTE(A 2,"居委會","")),A 2,"")”,同上下拉填充公式。這時A列中的村、街道、居委會就會自動提取到C、D、E列,由于這里通過公式進行篩選,因此當我們在A列中輸入新的數據后會自動填充到對應的列中(圖4)。


這里先使用SUBSTITUTE函數將A2單元格中對包含“村”的字符替換為空,然后使用LEN函數對替換后的字符進行計數,再和A2單元格中的字符數進行比較。最后使用IF函數進行判斷,如果替換前后的字符數不相等,那么就顯示A2單元格中的數值,否則顯示為空值。比如A4單元格中的內容是“君竹村”,替換“村”后“=LEN(SUB STITUTE(A4,"村",""))”為2,“=LEN(A4)”為3,所以在C4單元格中就顯示“君竹村”。而A2單元格中的數據因為不包含“村”,所以顯示為空,這樣在C列就會自動填充所有包含“村”的數據。其他公式的解釋類似,不再贅述。
在A列中輸入完所有的數據后(假設截止到A12單元格),選中A1:E12區域,依次點擊“數據→排序”,在打開的窗口中勾選“數據包合標題”,接著按照圖5所示依次添加排序條件,“主要關鍵字”選擇“村”,“次要關鍵字”選擇“街道”和“居委會”,“次序”選擇“降序”(圖5)。
最后點擊“確定”按鈕,這時A列中的數據就會按照村、街道、居委會進行排序,同時對應的數據也會分列在C、D、E列中(圖6)。
如果需要排序的工作表較多,那么利用VBA腳本是更快捷的方法。打開任意一個需要排序的工作表,依次點擊“開發工具→宏→錄制宏”,然后執行下述的操作錄制一個新宏:
選中A列,右擊并選擇“插入”,插入一個新列。在A1單元格中輸入“輔助列”,在A2單元格中輸入公式“=Right(B2,1)”(表示使用Right函數提取“名稱”中最右側的字符,排序時以該字符作為主要關鍵字),下拉填充公式到A12單元格。選中A1:B12區域,依次點擊“數據→排序”,在打開的窗口中勾選“數據包含標題”,接著按照圖7所示依次添加排序條件,“主要關鍵字”和“次要關鍵字”分別選擇“輔助列”和“名稱”,“次序”選擇“升序”(圖7)。
然后點擊“確定”按鈕并停止宏的錄制。之后打開宏代碼窗口即可看到剛剛錄制的宏。在該窗口中依次點擊“編輯→替換”,將原代碼中的“ActiveWorkbook.Worksheets("Sheet1")”替換為“ActiveSheet”,這樣我們只要在其他的工作表中運行該宏即可快速完成排序(圖8)。