为什么具有近似匹配(true)的HLOOKUP没有相应地返回小于lookup_value的下一个最大值

问题描述 投票:0回答:1

请帮我解释

HLOOKUP
函数的结果,逻辑值= TRUE,如下数据所示 B6: returns 0.35 when choosing a smaller lookup_array

在B5:我理解结果:首先,Excel按升序从左到右对第一行进行排序(然后我们有b c d f g m);其次,选择小于lookup_value 'g'的下一个最大值;因此选择“f”,结果相应为 0.6。 B7中的解释是正确的,但B6中的解释不正确。在 B6 处,table_array 更窄,但一切都是一样的。

我的问题是:

  1. B6的返回逻辑是什么?我什至将 B1 改为 'd',B6 的结果相应地为 0.3。
  2. HLOOKUP
    是否从数组的最后一列(从右到左)看到,并且没有排序?如果是,这条规则何时生效,因为它与上面的 B5 相矛盾?
    请看下图。 B18 返回 0.32。看起来规则是先从右到左挑选,并且小于lookup_value 'z' 但为什么 B19 和 B20 返回#N/A? B19 and B20 return #N/A. B18 returns 0.32 instead of 0.25 as the rule at B5

如果我将第一个数组中的第一个单元格更改为“b”(请参见下图中的单元格 H14)。 B19和B20(下图中的I19和I20)现在返回0.25 B19 and B20 don't return #N/A if the first cell of the lookup_value is 'b' instead of 'u'


附加信息:我发现

HLOOKUP
将找到数组中与lookup_value具有相同格式的最后一个值(从右到左)。我附上了一张图像,将其显示为单元格 C31 和 I31。 但无法解释的结果是问题2中提到的I33 find in the same format part to the lookup_value

我更改了lookup_array中的值以查看每次更改的结果,尝试查看逻辑以及这次和上次重复的内容。我什至问过 ChatGPT 4.0 但它不起作用,答案都是废话。

excel function excel-formula lookup
1个回答
1
投票

根据您的第一段,您对 (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)
© www.soinside.com 2019 - 2024. All rights reserved.