电子表格公式,return 范围与值匹配的行

Spreadsheet Formula, return the row whose range matches a value

我有下面的数据 table,我希望给定值 'x' 查看 'A' 并在 'B' 中获得较低的值。

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

如果可能的话,我想要一个适用于 excel 和 gdocs 的公式。谢谢

 A          B
 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

以下内容可满足您的需求:

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

其中 38 是我们要查找的值。 Match 会在 A:A 和 return 中查找值小于 38 的行(因为 match() 公式的第三个参数是 1)。

索引将 return B:BMatch() 刚刚输出的行。

我不知道 gdocs,但在 excel 中尝试以下操作。

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

其中 value 是您要搜索的值。

唯一的先决条件是列 A 必须按升序排序,就像您在示例中所做的那样。

如果您搜索 900,000,您希望 return 600,000.01 中的值,因为这是它高于的最后一个值。

您可以使用数组公式来完成此操作,但我更喜欢让 Index 为我完成这项工作。因此,我提出 INDEX/MATCH/INDEX:

首先,按照从大到小的顺序对数据进行排序。

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

您可以将 900,000 更改为您要查找的任何数字,或引用其中包含该值的单元格。

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

接下来,您使用 MATCH 在您创建的数组中找到第一个 TRUE。这是您的目标大于的第一个单元格的位置(这就是我们从大到小排序的原因)。

一旦我们知道它在列表中有多远,我们就会使用第一个 INDEX 来查看 Col B 的最下方并获取您要查找的信息!

尝试一下,一旦你想通了它就有意义了:)祝你好运!

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

=LOOKUP(C2,A:B)