Excel检查多个值的范围

时间:2015-03-10 16:33:50

标签: excel vba excel-vba

我已经搜索了谷歌这个Excel问题的一些帮助,但无济于事。

我有四个输入单元A1:A4和一个输出单元A5。如果单元格A1包含单词" red"我想要从" No"修改输出单元格。 (或空白)到"是"。如果单元格A2:A4包含单词" green"或者"蓝色",我希望输出单元格A5从" No" (或空白)到"是"。如果单元格A1:A4的内容变为任何其他值或为空白,我希望输出单元格A5变回空白或“#34;否”#34;。

完成后,解决方案将被复制到更多行中,因此我需要它在复制时或执行时动态更新,以确保它在正确的行中引用。

到目前为止,我在Cell A5中嵌入了以下公式,并且工作正常。

= IF(ISNUMBER(MATCH("红色",$ A1:$ A1,0)),#34;是""否&#34)

我正在努力将细胞A2:A4所需的条件纳入其中。

我已尝试过直接嵌入单元格中的条件格式,VBA模块和公式,但运气不佳。

非常感谢任何帮助。

-Michael

2 个答案:

答案 0 :(得分:0)

这是一个适合您特定情况的UDF。将此代码复制到模块并在A5中输入“= RngVal()”,它将根据您的标准填充“是”或“否”。

Function RngVal() as String
Dim flg as Boolean
Dim c as Range
If Range("A1") = "red" Then
RngVal = "Yes"
Else
For Each c in Range("A2:A4")
   If c = "blue" or c = "green" Then
   flg = true
   Exit For
   End If
Next c
If flg = True
RngVal = "Yes"
Else
RngVal = "No"
End If
End Function

答案 1 :(得分:0)

我使用了Portland Runner提供的答案:

= IF(ISNUMBER(MATCH("红色",$ A1:$ A1,0)),#34;是",IF(COUNTIF(A2:A4,"绿色&#34)大于0,"是",IF(COUNTIF(A2:A4,"蓝色&#34)大于0,"是",& #34;否")))