在 Excel 的函数中,有一大类是“查找”相关的操作。

lookup - 从下往上查找值

Lookup函数默认的查询操作即为从下往上查询,会自动查询出最后一条数据。

vlookup - 从上往下查找值

这是一个比较经典的函数,用于处理简单的值对照查找很易用。但遇到反向、双向等复杂的表格查找就头痛了。
与 lookup 的区别在于 vlookup 函数如果有相同数据的时候,会默认从上往下查询第一条数据。

技巧:第一个参数填多个值

如下图所示,要求在E列设置公式,根据D列的商品名称从左表中查找对应的入库价格。
查找值的函数 - 图1
99%的用户都会这样写公式,在F2单元格中输入公式,然后再向下复制公式
=VLOOKUP(D2,A:B,2,0)
查找值的函数 - 图2
复制Vlookup公式有一个很大的弊端:很多人会因为引用区域没绝对引用而出错。
而如果则把E2公式修改为: =VLOOKUP(D2:D12,A:B,2,0)
第一个参数引用D列所有值后,会现在 F列返回所有商品的入库价格
查找值的函数 - 图3
公式这样写不需要再向下复制,也不会因为少了$出错。除此之外,还有一个明显的好处,公式需要修改时,只需要改动第一个单元格中的公式。
查找值的函数 - 图4

match - 查找值所在位置

语法

MATCH(待查询信息,数据所在区域,查询模式)

案例

MATCH函数在查找时和VLOOKUP用法类似,区别是MATCH是返回位置,VLOOKUP是返回值。
在A列查找王大辰的所在行数
查找值的函数 - 图5
公式: =MATCH(D2,A:A,0)

index - 根据位置查找值

语法

INDEX(表格区域,行坐标,列坐标)

案例

INDEX函数可以根据指定的位置提取值。
查找返回A列第5行的值
查找值的函数 - 图6
公式 =INDEX(A:A,5)

index + match - cp搭配干活不累

index 和 match 两个函数是我们常说的“查找”双 CP,他们俩功能的互补性注定谁也离不开谁。
如下图所示,要求根据产品名称,查找编号。

案例:组合反向查找

查找值的函数 - 图7
分析:
先利用 Match 函数根据产品名称在C列查找位置
=MATCH(B13,C5:C10,0)
再用 Index 函数根据查找到的位置从B列取值。完整的公式即为:
=INDEX(B5:B10,MATCH(B13,C5:C10,0))

案例:双向查找

如下图所示,要求根据月份和费用项目,查找金额
查找值的函数 - 图8
分析:
查找费用项目所在行:
=MATCH(B10,$A$2:$A$6,0)
查找3月份所在列:
=MATCH(A10,$B$1:$G$1,0)
最后用INDEX根据行数和列数提取数值
INDEX(区域,行数,列数)
=INDEX(B2:G6,MATCH(B10,$A$2:$A$6,0),MATCH(A10,$B$1:$G$1,0))

案例:多条件查找

如下图所示,要求根据入库时间和产品名称,查找入库单价。
查找值的函数 - 图9
分析:
由于match的第二个参数可以支持合并后的数组所以可以直接进行合并查找:
=MATCH(C32&C33,B25:B30&C25:C30,0)
查找到后再用INDEX取值
INDEX(D25:D30,MATCH(C32&C33,B25:B30&C25:C30,0))
由于公式中含有数组运算(一组数同另一组数同时运算),所以公式需要按ctrl+shift+enter三键完成输入

xlookup

filter

https://zhuanlan.zhihu.com/p/201017341