合併兩個不重複的列表

一個經典的情況:您有兩個列表需要合併為一個。 此外,在初始列表中,可以有唯一元素和匹配元素(在列表之間和內部),但在輸出中,您需要獲得一個沒有重複(重複)的列表:

合併兩個不重複的列表

傳統上,讓我們看看解決這種常見問題的幾種方法——從原始的“額頭”到更複雜但更優雅的方法。

方法 1:刪除重複項

您可以用最簡單的方法解決問題——手動將兩個列表的元素複製到一個列表中,然後將該工具應用於結果集。 刪除重複項 從標籤 數據 (數據 - 刪除重複項):

合併兩個不重複的列表

當然,如果源列表中的數據經常更改,此方法將不起作用——您必須在每次更改後重複整個過程。 

方法 1a。 數據透視表

這種方法實際上是前一種方法的邏輯延續。 如果列表不是很大,並且預先知道其中的最大元素個數(例如不超過 10 個),那麼可以通過直接鏈接將兩個表合二為一,在右側添加一列,然後根據結果表構建匯總表:

合併兩個不重複的列表

如您所知,數據透視表忽略重複,因此在輸出中我們將得到一個沒有重複的組合列表。 僅需要帶有 1 的輔助列,因為 Excel 可以構建包含至少兩列的匯總表。

當原始列表更改時,新數據將通過直接鏈接進入組合表,但必須手動更新數據透視表(右鍵單擊 - 更新並保存)。 如果您不需要即時重新計算,那麼最好使用其他選項。

方法三:數組公式

你可以用公式解決問題。 在這種情況下,結果的重新計算和更新將在原始列表更改後立即自動進行。 為了方便和簡潔,讓我們給我們的列表命名。 清單1 и 清單2運用 名稱管理員 選項卡 (公式 - 名稱管理器 - 創建):

合併兩個不重複的列表

命名後,我們需要的公式是這樣的:

合併兩個不重複的列表

乍一看,它看起來令人毛骨悚然,但實際上,一切都沒有那麼可怕。 讓我使用 Alt+Enter 組合鍵並用空格縮進將這個公式擴展為幾行,就像我們所做的那樣,例如這裡:

合併兩個不重複的列表

這裡的邏輯如下:

  • 公式 INDEX(List1;MATCH(0;COUNTIF($E$1:E1;List1); 0) 從第一個列表中選擇所有唯一元素。一旦它們用完,它就會開始給出 #N/A 錯誤:

    合併兩個不重複的列表

  • 公式 INDEX(List2;MATCH(0;COUNTIF($E$1:E1;List2); 0)) 以相同的方式從第二個列表中提取唯一元素。
  • 相互嵌套的兩個 IFERROR 函數首先實現 list-1 中唯一的輸出,然後依次從 list-2 中輸出。

注意這是一個數組公式,即鍵入後,必須在非普通單元格中輸入 Enter,但使用鍵盤快捷鍵 按Ctrl+轉移+Enter 然後復制(拖動)到帶有邊距的子單元格。

在英文版 Excel 中,此公式如下所示:

=IFERROR(IFERROR(INDEX(List1, MATCH(0, COUNTIF($E$1:E1, List1), 0)), INDEX(List2, MATCH(0, COUNTIF($E$1:E1, List2), 0)) ), "") 

這種方法的缺點是,如果源表具有大量(數百或更多)元素,則數組公式會顯著減慢文件的處理速度。 

方法 3. 電源查詢

如果您的源列表包含大量元素,例如數百或數千個,那麼與其使用緩慢的數組公式,不如使用一種根本不同的方法,即 Power Query 加載項工具。 默認情況下,此加載項內置於 Excel 2016 中。 如果您有 Excel 2010 或 2013,則可以單獨下載並安裝(免費)。

動作的算法如下:

  1. 打開已安裝插件的單獨選項卡 電源查詢 (如果您有 Excel 2010-2013)或只是轉到選項卡 數據 (如果您有 Excel 2016)。
  2. 選擇第一個列表並按下按鈕 從表/範圍 (從範圍/表). 當被問及如何從我們的列表中創建“智能表”時,我們同意:

    合併兩個不重複的列表

  3. 查詢編輯器窗口打開,您可以在其中看到加載的數據和查詢名稱 表1 (如果需要,您可以將其更改為自己的)。
  4. 雙擊表頭(word 清單1)並將其重命名為任何其他(例如 員工)。 確切地命名什麼並不重要,但必須記住發明的名稱,因為。 稍後在導入第二個表時必須再次使用它。 將來合併兩個表只有在它們的列標題匹配時才有效。
  5. 展開左上角的下拉列表 關閉並下載 並選擇 關閉並加載... (關閉並加載到…):

    合併兩個不重複的列表

  6. 在下一個對話框中(它可能看起來有點不同 - 不要驚慌),選擇 只需創建一個連接 (僅創建連接):

    合併兩個不重複的列表

  7. 我們對第二個列表重複整個過程(第 2-6 點)。 重命名列標題時,使用與上一個查詢相同的名稱(人物)很重要。
  8. 在選項卡上的 Excel 窗口中 數據 或在選項卡上 電源查詢 選擇 獲取數據 - 合併請求 - 添加 (獲取數據——合併查詢——追加):

    合併兩個不重複的列表

  9. 在出現的對話框中,從下拉列表中選擇我們的請求:

    合併兩個不重複的列表

  10. 結果,我們將得到一個新查詢,其中兩個列表將相互連接。 仍然可以使用按鈕刪除重複項 刪除行 - 刪除重複項 (刪除行 - 刪除重複項):

    合併兩個不重複的列表

  11. 完成的查詢可以在選項面板的右側重命名,給它一個合理的名稱(這實際上是結果表的名稱),並且可以使用命令將所有內容上傳到工作表 關閉並下載 (關閉&加載):

    合併兩個不重複的列表

將來,如果對原始列表進行任何更改或添加,只需右鍵單擊即可更新結果表。

  • 如何使用 Power Query 從不同文件中收集多個表
  • 從列表中提取唯一項
  • 如何比較兩個列表的匹配和差異

發表評論