Spreadsheet Formula,返回范围与值匹配的行

我有下面的数据表,我想要给出一个值'x'看'A',并得到'B'的较低值。

例如10.000应该返回0,38.000应该返回7,8和900.000应该返回20.在我的语言环境'。' 表示千位分隔符,','表示小数位。

如果可能的话,我想要一个在excel和gdocs中工作的公式。 谢谢。

AB 0 0 37.500,01 7,8 45.000,01 9,1 58.345,62 11,4 120.206,02 13,6 208.075,91 15,7 295.242,83 17,2 382.409,77 18,2 600.000,01 20 

我不知道gdocs,但在Excel中尝试以下。

 =vlookup(value ; $A$1:$B$9 ; 2 ; 1) 

其中value是您正在search的值。

唯一的先决条件是列A必须按照升序sorting,就像你在例子中那样。

您可以使用LOOKUP函数,假定C2中的查找值在D2中使用此公式

=LOOKUP(C2,A$1:B$9)

以下内容适用于您的需求:

 =INDEX(B:B,MATCH(38,A:A,1),1) 

38是我们正在查找的价值。 匹配将在A:A查找,并返回值小于38 (因为match()公式的第三个参数是1 )。

该索引将返回在B:B刚才输出的Match()的行。

如果你search900,000,你希望从600,000.01返回值,因为这是最后一个值。

你可以用一个数组公式来做这个,但是我更喜欢让Index做这个工作。 因此,我提出INDEX / MATCH / INDEX:

首先,将您的数据从最大到最小。

 =INDEX($B$1:$B$9,MATCH(TRUE,INDEX(900000>$A$1:$A$9,0),0)) 

您可以将900,000更改为您正在查找的任何号码,或者引用具有该值的单元格。

第二个INDEX嵌套在那里,正在检查列A中的每个单元格,以确定您的目标值是否大于它们。 它创build了一个TRUE和FALSE的数组。

接下来,您使用MATCH查找您创build的数组中的第一个TRUE。 这就是你的目标大于第一个单元的位置(这就是为什么我们从大到小sorting)。

一旦我们知道了它的名单有多远,我们就用第一个INDEX来看看Col B,然后抓住你正在寻找的信息!

玩一下,一旦你想通过它的方式是有道理的:)祝你好运!