编写Excel公式以检查所有行是否具有相同的ID但文件名不同

时间:2012-07-12 16:21:34

标签: excel excel-formula

我在excel表中有一长串数据,我将把文件ID改为名称。问题是我需要首先检查相同文件名是否有不同的ID,因为这会产生问题。

因此,对于列file_id和列File_name,我需要帮助编写一个公式,该公式可以比较同一文件名的两个或多个ID。

这可能吗?

由于

enter image description here

3 个答案:

答案 0 :(得分:3)

假设列A是ID而列B是名称 以下将检查每个名称是否有多个ID。 粘贴到单元格C1并向下拖动。

=IF(COUNTIFS(B:B,"<>"&B1,A:A,A1)>0,"MORE THAN ONE ID FOR THIS NAME","OK")

请注意,'COUNTIFS()'功能仅适用于excel 2007,2010。

如果您有旧版本的Excel,则需要使用如下所示的数组公式:

=IF(SUM(IF(A:A=A1,IF(B:B<>B1,1,0),0))>0,"MORE THAN ONE ID FOR THIS NAME","OK")

使其正常工作输入公式时,您必须按Ctrl + Shift + Enter。

答案 1 :(得分:2)

如果file_id有多列,File_name只有一列,而File_name列中的条目是唯一的,那么它非常简单: 假设列A,B和C包含file_id信息,列D包含File_name。在E栏中,您可以使用以下公式:=COUNTA(A2:C2)

这将计算File_name列左侧列中的file_id条目数。如果结果大于1,则表示存在多个file_ids。

答案 2 :(得分:2)

这是我的尝试。此代码将执行的操作是标记其id与先前ID不匹配的文件名。请看下面的图片:

Snapshot

我尝试过使用VBA

按ALT + F11进入VBA,在左侧栏中您将看到“Project -VBA Project”,双击Sheet1,或者您正在工作的工作表的名称。< / p>

VBA mode

Pasted code

将以下代码粘贴在那里:

Sub mark()

    Dim rng As Range
    Dim row As Integer
    Dim id As Integer
    Dim name As String

    Set rng = Sheets("Sheet1").Range("$A$2")
    row = 0

    Do Until rng.Offset(row, 0) = ""

        id = rng.Offset(row, 0)
        name = rng.Offset(row, 1)

        Do While rng.Offset(row, 1) = name
            If rng.Offset(row, 0) <> id Then
                rng.Offset(row, 0).Interior.Color = 255
                rng.Offset(row, 1).Interior.Color = 255
            End If
            row = row + 1
        Loop

    Loop

End Sub

记住以下内容

  1. 在我的代码中,工作表的名称为“ Sheet1 ”,如果工作表的名称是其他内容,则按如下方式编辑代码中的以下行

    Set rng = Sheets("Your sheet name").Range("$A$2")
    
  2. 在我的代码中,起始范围(单元格)已指定为 A2 ,如果起始单元格为其他内容,例如 D2 ,则编辑代码中的行如下

    Set rng = Sheets("Your sheet name").Range("$D$2")
    
  3. 如果您想对这些细胞做一些其他事情而不是标记它们,请随时发表评论。