很抱歉,但我是新手 - 我有一个数字范围列表,然后是一个数字输入,如下所示。
1-2 A
2-3 B
3-4 C
因此,当我输入3.5时,我希望它能为我提供C.我无法找到一种方法来做到这一点,而无需做几个不同的IF语句和很多'少吃#39;我尝试使用VLOOKUP,但它不起作用。有没有办法在没有宏的情况下做到这一点?或者我应该放弃并做IF语句?
答案 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-356
和452-556
(假设代表A
和C
这样的乐队分别在A1中说和A4),辅助列可能由以下构造:
=LEFT(A1,3)+1
在B1说,复制到西装。 C1中为A
,C5中为C
,公式如下:
=VLOOKUP(D1,B:C,2)
会为#N/A
或更少{}返回102
,A
提取103
至355
,C
提交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))