VLOOKUP按指定日期匹配取值时返回前一日期错误值的原因排查
问题产生的核心原因
这个返回结果是VLOOKUP的匹配逻辑被错误触发导致的,具体原因如下:
- 精确匹配的指令没有被Excel正确识别,自动启用了默认的近似匹配模式
VLOOKUP的标准语法为VLOOKUP(查找值, 查找区域, 返回列序号, 匹配模式),四个参数之间必须用英文逗号分隔:- 第四个参数传入
FALSE/0时启用精确匹配,无论查找列如何排序,都能定位到和待查值完全相等的行返回结果; - 如果第四个参数没有被正确传入,Excel会自动默认使用
TRUE/1的近似匹配模式。
近似匹配的规则是:在按升序排列的查找列中,找到小于等于待查值的最大对应行,返回目标列内容。你的源数据日期刚好是按从早到晚升序排列的,当精确匹配指令失效后,函数顺着日期列比对,遇到第一个比待查的04/07/2020大的日期,就会停在匹配行的上一行返回结果——你拿到的03/07/2020对应的数值,完全是近似匹配的典型表现。
你撰写的公式里,返回列序号2和匹配参数FALSE之间缺失了必须的英文逗号分隔符,导致Excel无法把FALSE识别为第四个匹配参数,最终触发了默认的近似匹配流程。
- 第四个参数传入
- 你的查找区域列结构本身是符合VLOOKUP规则的:查找区域第一列(B列)是作为匹配基准的源日期列,第二列(C列)是待返回的数值列,这部分设置没有本质错误,只是匹配模式错位才导致了结果偏差。
内容的提问来源于stack exchange,提问作者gespinha
相关产品推荐
相关产品推荐

