移除重複列

在 Tableau Prep Builder 版本 2024.1 及更高版本,以及 Tableau Cloud 中的 Web 上受支援。

重複資料可能會影響資料品質、預測結果偏差並浪費儲存空間。移除重複可確保每個值都是唯一的,從而提供資料的準確呈現。移除重複的第一步是識別資料中的重複列。識別出重複後,可以將它們從工作流程中移除。

識別並移除重複

Tableau Prep 將重複識別為至少有一個其他列具有相同值的任何列。

識別並移除重複列。

  1. (可選)對於 Excel 和文字檔案,可以按一下「輸入」步驟並新增「來源列編號」欄位以按原始資料來源對列進列排序。有關詳情,請參閱將來源列編號欄位新增至流程中計算欄位的排序順序
  2. 按一下輸入或輸出步驟以外的任何步驟。
  3. 識別重複列。
    • 若要識別所有欄位中的重複列,請從工具列中按一下識別重複列
    • 若要識別特定欄位中的重複列,請選取一個或多個欄位,然後按一下識別重複列。或者,可以在設定檔窗格中,從選取的欄位中按一下更多選項 功能表並選取識別重複列

    將建立一個計算欄位並在「變更」窗格中列出。計算欄位提供重複列跨欄的欄位描述和名稱。「資料網格」顯示哪些列是唯一的,哪些列是重複的。

    下圖是選取兩個欄位,區域項目種類的結果,以識別僅那些選取的欄位中重複列。

    如果來源列編號可用,則它用於對列的順序進行排序。否則,列將根據表結構描述中的第一個欄位進行排序。若要變更計算欄位中的值,您可以直接編輯計算或編寫自己的計算。請參閱計算欄位的排序順序

  4. 若要評估重複列,請在「是否為重複列?」欄位或「資料網格」中按一下重複唯一
  5. 下圖顯示所有欄位中的重複列。

    下圖顯示僅於欄位區域項目類型的重複列。

  6. 若要篩選並僅保留唯一列,請在「是否為重複列?」欄位或「資料網格」中按一下唯一,然後從工具列選取僅保留。或者,可以在「是否為重複列?」欄位或「資料網格」中按一下唯一,然後右鍵按一下以選取僅保留

    您也可以選取重複然後選取 排除以為資料篩選重複。這會產生與選取「唯一」和「僅保留」相同的結果,並且不會影響排除或保留哪些列。

    在變更窗格中建立一個篩選器,顯示僅保留唯一列並排除重複列。

  7. 從「是否為重複列?」計算欄位,按一下更多選項 功能表,然後選取移除

    當您執行流程並建立輸出時,重複列將被移除。

    附註:如果要為範例資料進行調整,請不要移除「是否為重複列?」計算欄位。

範例資料重複

重複列可能不會出現在範例資料中,並且可能會在模型中引入偏差。

若要解決重複列範例資料:

  1. 如果要為範例資料進行調整,請不要移除是否為重複列?計算欄位。這使您可以選擇變更範例大小或調整輸入步驟中的範例資料。
  2. 調整範例大小以載入盡可能多的資料以進行列選取。參看設定資料範例大小
  3. 根據範例的大小,範例資料中可能不會出現重複。對唯一列使用僅保留選項允許移除重複列,即使它們在範例資料中不可見。

計算欄位的排序順序

預設情況下,如果多個列包含相同的值,它們將按第一個欄位或來源列編號(如果可用)排序。這些欄位用於將第一列識別為唯一,剩餘的為重複。變更欄位的排序順序可讓您指定要將哪個重複列識別為「唯一」。可以透過編輯計算並變更 ORDERBY 欄為。

例如:

IF ({PARTITION [Field1], [Field2], [Field3]: { ORDERBY [FieldName] ASC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

對於 Excel 和文字檔案,可以透過新增來源列編號欄位來按原始資料來源排序。

例如:

IF ({PARTITION [Source Row Number], [Field1], [Field2], [Field3]: { ORDERBY [Source Row Number] DESC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

有關詳情,請參閱將來源列編號欄位新增到流程

編寫自己的篩選器計算來尋找並移除重複

可以跨多個欄位編寫自己的篩選器計算,以尋找並移除重複。

以下篩選器計算將僅傳回傳回 True 的結果。根據用於 PARTITION 的欄位,計算傳回 True 或 False

{PARTITION [Field1], [Field2], [Field3]: { ORDERBY [Field1] DESC: ROW_NUMBER() } } = 1

使用 CASE 或者 IF 以識別重複計算

可以使用計算編輯器中的 IF 或者 CASE 函數。例如:

CASE {PARTITION [Field1], [Field2], [Field3] : { ORDERBY [[Field3]]: ROW_NUMBER() } } = 1 WHEN TRUE THEN 'UNIQUE' ELSE 'DUPLICATE' END

IF ({PARTITION [[Field1]], [[Field2]], [[Field3]]: { ORDERBY [[Field3]] DESC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

感謝您的意見反應!已成功提交您的意見回饋。謝謝!