删除重复行 - 不同行中的重复数据分散在不同列中。
重复行是指在不同行的不同列中出现重复数据的情况。这种问题通常出现在需要处理大量数据的工作表中,而我们需要找到并删除这些重复行。下面是问题的出现原因以及解决方法:
出现原因:
重复行的出现是由于数据中存在相同的值,但这些值分散在不同的列和不同的行中。
解决方法:
1. 使用辅助列来查找B到I列中的重复值。在辅助列的第二行输入以下公式,并将公式复制到下面的单元格:
=Sort_and_CONCATENATE(B2:I2,"|")
这个公式将会对范围为"B2:I2"的单元格进行排序和合并。然后,可以在该列上使用"删除重复项"功能来删除重复行。这样做可以帮助我们找到和删除重复行。
2. 使用以下VBA代码中的用户自定义函数来创建一个宏来删除重复行。请注意,宏所做的更改在Excel中是不可撤销的,请在样本/重复数据上尝试宏。
Option Explicit Function Sort_and_CONCATENATE(myRng As Range, deLmt As String, Optional srtCriteria = 0) ' 代码内容 End Function Sub removeDuplicatesAcrossColumns() ' 代码内容 End Sub Public Function ExistsInCollection(col As Collection, key As Variant) As Boolean ' 代码内容 End Function
使用此函数和程序,我们可以删除重复行,而无需使用辅助列。
上述的解决方法可以帮助我们找到并删除散布在不同列和不同行中的重复行。在处理大量数据时,这些方法可以提高工作效率。
在Google Sheets中,如果在不同的行和不同的列中有重复的数据,可以通过添加一个“助手列”来解决这个问题。可以使用以下公式:
=join("|",sort(TRANSPOSE(table_row_reference)))
然后使用“Remove Duplicates”工具来删除重复数据。
在Excel O365中,可以使用相同的方法,只是公式稍有不同:
=TEXTJOIN("|",,SORT(table_row_reference,,,TRUE))
需要注意的是,table_row_reference
是对表格中单个行的引用,例如A1:D1
。
在早期版本的Excel(Excel 2010+)中,可以使用Power Query来解决这个问题。以下是一个示例代码:
let Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content], //将所有列更改为文本类型 typed = Table.TransformColumnTypes(Source, List.Transform( Table.ColumnNames(Source), each {_, type text} ) ), #"Added Custom" = Table.AddColumn(typed, "Merged", each Text.Combine(List.Sort({[Column1],[Column2],[Column3],[Column4]}),"|")), #"Removed Duplicates" = Table.Distinct(#"Added Custom", {"Merged"}), #"Removed Columns" = Table.RemoveColumns(#"Removed Duplicates",{"Merged"}) in #"Removed Columns"
通过使用上述方法,可以轻松地将散布在不同行和不同列中的重复数据删除。