Excel公式将一个单元格中的单个值与其他单元格中的多个值进行比较

时间:2014-08-22 12:57:12

标签: excel compare formula

我在A列中有一个值,我将其与相应单元格B的多个值进行比较,并将答案放在C列中。假设它在B列中搜索小于或等于12的值并放入C列中的答案顺序相同。

Column A ####  Column B        #### Column C

12       ####  10,12,13,14     #### Yes, Yes, No, No

101      ####  101,102,103,104 #### Yes, No, No, No

1 个答案:

答案 0 :(得分:0)

假设,正如您在问题中所描述的那样,列BC中的单元格是以逗号分隔的字符串,那么最简单的方法是使用用户定义的函数执行此操作(在VBA中称为StringComp)。

该函数有两个参数,一个用于Column B中逗号分隔数字的列表,第二个参数指向您希望用作与列表进行比较的数字的单元格Column A

我认为这可以使用数组函数完成,但VBA解决方案要简单得多。

首先将以下VBA复制并粘贴到工作簿VBA模块中,对于上面的示例,假设您的数据从Row 1开始,您可以使用StringComp函数放置=StringComp(B1,A1)在单元格C1中,根据您的示例,这将返回Yes,Yes,No,No

Public Function StringComp(a As Variant, b As Variant) As String
Dim strOUT, strOUT_temp, strArray() As String
Dim intCount As Integer


strArray = Split(a.Text, ",")

For intCount = LBound(strArray) To UBound(strArray)
If (Val(strArray(intCount)) <= Val(b)) Then
    strOUT_temp = "Yes"
Else
    strOUT_temp = "No"
End If
If (intCount = LBound(strArray)) Then
     strOUT = strOUT_temp
Else
     strOUT = strOUT & "," & strOUT_temp
End If
Next

StringComp = strOUT

End Function