答案1
您的查找数据(数据范围的第一行)是不是已排序。
您搜索精确的价值。
那么你必须使用 HLOOKUP 函数的第四个参数及其FALSE
值:
=HLOOKUP("Germany", B1:F4, 4, FALSE)
或者按第一行的值升序对数据列进行排序。
为什么如果我将第二个参数更改为 A1:F4,它就适用于所有国家/地区?
我认为,因为没有第 4 个参数的 HLOOKUP 假设数据已排序,所以它使用半除法来搜索结果。
现在看:搜索范围是 B1:F1,5 个单元格。中间是 D1。它低于要搜索的值,因此函数将搜索范围缩小到 D1:F1。它的中间是 E1,并且它高于要搜索的值,函数将搜索范围缩小到 D1:E1。现在搜索范围是 2 个单元格,搜索结果假定为 D1。所以我们得到了错误的结果。
当我们改变数据范围时,搜索范围是 A1:F1,6 个单元格。中间是 C1。它等于要搜索的值。搜索停止。所以我们得到了正确的结果。
这不正确,只是类似。例如,创建测试表,其中 A1:H1 为 a、b、b、b、b、b、b、c,A2:H2 为 1、2、3、4、5、6、7、8。使用 HLOOKUP('b',A1:H2,2)。结果将为 7。