我有一个包含A到R列的工作表。我正在尝试找到一种方法来检查来自两列(B& M)的同一行中的重复信息。 B列是日期,M列是参考代码。我想要实现的是当匹配时出现副本的闪屏警告。我已经非常接近使用公式,但是不能完全弄清楚如何启动数据验证并显示启动画面。
这是我迄今取得的成就。
创建列T,我已经把公式C
创建列U,我有公式= B2 & M2
我现在得到一个数字列表0表示空白行,1表示唯一行,2表示重复数据。
现在应该可以获得数据验证工具(我有之前的启动画面)在列U中的数据上创建错误消息。我还没有弄清楚如何获取数据验证可以在整个列上工作。我应该为此查看COUNTIF公式,还是其他不同的东西?
我知道这对房子来说似乎有很长的路要走,以实现我想做的事情,也许现在有人可能会更容易解决这个问题?
答案 0 :(得分:0)
我确信整个过程只能使用VBA代码完成,但此解决方案可以扩展您已经完成的工作。
在V2
=COUNTIF(U2:U3000,">"&1)
然后在您拥有数据的工作表中使用VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B2:B3000,M2:M3000")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
If Range("V2").Value > 1 Then MsgBox ("Reference code with same date
already exists")
End If
End Sub
Range("B2:B3000,M2:M3000")
指的是输入数据的范围。如果这些中有任何变化,宏将会运行。
因此,如果U列中大于1的数字计数大于1,您将收到消息。
主要缺点:只要副本存在,只要您输入数据,它就会一直返回消息框。出路可能是在代码之前或之后插入一个字符。或者,您可以清除该特定行的列U中的内容
(更多有经验的用户可以查看上面的代码。我自己是VBA的初学者)
截图:
有重复项:
没有重复:
代码位置:
答案 1 :(得分:0)
我终于找到了如何让数据验证在两个不同列中标记组合数据的重复项。
首先我必须集中答案(列T = B2 & M2
)。我不需要列U或V.接下来,突出显示列B和U(突出显示B,按CTRL并突出显示U,如果列不相邻)。转到数据验证,选择自定义,然后输入以下公式=COUNTIF($T$2:$T$300,$T2)<2
。然后整个事情都很美妙!