比较两个范围:经典范围与单个单元格中逗号分隔值的范围

假设我有一个值范围:6 2 4 7 8 7 1 5 1 9 4 6 8 8 1 7 4 2

而且在一个单独的单元中:“1,4,9”

我需要将这些值与给定范围内的单个单元格进行比较。 如果匹配,input“是”,否则input“否”。

“1,4,9” – 结果:“是”

“3,10,11” – 结果:“否”

在这里,我有一个UDF,简单地比较两个普通范围,并input值作为结果匹配的次数。 应该作为一种模板,我想。

Public Function Compare(r1 As Range, r2 As Range) As Long Dim r As Range, v As Variant, v2 As Variant Dim rr As Range For Each r In r1 v = r.Value If v <> 0 And v <> "" Then For Each rr In r2 v2 = rr.Value If v = v2 Then Compare = Compare + 1 Next rr End If Next r End Function 

我修改了代码来分割第一个单元格区域:

  Public Function Compare(r1 As Range, r2 As Range) As Long Dim r As Integer, v As Variant, v2 As Variant Dim rr1() As String Dim rr As Range rr1 = Split(r1, ",") For r = LBound(rr1) To UBound(rr1) v = --Trim(rr1(r)) If v <> 0 And v <> "" Then For Each rr In r2 v2 = rr.Value If v = v2 Then Compare = Compare + 1 Next rr End If Next r End Function 

要得到“是/否”,你可以这样称呼它:

 =IF(Compare(A1,$D$1:$D$18)>0,"Yes","No") 

在这里输入图像说明