财务妹子拿着两张表来找我,订单号顺序全乱的,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组合。