Excel中多行多列數據去重有高招

2023-01-30     電腦愛好者

原標題:Excel中多行多列數據去重有高招

一些數據會重複出現在表格的不同行列中。如老師任課表,由於一些老師會在多個班級任教,因此其姓名會在表中重複出現,現在需要將所有一線任課老師的姓名從表中提取出來,這就會涉及去重問題。如何實現去重呢?下面筆者以Excel 2019為例介紹具體的操作方法。假設學校無重名的老師,若有則需要先標註以示區別(如張三1,張三2)。

文| 俞木發

方法1. 刪除重複值法

用Excel內置的「刪除重複值」去重很方便。不過,這個方法要求數據均在一列才行。因此對於多行多列的數據,需要先將去重數據歸集在一列中。比如下面是某校老師任課表,現在需要在J列中列出所有任課老師的去重名單(圖1)。

(圖1)

定位到B10單元格並輸入公式「=C2」,然後向右填充到H10單元格,選中B10:H10數據區域,向下填充公式,直到B列單元格中出現數字0為止,這樣在B列中便可以引用全部老師的姓名(圖2)。

(圖2)

公式解釋:

這裡使用「=」在B10單元格中開始引用下一列的數據,公式下拉後B10:H10就會依次引用各自下一列的數據,直到沒有數據為止(單元格顯示0),所以最終在B列中可以引用所有任課老師的數據。

繼續選中B2:B57區域(總共56條數據,B58單元格中的數字為0)中的數據並複製,接著定位到J2單元格,依次點擊「開始粘貼值」,選中J列中的數據,依次點擊「數據刪除重複值」,在彈出的窗口中勾選「列J」,點擊「確定」(圖3)。

(圖3)

這樣J列中的重複值就自動被剔除,在該列中就可以保留不重複的老師名單了(圖4)。如果後續名單發生了變化,只要重複上述操作,然後再次執行去重操作即可。

(圖4)

方法2. 函數法

上述方法是手動去重,如果名單發生變化,還需要再次去重。如果要實現去重的自動化,可以藉助於函數來實現。

(圖5)

公式解釋:

(圖6)

公式解釋:

方法3. VBA法

多行多列數據去重,實際操作是先將數據組成一列,然後去重,在VBA中可以藉助於RemoveDuplicates函數來快速實現。

先到「https://share.weiyun.com/BYDj7Qhx」下載所需的代碼,接著按下「Alt+F11」快捷鍵打開VBA編輯窗口,依次點擊「插入模塊」,將下載的代碼粘貼到代碼框中(圖7)。

(圖7)

代碼解釋:

先設置行列變量,列內容是第2列第8列(即B:H列),行內容是第2行第9行(請根據實際單元格內容設置)。然後遍歷這些行列中的內容,將其提取到I列中保存,最後使用RemoveDuplicates函數對I列的內容去重。

返回到Excel窗口中,依次點擊「開發工具宏去重」,點擊「執行」,這樣VBA代碼就會將所有老師的數據複製到I列並完成去重操作了(圖8) CF

(圖8)

原文刊登於2022 年 10 月 1 日出版《電腦愛好者》第 19 期

END

更多精彩,敬請期待……

文章來源: https://twgreatdaily.com/zh-hk/ecb0de028f405d55ad8e8e53a900f4ef.html