---
schema_version: "1"
id: 41c06921670cbf55b286f8ab24697e2fd873f8da307aa7e8e34cd4af7d28f5b9
title: 移除重复行
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/prep/prep_remove_duplicates.md
canonical_url: https://help.tableau.com/current/prep/zh-cn/prep_remove_duplicates.htm
source_site: help.tableau.com
content_type: documentation
content_hash: bf9baa958e2badc925910ac7601679abd1a165971221ba03f4d00a861239e79a
description: Identify and remove duplicate rows in a Tableau Prep flow.
---
[跳转到主要内容](#main-content)

# 移除重复行

_在 Tableau Prep Builder 版本 2024.1 及更高版本、Tableau Server 版本 2024.2 及更高版本中以及 Tableau Cloud 中的 Web 上受支持。_

重复数据可能会影响数据质量、预测结果存在偏差并浪费存储空间。移除重复项可确保每个值都是唯一的，从而提供数据的准确表示形式。移除重复项的第一步是识别数据中的重复行。识别出重复项后，您随后可以将它们从工作流程中移除。

## 识别并移除重复项

Tableau Prep 将重复项标识为至少有一个其他行具有相同值的任何行。

识别并移除重复的行。

1. （可选）对于 Excel 和文本文件，您可以单击“输入”步骤并添加“源行号”字段以按原始数据源对行进行排序。有关详细信息，请参见[将源行号字段添加到您的流程](https://help.tableau.com/current/prep/zh-cn/prep_configure_dastaset.htm)和[计算字段的排序顺序](#sortOrderDups)。
2. 单击“输入”或“输出”步骤以外的任何步骤。

![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_remove_dup_select.png)

4. 识别重复的行。
    
    - 若要识别所有字段中的重复行，请从工具栏中单击“识别重复行”。
    - 若要识别特定字段中的重复行，请选择一个或多个字段，然后单击“识别重复行”。（可选）在配置窗格中，您可以单击从所选字段中选择“更多选项”![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_moreoptions_icon.png)菜单，并选择“识别重复行”。
    
    将创建一个计算字段并在“更改”窗格中列出。计算字段提供重复行跨越的字段的描述和名称。数据网格显示哪些行是唯一的，哪些行是重复的。
    
    下图显示了选择_“区域”_和_“项目类型”_两个字段以仅识别那些选定字段中的重复行的结果。
    
    ![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_remove_dup_id.png)
    
    如果源行号可用，则它用于对行的顺序进行排序。否则，行将根据表架构中的第一个字段进行排序。若要更改计算字段中的值，您可以直接编辑计算或编写自己的计算。请参见[计算字段的排序顺序](#sortOrderDups)。
5. 若要评估重复行，请单击“是否为重复行？”字段或数据网格中的“重复”或“唯一”。

下图显示了所有字段中的重复行。

![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_remove_dup_all_rows.png)

下图仅显示了_“区域_”和_“项目类型_”字段中的重复行。

![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_remove_dup_limit_rows.png)

10. 若要筛选并仅保留唯一行，请单击“数据”网格或“是否为重复行？”字段中的“唯一”，然后从工具栏中选择“仅保留”。或者，您可以单击“数据”网格或“是否为重复行？”字段中的“唯一”，然后右键单击以选择“仅保留”。
    
    您还可以选择“重复” ，然后选择“排除”以筛选重复项数据。这会产生与选择“唯一”和“仅保留”相同的结果，并且不会影响排除或保留哪些行。
    
    将会在更改窗格中创建一个筛选器，显示仅保留唯一行并排除重复行。
    
    ![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_remove_dup_filter.png)
11. 从“是否为重复行？”计算字段中，单击“更多选项”![](/tableau/current/zh-cn/prep/zh-cn/Img/prep_moreoptions_icon.png) 菜单，然后选择“移除”。
    
    当您运行流程并创建输出时，重复的行将被移除。
    
    **注意**：不要移除“是否为重复行？”计算字段（如果您要调整采样数据）。

### 样本数据中的重复项

重复的行可能不会出现在采样数据中，并且可能会在模型中引入偏差。

若要解决重复行采样数据，请执行以下操作：

1. 不要移除“是否为重复行？”计算字段（如果您要调整采样数据）。这使您可以选择更改样本大小或调整输入步骤中的样本数据。
2. 调整样本大小以加载尽可能多的数据用于行选择。请参见[设置数据样本大小](https://help.tableau.com/current/prep/zh-cn/prep_configure_dastaset.htm)。
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`

有关详细信息，请参见[将源行号字段添加到您的流程](https://help.tableau.com/current/prep/zh-cn/prep_configure_dastaset.htm)。

### 编写您自己的筛选器计算来查找并移除重复项

您可以跨多个字段编写自己的筛选器计算，以查找并移除重复项。

以下筛选器计算将仅返回返回 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`