Excel 如何比较两个列的名称和评级,只保留常用名称和评级?

Excel 如何比较两个列的名称和评级,只保留常用名称和评级?,excel,compare,match,delete-row,Excel,Compare,Match,Delete Row,我有一个有四列的数据集,第1列包含条目名称,第2列包含这些条目的评级。第3列和第4列还包含条目名称及其评级。我想比较第1列和第3列,只保留常用条目名称,删除每列中未出现在另一列中的条目名称。因此,在下面的示例中,应删除“4x09-DH09”、“4x09-DH035”和“4x09-DH060”及其评级。我在Excel中找到了一个公式,它比较了两列的名称,只保留了常用名称,但我不知道如何删除单独一列中的评级?有什么想法吗? 提前谢谢大家 name rating name

我有一个有四列的数据集,第1列包含条目名称,第2列包含这些条目的评级。第3列和第4列还包含条目名称及其评级。我想比较第1列和第3列,只保留常用条目名称,删除每列中未出现在另一列中的条目名称。因此,在下面的示例中,应删除“4x09-DH09”、“4x09-DH035”和“4x09-DH060”及其评级。我在Excel中找到了一个公式,它比较了两列的名称,只保留了常用名称,但我不知道如何删除单独一列中的评级?有什么想法吗? 提前谢谢大家

name        rating      name        rating
4X09-DH03       2       4X09-DH03       2
4X09-DH09       2       4X09-DH011      2
4X09-DH011      5       4X09-DH012      5
4X09-DH035      2       4X09-DH055      2
4X09-DH055      2       4X09-DH060      2

假设您的示例位于以下位置:

         A         B          C        D
1   name        rating   name       rating
2   4X09-DH03      2     4X09-DH03     2
3   4X09-DH09      2     4X09-DH011    2
4   4X09-DH011     5     4X09-DH012    5 
5   4X09-DH035     2     4X09-DH055    2
6   4X09-DH055     2     4X09-DH060    2
要仅使用公共元素复制第一列,请尝试使用

=IF(SUMPRODUCT(($C$2:$C$6=A2)*1),A2,"")
对于B列中的评级,假设前面的公式在A9中,则在B9中使用

=IFERROR(INDEX(B$1:B$6,MATCH($A9,A$1:A$6,0)),"")
在C9中

=IFERROR(INDEX(D$1:D$6,MATCH($A9,C$1:C$6,0)),"")

结束数据之间的空白行。

希望它能起作用

假设名字在A1中,把这个公式放在E2中

=COUNTIF(C:C,A2)

根据需要填写。选择A1,然后选择数据► 排序与筛选► 过滤(Ctrl+Shift+L)并过滤列E中的0(零)。清除A列和B列中所有可见单元格中的值,然后移除过滤器

将E2中的公式更改为

=COUNTIF(A:A,C2)

根据需要填写。选择A1,然后选择数据► 排序与筛选► 过滤(Ctrl+Shift+L)并过滤列E中的0(零)。清除列C和D中所有可见单元格中的值,然后移除过滤器

选择A列和B列,然后选择数据► 排序与筛选► 对A列上的数据进行排序。如果要求展开所选内容,请不要展开所选内容

选择列C&D,然后选择数据► 排序与筛选► 对A列上的数据进行排序。如果要求展开所选内容,请不要展开所选内容

你应该得到如下的结果

虽然您最初的问题考虑的是Excel中比较两列的公式,并且没有使用Excel vba进行标记,但下面是宏等效项

Sub mcr_Murder_Orphans()
    ActiveSheet.Cells(1, 5) = "helper"
    With ActiveSheet.Cells(1, 1).CurrentRegion
        .Cells(2, 5).Resize(.Rows.Count - 1, 1).formula = "=COUNTIF(C:C, A2)"
        .AutoFilter
        .AutoFilter Field:=5, Criteria1:="=0"
        .Columns("A:B").Offset(1, 0).SpecialCells(xlCellTypeVisible).ClearContents
        .AutoFilter
        .Columns("A:B").Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
        .Cells(2, 5).Resize(.Rows.Count - 1, 1).formula = "=COUNTIF(A:A, C2)"
        .AutoFilter
        .AutoFilter Field:=5, Criteria1:="=0"
        .Columns("C:D").Offset(1, 0).SpecialCells(xlCellTypeVisible).ClearContents
        .AutoFilter
        .Columns("C:D").Cells.Sort Key1:=.Columns(3), Order1:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
        .Columns(5).EntireColumn.Delete
    End With
End Sub

为什么要保留4X09-DH012及其评级?对不起,这是我的错误。它不应该保存,太好了!非常感谢你!它工作完美!!!这正是我想要的!!!再次感谢你的帮助!!!