我有两列 A 和 B。
A B
20 100
40 200
60 300
80 400
140 500
190 600
240 700
用户在单元格中输入一个值。我需要检查用户输入的值与 A 列中的值,并在 B 列中输出与 A 中最接近的较高值相对应的值。例如,如果用户输入 90,则输出应为 500。如果用户输入 41,则输出应为 300。
答案1
最简单的方法可能是插入0
(A2
通过分流其余部分为其腾出空间)然后应用=VLOOKUP(C2,A:B,2)
(假设要查找的值在 中C2
)。这将返回0
240 或更多。
答案2
不要使用 VLOOKUP。使用 INDEX-MATCH:
=INDEX(Return_value_range, MATCH(Lookup_value, Lookup_value_range, Match_type))
返回值范围 - 保存返回值的范围
Lookup_value – 您想要在查找值数组中查找的值
Lookup_value_range – 包含查找值的范围
Match_type – 精确 (0)、最接近大于 (-1) 或最接近小于 (1)
因此在您的示例中,您的等式看起来将是这样的:
=INDEX(B1:B7,MATCH(NUMBERYOUARELOOKINGFOR,A1:A7,-1))
唯一需要注意的是,当您使用 -1(最接近大于)时,您的列表需要按降序排列。不过,如果使用巧妙的函数,这可能会被破坏。
答案3
LOOKUP 函数的语法是:
LOOKUP( 值, 查找范围, [结果范围] )
价值是在 lookup_range 中搜索的值。
查找范围是按升序排列的单行或单列数据。LOOKUP 函数在此范围内搜索值。
结果范围是可选的。它是与 lookup_range 大小相同的单行或单列数据。LOOKUP 函数在 lookup_range 中搜索值并从 result_range 中的相同位置返回值。如果省略此参数,LOOKUP 函数将返回第一列数据。
笔记
如果 LOOKUP 函数找不到完全匹配,它会选择 lookup_range 中小于或等于该值的最大值。
如果该值小于lookup_range中的所有值,则LOOKUP函数将返回#N/A。
如果 LOOKUP_range 中的值未按升序排序,则 LOOKUP 函数将返回错误的值。
VLOOKUP 的使用
VLOOKUP(值,表格数组,索引号,[不完全匹配])
添加范围查找参数
Range_lookup 参数是一个逻辑值(仅 TRUE 或 FALSE),指示您是否希望 VLOOKUP 找到与 Lookup_value 完全匹配或近似匹配的值。
如果真的或者如果省略此参数,VLOOKUP 将使用近似匹配(如果无法找到与 Lookup_value 完全匹配的值)。如果未找到完全匹配的值,VLOOKUP 将返回小于 Lookup_value 的下一个最大值。
如果错误的,VLOOKUP 将仅使用与 Lookup_value 完全匹配的值。如果 Table_array 的第一列中有两个或多个值与 Lookup_value 匹配,则使用找到的第一个值。如果未找到完全匹配的值,则#N/A 错误被返回。