我在尝试使用 HLOOKUP 函数时遇到了这个奇怪的问题。我在这里建立了一个简单的案例来演示。
在从 C7 开始的列中,我将输入 hlookup 函数(显示在 D 列中)。查找值从 B 列开始。A 列中的公式是我在 B 列中输入的公式。
上面两行是参考表,第一行对应查找值,第二行对应值返回输出。
我尝试在表中查找值 .01 和 .02。
如果正确运行,则 .01 应返回“B”,.02 应返回“C”
但正如这里看到的,我只能根据查找值使用的公式才能得到正确的答案。
例如,对于 .01,当我使用公式“.01”和“.31-.3”时,我会得到正确答案,但对于其他公式(例如“.11-.1”)则不会
同样,对于 .02,当我使用公式“.02”和“.32-.3”时,我会得到正确答案。其他所有公式都会给出正确答案前一个单元格中的值。
请让我知道这里出了什么问题!
答案1
我做了一些实验,发现最好的、最一致的方法是包裹两个都TEXT
函数中的查找值和查找数组
TEXT(B4, "0.00")
指的是查找值,并将该值格式化为两位小数。
TEXT($A$1:$D$2, "0.00")
参考查找表,并将所有数字格式化为两位小数。
重要的!您必须使用相同的格式和您必须Ctrl + Shift + Enter
输入Enter
一个数组公式。
编辑:
表的搜索索引(在初始搜索中搜索的内容)正在寻找TEXT
或INTEGER
,而不是long
或double
数字或实数。
如果您要从文本或导入查找表或值csv
,请考虑将它们导入为TEXT
。您可以使用函数转换回数字VALUE
。或者您可以使用其他方法转换为数字。
答案2
HLOOKUP(以及 VLOOKUP)有第四个(可选)参数,它定义它是否搜索完全匹配,或者搜索不大于搜索值的最后一个值;默认是后者。
基本上按设计工作。阅读帮助并设置第四个参数以实现您想要的结果。