四、查找类公式

(一)垂直查找
VLOOKUP 函数是 Excel 中的一个纵向查找函数,它可以按列查找并返回该列所需查询序列所对应的值。其语法为:=VLOOKUP(要查找的内容、要查找的位置、包含要返回的值的范围内的列号、返回表示为 1/TRUE 或 0/FALSE 的近似或精确匹配项)。 例如,左边是员工工资表数据,现在需要根据姓名查找匹配工资,我们使用的公式是:=VLOOKUP(F2,B:D,3,0)。这里查找值是 F2 单元格,查找数据区域需要从查找值所在的列开始,也就是 B:D 列,查找结果在第 3 列,最后数字 0 表示精确查找。 当查找不到数据的时候,会出现错误值,#N/A,我们可以在外面嵌套一个 IFERROR 公式,如果错误时,返回第 2 个参数,使用公式:=IFERROR(VLOOKUP(F2,B:D,3,0)," "),第 2 个参数双引号里面什么都不填,显示为空白。 如果结果列在查找列的左边,需要搭配 IF(1,0)构建虚拟数组得到结果,例如,我们需要根据姓名,查找匹配工号,使用的公式是:=VLOOKUP(F2,IF({1,0},B:B,A:A),2,0)。 如果需要根据多个条件查找匹配数据,如根据月份和姓名,两个条件,来查找匹配工资数据时,我们需要使用的公式是:=VLOOKUP(E4&F4,IF({1,0},A:A&B:B,C:C),2,0),两个查找值相连,用 IF(1,0)来构建 2 个查找列相连,查找到结果。 如果根据条件,一次性的匹配多个值出来,希望得到的结果顺序和原始数据保持一致的情况下,可以输入公式:=VLOOKUP( A:$D,COLUMN(B1),0),COLUMN(B1)表示数字 2,通过这种方式引用,可以自动的将结果列改成 3,4。 如果顺序不一致的情况下,就不能使用 COLUMN 公式了,需要搭配 MATCH 公式,直接定位到对应的列数,我们输入的公式是:=VLOOKUP( A: 1, 1: 1,0),0),注意相对引用的行或列。 VLOOKUP 函数还可以进行模糊查找匹配,根据业绩不同,奖励不同,需要快速的查找匹配出提成数据。我们只需要将每个业绩档位的最低标准列出来,做为辅助列,并对辅助列进行升序排列,然后使用公式:=VLOOKUP(C2,F:H,3,1),VLOOKUP 第 4 个参数是 1,表示模糊查找,即可完成数字区间的快速查找问题。 一对多查找时,例如需要根据部门数据,快速查找匹配所有员工名单。因为一个部门有多名员工,所以这种一对多查找匹配第一步,我们插入一个辅助列,输入的公式是:=D2&COUNTIFS( 2:D2,D2),累计计数,将每个部门的出现次数合并在后面。然后使用公式:=IFERROR(VLOOKUP( A:$E,3,0)," "),快速查找出来当前部门的所有员工数据。 查找值是简称,查找数据是全称时,我们需要搭配通配符进行查找匹配,使用的公式是:=VLOOKUP(" "&E2&" ",A:C,3,0)。(二)水平查找
HLOOKUP 函数是一个横向查找函数,解决的是从上到下的在行中查找的问题,可以在 Excel 表格或数值数组的首行查找指定的数值,并返回表格或数组中指定行的同一列的数值。其语法是“HLOOKUP(要查找的值,包含查找值的区域,区域中包含返回值的行号,[近似查找还是精确查找])”。 例如,我们要在 A1:K6 区域中提取 100003、100004、100005、100007、100010 五人的全年总计销量,并对应的输入到 N3:R3 中。使用 HLOOKUP 函数演示:首先在 N3 单元格输入“=Hlookup(”,第一个参数,我们要让 100003 对应的是 N2,这里就输入“N2,”;第二个参数,这里输入我们要查找的区域,即“ 1: 6,”;第三个参数,“全年总计”是区域的第六行,所以这里输入“6,”;第四个参数,因为我们要精确的查找工号,所以填“FALSE”。最后补全最后的右括号“)”,得到公式“=HLOOKUP(N2, 1: 6,6,0)”,使用填充柄填充其他单元格即可完成查找操作。
(三)多条件查找
LOOKUP 函数可进行多条件查找。例如,最近在 Excel 微信学习交流群中收到某位学员的问题咨询,问题是如何返回单据编号和物料长代码对应的含税数额。下面通过一个实例跟大家分享一下 LOOKUP 函数多条件查找的方法。 下表是某电商公司的客户投诉表,现在需要通过 A 表中的客户姓名与地区两个条件来查询 B 表中的产品型号,返回到 A 表的 E 列中。函数公式为:=LOOKUP(1,0/(A3= 3: 19) (B3= 3: 19), 3: 19)。公式解析:首先通过 A3 单元格与 B 表 I 列数据做对比,同时用 B3 单元格与 B 表 J 列信息做对比。在 excel 中如果两个单元格对比,相等则返回 TRUE,在四则运算中用 1 表示。如果不相等则返回 FALSE,使用 0 表示。那么(A3= 3: 19) (B3= 3: 19)这部分运算的结果就只有 0 或者 1 两种情况,因为只有 0 1、1 1、1 0 这三种情况。按照二分法原理,lookup 函数会在二分位处查找符合条件的数据。由于这组数据运算结果 0 和 1 的顺序是混乱的,所以用 0 来除以 0 和 1 的方式来区分。0/0 返回的是错误,0/1 返回的结果为 0。Lookup 函数在查找的时候是忽略错误的,所以只有数据运算结果为 1 的公式满足条件。那么 0/(A3= 3: 19) (B3= 3: 19)的目的就是将正确结果用 0 表示,其他的变成错误值,利用函数查找忽略错误这个特点完成查找。想了解更多精彩内容,快来关注