2013-10-28 145 views
-1

我在列A中有超过3000个值。我在列B中有一个x的值。我想让excel查看列A中的值并返回“是”如果存在大于x的值,但小于x + 7(在列A> x中找到x + 7>值)。如果这样的值(一个或多个)不存在,则显示 “无”Excel:在特定范围内寻找值

下面是一个例子:

列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和bigg)呃比B2),我需要excel回馈“是”。如果可能的话,在B列的特定值之后给出第一个值也是理想的。

以下是我迄今试过的,但没有成功: = IF(AND((B2 + 7)> A1:A3000> B2),“是”,“否”) = IF(AND((B2 + 7)> $ A $ 2:$ A $ 3000,$ A $ 2:$ A $ 3000> B2),“是”, “否”)

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

+0

请根据给定的输入数据提供一些必需的输出示例。你想要代码或公式解决方案吗? – pnuts

回答

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用户定义的功能。

+0

它的工作,谢谢你! – user2646402

+0

如果答案是“是”,你知道如何在B2之后得到第一个数字吗? – user2646402

1

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

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

在哪里,这将是在C2的公式,在跨越A2列表项测试B2 - A10。您可以在列的所有条目下方复制该公式。

0

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