我在 Excel 工作表中有一长串数据,我将把文件 ID 更改为名称。问题是我需要先检查同一个文件名是否有不同的ID,因为这会产生问题。
因此,对于列 file_id 和列 File_name,我需要帮助编写一个公式来比较同一个文件名是否有两个或多个 ID。
这可能吗?
谢谢
我在 Excel 工作表中有一长串数据,我将把文件 ID 更改为名称。问题是我需要先检查同一个文件名是否有不同的ID,因为这会产生问题。
因此,对于列 file_id 和列 File_name,我需要帮助编写一个公式来比较同一个文件名是否有两个或多个 ID。
这可能吗?
谢谢
假设 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。
如果您有多个 file_id 列,而 File_name 只有一列,并且 File_name 列中的条目是唯一的,那么这很简单:假设 A、B 和 C 列包含 file_id 信息,而 D 列包含 File_name。在 E 列中,您可以输入以下公式: =COUNTA(A2:C2)
这将计算 File_name 列左侧列中的 file_id 条目数。如果结果大于 1,则您知道存在多个 file_id。
这是我的尝试。这段代码要做的是标记那些 id 与以前的 ID 不匹配的文件名。看下面的图片:
我已经尝试使用 VBA
按 ALT + F11 进入 VBA,在左侧栏中,您将看到“Project -VBA Project”,在此双击 Sheet1 下,或者您正在处理的工作表的名称。
将以下代码粘贴到那里:
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")
在我的代码中,起始 Range(Cell) 已指定为A2,如果起始单元格是其他东西,例如D2,则编辑代码中的行如下
Set rng = Sheets("Your sheet name").Range("$D$2")
如果您想对这些单元格做其他事情而不是标记它们,请随时发表评论。