Excel:查找特定范围内的值

时间:2013-10-28 23:09:28

标签: excel vba excel-vba

我在列A中有超过3000个值。我在列B中有一个x值。我希望excel查看A列中的值,如果有一个大于x的值,则返回“是”小于x + 7(在列A中找到的x + 7>值> x)。如果此类值不存在,则显示“否”

以下是一个例子:

A栏

2:11.2

3:11.3

4:11.4

5:13.5

6:13.6

7:20.5

8:20.6

9:30.5

B栏

2:11.1

3:20.7

在这种情况下,由于第1列中的值大于11.1并且在范围内(小于B2 + 7,并且大于B2),我需要excel给出“是”。如果可能的话,最好还是在B列中的特定值之后给出第一个值。

这是我到目前为止所尝试的但是没有成功: = IF(AND((B2 + 7)> A1:A3000> B2), “是”, “否”) = IF(AND((B2 + 7)> $ A $ 2:$ A $ 3000,$ A $ 2:$ A $ 3000 GT; B2), “是”, “否”)

如何在Excel中执行此操作?有没有办法做到这一点,而不是使用IF?

3 个答案:

答案 0 :(得分:1)

如果我不理解这个问题,请原谅我,但不是答案:

=IF(AND((B2+7)>$A$2:$A$10,$A$2:$A$10>B2),"yes","no")

这将是C2中的等式,测试B2以查看列表中跨越A2-A10的条目。您可以将该等式复制到B列中所有条目的列中。

答案 1 :(得分:0)

我不明白你需要什么,但可能=IF(AND(A2>B$2,A2<B$2+7),"yes","no")被复制下来将用于测试每个A列值的B2和B2 + 7。

答案 2 :(得分:0)

试试这个(对于单元格B2

=IF(SUMPRODUCT((A:A>B2)*(A:A<B2+7)),"Yes","No")

并根据需要复制。

对于第二部分,要返回下一个更大的值,请尝试此

=IF(SUMPRODUCT((A:A>B2)*(A:A<B2+7)),INDEX(A:A,MATCH(B2,A:A,1)+1),"No")

请注意,这要求列A中的数据按升序排序(如示例ata所示),而单元格A则包含'0'。如果无法满足这些条件,则可能必须考虑VBA用户定义的函数。