LOOKUP眼睛看懂了,手、脑却不听使唤,公式每次都错,扎心!

根据全称,查找简称对应的金额。

=IFERROR(LOOKUP(1,0/FIND($D$2:$D$44,A2),$E$2:$E$44),0)

可是一到你自己写,公式就变成这样,结果全出错。

价格表,B列是简称,也就是字符少的。

明细表,C列是全称,也就是字符多的,错误的公式:

=LOOKUP(1/0,FIND($C$2:$C$11,价格表!B6),价格表!$C$6:$C$10)

再来看下LOOKUP的语法:

=LOOKUP(1,0/FIND(字符少的,字符多的),返回区域)

1查找0,这个是固定数字,别去改,1和0中间是用逗号隔开,看清楚。1/0,1,0/是不同的。

FIND在查找的时候,字符少的放前面,这里字符少的是价格表的B列,选择区域的时候,只选有内容的区域价格表!$B$6:$B$10,别多选。

字符多的是明细表的C2

返回区域,这里的区域要跟前面的区域行数一样才行,也就是价格表!$C$6:$C$10

这样将这些全部重新组合起来,就得到正确的公式。

=LOOKUP(1,0/FIND(价格表!$B$6:$B$10,C2),价格表!$C$6:$C$10)

再来看昨天文章的最后一个案例,换个场景将COLUMN改成ROW就搞定,依然不懂。

查找订单号对应的所有货号。

=INDEX($H:$H,SMALL(IF($G$2:$G$1469=$A2,ROW($2:$1469),4^8),COLUMN(A1)))&""

模板。

公司,要根据开票单位(也就是模板里面的购方企业名称),引用对应的所有发票号码、发票金额。

直接复制原来的公式,然后修改区域就变成这样。

=INDEX(模板!B:B,SMALL(IF(模板!$C$7:$C$99=公司!$C$4,ROW($7:$99),4^8),COLUMN(A1)))&""

发票号码是向下生成,原来的案例是向右生成,向下就得用ROW获取序号。

这样正确的公式就出来了。

=INDEX(模板!B:B,SMALL(IF(模板!$C$7:$C$99=公司!$C$4,ROW($7:$99),4^8),ROW(A1)))&""

发票金额,就将B列改成O列就解决了。

=INDEX(模板!O:O,SMALL(IF(模板!$C$7:$C$99=公司!$C$4,ROW($7:$99),4^8),ROW(A1)))&""

手、脑很笨,平常学习的时候,要多练习几遍,实际工作的时候才能不出错。

推荐:至今已超过500人出错,LOOKUP函数这对括号问题,你被坑过没?

上文:身体不好,报表太多实在扛不住,我该怎么办?

你是否也遇到过看懂了,却做错?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

(0)

相关推荐