编写Excel公式来检查所有行,如果它们具有相同的ID但不同的文件名

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

所以对于列file_id和列File_name,我需要帮助写一个公式,将比较同一文件名有两个或更多的ID。

这可能吗?

谢谢

在这里输入图像说明

这是我的尝试。 这段代码要做的是标记那些与之前的ID不匹配的文件名。 看下面的图片:

快照

我尝试过使用VBA

按ALT + F11进入VBA,在左边栏中你会看到“Project -VBA Project”,双击Sheet1,或者你正在工作的表的名字。

VBA模式

粘贴的代码

将下面的代码粘贴在那里:

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") 

如果你想用这些单元格做一些事情而不是标记它们,可以随意发表评论。

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

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

请注意,'COUNTIFS()'函数仅适用于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") 

为了使其工作你需要在input公式时按下Ctrl + Shift + Enter。

如果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。