请帮我解释
HLOOKUP
函数的结果,逻辑值= TRUE,如下数据所示
在B5:我理解结果:首先,Excel按升序从左到右对第一行进行排序(然后我们有b c d f g m);其次,选择小于lookup_value 'g'的下一个最大值;因此选择“f”,结果相应为 0.6。 B7中的解释是正确的,但B6中的解释不正确。在 B6 处,table_array 更窄,但一切都是一样的。
我的问题是:
HLOOKUP
是否从数组的最后一列(从右到左)看到,并且没有排序?如果是,这条规则何时生效,因为它与上面的 B5 相矛盾?如果我将第一个数组中的第一个单元格更改为“b”(请参见下图中的单元格 H14)。 B19和B20(下图中的I19和I20)现在返回0.25
附加信息:我发现
HLOOKUP
将找到数组中与lookup_value具有相同格式的最后一个值(从右到左)。我附上了一张图像,将其显示为单元格 C31 和 I31。
但无法解释的结果是问题2中提到的I33
我更改了lookup_array中的值以查看每次更改的结果,尝试查看逻辑以及这次和上次重复的内容。我什至问过 ChatGPT 4.0 但它不起作用,答案都是废话。
根据您的第一段,您对 (H)LOOKUP 函数的理解似乎不正确。 Excel 没有自动对给定参数进行排序的机制。此外,对于近似匹配,该函数实际上并未考虑精确匹配,而是考虑大于给定输入的第一个值。旁注:您在
B7
中给出的结果不正确,或者您在 A7
中得到了错误的查找值(可能需要为“c”)。
所以恕我直言,答案就在 MS-documentation 中,它对此事非常清楚。使用近似匹配时,您需要输入一个排序数组(升序)。否则你可能会得到意想不到的结果。
如果输入排序数组失败,(H)LOOKUP 的底层处理将停止在第一个大于查找值的元素处,然后返回该元素之前的值,除非查找值是小于数组中的第一个元素。对于
B5
,您正在寻找“g”。找到的第一个大于“g”的值是“m”。由于您的输入是 not 排序的,因此它将返回的值是属于“f”的值(因为这是位于“匹配”值之前的值)。
因此,我建议仔细阅读文档并注意上述行为。现在你可以尝试:
B5
中的公式:
=HLOOKUP(A5:A7,SORT(A1:F2,1,,1),2,1)