我在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
答案 0 :(得分:0)
假设,正如您在问题中所描述的那样,列B
和C
中的单元格是以逗号分隔的字符串,那么最简单的方法是使用用户定义的函数执行此操作(在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