财务妹子拿着两张表来找我,订单号顺序全乱的,VLOOKUP一拖,出来的价格全错位,查了半天是中间插了一列,写死的列号全歪了。

为什么VLOOKUP总在列号上翻车

VLOOKUP第三个参数是手写死的列序号,表格中间加一列,这个数字就错了,还静默返回错误值,不报错,最坑。量小还能肉眼对,几千行根本看不出来。

VLOOKUP在A2查订单号,区域A到E列,第3列精确匹配

用MATCH把列号变成自动的

MATCH是找某个标题在第几列,正好替掉那个手写数字。让它去表头那一行找单价两个字,返回几就当几列用,表格加列也不怕。

VLOOKUP查订单号,列号用MATCH找单价所在列,精确匹配

减几取决于查找区域从第几列起,这个地方容易晕。稳妥的办法是区域直接从表头第一列开始写,MATCH整行找,减去起始列偏移。

MATCH三个参数别写错

  • 找什么:表头里的关键字,必须和表头文字一字不差,多空格就找不到
  • 在哪找:锁死表头那一行,公式下拉时别让它跑
  • 匹配方式:最后一个参数写0,精确匹配,写1会按排序模糊找,出大事

如果列在左边,干脆换INDEX套餐

VLOOKUP有个硬伤,只能从左往右找,要找的值在右边、返回左边的列,它做不到。这时候把VLOOKUP换成INDEX加MATCH,反向查找随便写,列号问题也顺带没了。

动手前先确认表头有没有合并单元格

合并过的表头MATCH经常找不到,多出来的空格和换行肉眼看不见。先取消合并、填充齐表头,再写公式,一次就能对上,别在错的表结构上反复调参数。

一句话取舍:表结构老变、经常加列,就上MATCH嵌套,要反向查,直接换INDEX加MATCH组合。