我在excel表中有一长串数据,我将把文件ID改为名称。问题是我需要首先检查相同文件名是否有不同的ID,因为这会产生问题。
因此,对于列file_id和列File_name,我需要帮助编写一个公式,该公式可以比较同一文件名的两个或多个ID。
这可能吗?
由于
答案 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不匹配的文件名。请看下面的图片:
我尝试过使用VBA
按ALT + F11进入VBA,在左侧栏中您将看到“Project -VBA Project”,双击Sheet1,或者您正在工作的工作表的名称。< / p>
将以下代码粘贴在那里:
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
在我的代码中,工作表的名称为“ Sheet1 ”,如果工作表的名称是其他内容,则按如下方式编辑代码中的以下行
Set rng = Sheets("Your sheet name").Range("$A$2")
在我的代码中,起始范围(单元格)已指定为 A2 ,如果起始单元格为其他内容,例如 D2 ,则编辑代码中的行如下
Set rng = Sheets("Your sheet name").Range("$D$2")
如果您想对这些细胞做一些其他事情而不是标记它们,请随时发表评论。