Excel范围查找列表

时间:2015-02-19 22:25:08

标签: excel excel-formula range formula vlookup

很抱歉,但我是新手 - 我有一个数字范围列表,然后是一个数字输入,如下所示。

1-2 A
2-3 B
3-4 C

因此,当我输入3.5时,我希望它能为我提供C.我无法找到一种方法来做到这一点,而无需做几个不同的IF语句和很多'少吃#39;我尝试使用VLOOKUP,但它不起作用。有没有办法在没有宏的情况下做到这一点?或者我应该放弃并做IF语句?

2 个答案:

答案 0 :(得分:0)

如果您不想拆分范围或使用任何辅助列,您可以使用以与原始数据类似的方式构建的虚拟查找。例如,如果您要查找的值在单元格D1中,则:

=VLOOKUP(TRUNC(D1)&"-"&TRUNC(D1+1),A1:B3,2)

会给你你想要的成绩。它将使用第一个数字构造第一列的格式。这只适用于上面的例子。如果您有更广泛的类别,则需要调整TRUNC功能。例如,类别0-2,2-4等,您可以使用(TRUNC(D1/2)*2) & "=" & (TRUNC(D1/2)*2 + 2)代替。

答案 1 :(得分:0)

虽然通常明智的做法是将VLOOKUP函数中的第四个参数( range_lookup )设置为FALSE(以确保仅在匹配精确的情况下返回匹配)其中 table_array 的排序为TRUE(或默认,或1)选项可能是 lookup_value 落入乐队的正确选择:

  

如果range_lookup为TRUE或被省略,则返回精确或近似匹配。如果未找到完全匹配,则返回小于lookup_value的下一个最大值。

Important If range_lookup is either TRUE or is omitted, the values in the first column of table_array must be placed in ascending sort order; otherwise, VLOOKUP might not return the correct value.

在这种情况下,乐队的末端是不允许的值,因此像102-356452-556(假设代表AC这样的乐队分别在A1中说和A4),辅助列可能由以下构造:

  =LEFT(A1,3)+1  
在B1说,复制到西装。 C1中为A,C5中为C,公式如下:

=VLOOKUP(D1,B:C,2)  

会为#N/A或更少{}返回102A提取103355C提交453或者更多。由于556超过453,但返回C,可以向底部的 table_array 添加其他条目,比如说B6中为556,C6中为#N/A

如果频带B给出了356-452值,则可以在Rows2和Row4中进行相应的输入(对于不允许的频段末端返回#N/A)。或者,如果永远不会查找这些可能没有必要的,尽管我的偏好是针对涵盖所有可能性的 table_array ,因此将涉及首先查找完全匹配的公式,并且仅在返回时然后,错误会查找不准确的匹配,因此我的 table_array 可能如下所示:

B      C  
0      #N/A
103    A
356    #N/A
357    B
452    #N/A
453    C
556    #N/A

我的公式是这样的:

=IFERROR(VLOOKUP(D1,B:C,2,0),VLOOKUP(D1,B:C,2))