王志軍



最近在工作中遇到一個比較尷尬的問題,如圖1所示,這里的樣例數據是某品牌的商品在不同區域的銷售記錄,但數據很不規范,各個工作表中各列的分布順序并不相同,甚至某些列的數據與其他工作表完全不同,該如何完成匯總操作呢?由于實際的源數據非常大,而且時常會進行更新,手工匯總并不合適。
這里以Excel 2019版本為例,介紹動態合并的操作步驟:
第1步:新建匯總表
新建一個工作表,重命名為“匯總表”,當然也可以取其他的名稱。
第2步:加載數據
選擇任意一個數據單元格,切換到“數據”選項卡,在“獲取和轉換數據”功能組中依次選擇“獲取數據→來自文件→從工作簿”,建立連接之后會打開“導航器”窗口,單擊左側的工作簿名稱,然后點擊右下角的“轉換數據”按鈕,將數據加載到數據查詢編輯器,此時可以看到如圖2所示的編輯器界面。
需要提醒的是,原來的樣例工作簿只有3個數據表和1個新創建的匯總表,但這里會增加幾個名稱怪異的工作表名稱,這是由于在Excel執行了篩選、插入超級表或設置打印區域的原因。
第3步:篩選多余工作表
單擊“Kind”字段的篩選按鈕,在篩選菜單中選擇“Sheet”的類型。單擊“Name”字段,取消“匯總表”,否則合并之后會導致數據成倍增加,增加的主要是重復的記錄,效果如圖3所示。
第4步:修改字段屬性
從圖1可以發現,各個工作表中的字段分布順序并不相同,個別工作表中的字段是其他工作表中沒有的,因此必須在合并之前進行預處理。
在右側窗格的“查詢窗格”區域單擊“源”,光標跳轉到編輯欄,將公式中的“null ”更改為“true”,這樣可以保證系統自動識別出字段名稱并進行自動歸類。
第5步:展示有效數據
仍然在查詢窗格選中步驟名稱“篩選的行”,按住Ctrl鍵不放,依次單擊“Name”和“Date”兩個字段的標題選中這兩列,右鍵選擇“刪除其他列”。單擊“Date”字段的展開按鈕,將數據展開,現在可以看到圖4所示的展開效果。
完成上述步驟之后,單擊“銷售日期”字段的標題,將數據類型設置為“日期”,最后依次選擇“關閉并上載→關閉并上載至”,將數據上載到“匯總表”工作表的指定單元格,各工作表中只要是標題相同的列,就會自動歸類到同一列中,各工作表中標題不同的列,也會自動依次排列,效果如圖5所示。
值得特別指出的是,通過上述步驟,即使源數據有更新或變化,只要在匯總表的任意單元格單擊鼠標右鍵進行刷新就可以了。