EXCEL数组公式,用于指示一个范围内的值是否存在于另一个范围内

EXCEL数组公式,用于指示一个范围内的值是否存在于另一个范围内,excel,excel-formula,vba,Excel,Excel Formula,Vba,我在a列中有一个值列表,在B列中有另一个值列表 如果a列中的任何值在B列中,我试图让C列中的一个单元格指示TRUE,如果a列中的任何值在B列中,则指示FALSE 我尝试了匹配(查找值,在范围内),但它只查看A中的一个值 在没有VBA的情况下可以这样做吗?也对VBA解决方案开放。谢谢我在VBA中使用了类似的方法来比较一个列表中的值和另一个列表中的值。如果要检查很多值,可能需要一段时间。只需将B范围设置为工作表上的范围大小即可 Option Explicit Dim Index As Long Di

我在a列中有一个值列表,在B列中有另一个值列表

如果a列中的任何值在B列中,我试图让C列中的一个单元格指示TRUE,如果a列中的任何值在B列中,则指示FALSE

我尝试了匹配(查找值,在范围内),但它只查看A中的一个值


在没有VBA的情况下可以这样做吗?也对VBA解决方案开放。谢谢

我在VBA中使用了类似的方法来比较一个列表中的值和另一个列表中的值。如果要检查很多值,可能需要一段时间。只需将B范围设置为工作表上的范围大小即可

Option Explicit
Dim Index As Long
Dim valueFound As Range
Sub compareAandB()

Index = 2

Do While ThisWorkbook.ActiveSheet.Cells(Index, 1) <> ""

    Set valueFound = ThisWorkbook.ActiveSheet.Range("B2:B1000").Find(ThisWorkbook.ActiveSheet.Cells(Index, 1))

    If valueFound Is Nothing Then
        ThisWorkbook.ActiveSheet.Cells(Index, 3) = "Not Found"
    Else
        ThisWorkbook.ActiveSheet.Cells(Index, 3) = "Found"
    End If
    Index = Index + 1
Loop
End Sub
选项显式
暗指数与长指数相同
Dim值作为范围找到
子比较a和b()
指数=2
执行此工作簿.ActiveSheet.Cells(索引,1)”时的操作
Set-valueFound=ThisWorkbook.ActiveSheet.Range(“B2:B1000”).Find(ThisWorkbook.ActiveSheet.Cells(索引,1))
如果valueFound为空,则
ThisWorkbook.ActiveSheet.Cells(索引,3)=“未找到”
其他的
ThisWorkbook.ActiveSheet.Cells(索引,3)=“已找到”
如果结束
索引=索引+1
环
端接头

下面是一个快速而肮脏的UDF,可以做到这一点

Public Function Exist(a As Range, b As Range) As Boolean
Dim temp As Boolean
temp = False
For Each cel In a
    If WorksheetFunction.CountIf(b, cel.value) > 0 Then
        temp = True
        Exit For
    End If
Next cel

exist = temp

End Function

如果是VBA,它需要使用类似isPresent的参数(lookUpValues作为范围,lookHere作为范围)。我必须在工作簿中使用此公式/函数924次。此代码似乎给出了错误的结果。如果我手动使用公式
=countif(B4,AIP!A:A)
我得到1,但调用您的函数作为
存在(B3:B4,AIP!A:A)
我得到false。我知道B3在这个范围内不存在,但b4存在,我希望能实现。我还想知道,当一个单元格的计算结果为真时,结束countif循环是否有意义。@Britt-Huh,这很有趣,我已经在我的机器上测试过了,它工作正常。我是否有可能得到一份数据副本来测试。我的电子邮件是斯科特。craner@gmail.com. 另外,在你的问题中,你说如果一个区域中的任何单元格等于另一个区域中的任何单元格,你希望一个单元格返回true,因此如果找到“true”,则没有必要继续循环。问题是“Exists”一词。一旦更改为“Exist”,这是我在工作簿上看到的,但在答案中更改了,该函数就起作用了。