EXCEL——Vlookup17个高级用法

ops/2024/10/20 8:49:00/

大纲

一、基本语法

1、参数详解

二、入门篇

1、单条件查找

2、屏蔽查找返回的错误值

三、进阶篇

1、反向查找

2、包含查找

3、区间查找

4、含通配符查找

5、多列查找

6、多区域查找

四、高级篇

1、多条件查找

2、合并单元格查找

3、带合并单元格的多条件查找

4、一对多查找

5、查找所有值放在一个单元格里

6、查找最后一个

7、跨多表查找

五、新版本中的最新用法

1、批量查找

2、多列批量查找

一、基本语法

=Vlookup(查找的值,查找区域或数组,返回值所在的列数,精确or匹配查找)

语法说明:

  • 查找的值:要查找的值
  • 查找区域或数组:包含查找值字段和返回值的单元格区域或数组
  • 返回值的在列数:返回值在查找区域的列数
  • 精确or匹配查找:值为0或False为精确查找,值为1或true时匹配查找。

二、入门篇

1、单条件查找

【例1】根据姓名查找基本工资

=VLOOKUP(G2,B:E,4,0)

注:

  • G2:是要查找的值
  • B:E:是查找区域。因为要查找的姓名在第2列,所以区域也要从B列开始。
  • 4:是基本工资在B:E区域中的第4列
  • 0:是精确查找

2、查找不到时返回空

【例1】根据姓名查找基本工资

=IFERROR(VLOOKUP(G2,B:E,4,0),"")

注:IFERROR函数可以把错误值转换为指定的值,本例公式中转换为空

三、进阶篇

1、反向查找

【例】根据姓名查部门

=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)

注:公式中用IF({1,0}把B列和A列组合在一起,并把 B列放在A列前面。

2、包含查找

【例】查找含“一”的姓名对应的基本工资

=VLOOKUP("*"&G2&"*",B:E,4,0)

注:查找值两边连接通配符*号可以实现包含查找

3、区间查找

【例】根据销量查找对应区间的提成

=VLOOKUP(D2,A:B,2,1)

注:当最后一个参数为1或省略时,可以实现匹配或区间查找。规则是查找比被查找值小且最接近的值,并返回对应N列(第3个参数)的结果。如下图所示查找180,在A列查找比180小且最接近的值是100,返回100对应的提成3%。

4、含通配符的查找

【例】型号查找单价

错误公式:=VLOOKUP(D2,A:B,2,0)

正确公式:=VLOOKUP(SUBSTITUTE(D2,"*","~*"),A:B,2,0)

注:把*用函数替换为~*后就可以正常查找了

5、横向多列查找

【例】根据姓名查找性别、年龄和基本工资

=VLOOKUP($G2,$B:$E,COLUMN(B1),0)

注:用Column函数生成动态数字,作为Vlookup第3个参数,一个公式向右复制即可查找全部

6、多区域查找

【例9】根据不同的表从不同的区域查询

=VLOOKUP(B2,IF(A2="销售一部",A5:B9,D5:E9),2,0)

四、高级篇

1、多条件查找

【例】根据部门和姓名查工资

=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)

注:先把A列和B列连接在一起,再用IF({1,0}把它和C列组合在一起构成8行2列的数组,作为Vlookup的第2个参数

2、合并单元格查找

【例】查找所在部门的奖金

=VLOOKUP(VLOOKUP("座",D$2:D2,1),A:B,2,0)

注:VLOOKUP("座",D$2:D2,1)可以返回D列截止本行的最后一个非空值。

3、合并单元格查找

【例】根据公司、产品查找对应价格

=VLOOKUP(F2,OFFSET(B$1,MATCH(E2,A:A,)-1,):C99,2,0)

注:用Match查找出部门所在行数,然后用offset函数向下偏移B1,进尔和C99构成一个动态的区域。更简单的说就是部门在哪一行,我就用Vlookup从哪一行开始向下找。

4、一对多查找

【例】查找出人事部所有员工

数组公式输入完成后按Ctrl+shift+enter结束后自动添加大括号

{=VLOOKUP(E$2&ROW(A1),IF({1,0},A$2:A$8&COUNTIF(INDIRECT("a2:a"&ROW($2:$8)),E$2),B$2:B$8),2,0)}

注:

  • ROW($2:$8)) :生成2,3,4,5,6,7,8
  • INDIRECT("a2:a"&row:生成行数逐渐增多的7个区域
  • COUNTIF(INDIRECT:在7个区域中分别计算部门的个数,相当于给人事部生成编号
  • IF({1,0}:把带编号的部门和B列构成7行两列的新数组

5、查找所有值放在一个单元格

【例】在G列设置公式,根据F列产品从左表中查找所有符合条件的价格并用逗号隔开。

公式:

  • E2=D2&","&IFERROR(VLOOKUP(C2,C3:E$12,3,),"")
  • G2=VLOOKUP(F2,C:E,3,)'

6、查找最后一个

【例】查找A产品最后一次进货价格

=VLOOKUP(1,IF({100,0},0/(B2:B10="A"),C2:C10),2)

注:Vlookup最后一个参数省略时,可以象lookup进行二分法查找,用0/(条件)把不符合条件的变成错误值,符合条件的变成0,然后用一个足够大的数查找。IF后兰色故意把常见的1写成100,想让大家知道这个只要是非0的数字都可以。

7、跨多表查找

【例】从各部门中查找员工的基本工资,在哪一个表中不一定。

方法1

=IFERROR(VLOOKUP(A2,服务!A:G,7,0),IFERROR(VLOOKUP(A2,人事!A:G,7,0),IFERROR(VLOOKUP(A2,综合!A:G,7,0),IFERROR(VLOOKUP(A2,财务!A:G,7,0),IFERROR(VLOOKUP(A2,销售!A:G,7,0),"无此人信息")))))

方法2:

=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"销售";"服务";"人事";"综合";"财务"}&"!a:a"),A2),{"销售";"服务";"人事";"综合";"财务"})&"!a:g"),7,0)

五、office365中的新用法

1、批量查找

在最新的office365版本,查找再多行只需要设置一个公式的

E2单元格

=Vlookup(d2:d12,A:B,2,0)

2、多列查找

多查查找也可以只设置一个公式

=VLOOKUP(A11,A1:E7,{2,3,5},0)


http://www.ppmy.cn/ops/98093.html

相关文章

迁移学习代码复现

一、前言 说来可能令人难以置信,迁移学习技术在实践中是非常简单的,我们仅需要保留训练好的神经网络整体或者部分网络,再在使用迁移学习的情况下把保留的模型重新加载到内存中,就完成了迁移的过程。之后,我们就可以像训练普通神经网络那样训练迁移过来的神经网络了。 我们…

Go语言基础--嵌套循环(多重循环)

嵌套循环可以让你在一个循环内部再嵌套另一个或多个循环。这种结构在处理多维数据(如二维数组、矩阵)或需要遍历多个集合时非常有用。 for 初始化语句1; 条件判断1; 更新语句1 { // 外层循环体 for 初始化语句2; 条件判断2; 更新语句2 { // 内层循…

Clearpool 推出 Ozean:专注 RWA 的高性能创新区块链

引言 真实资产(Real-World Assets, RWA)指的是诸如房地产、债券、股票等在现实世界中存在并具有价值的资产。随着 DeFi 的发展,加密创新者们开始探索如何将传统金融市场中的资产引入区块链世界,以扩展 DeFi 的应用范围。然而&…

pgsql清理表的oids选项

1. 生成脚本 SELECTn.nspname as "Schema",c.relname as "Table",c.relhasoids as "With OIDs", ALTER TABLE || n.nspname ||. || c.relname || SET WITHOUT OIDS; FROMpg_class cJOIN pg_namespace n ON n.oid c.relnamespace WHEREc.relk…

机器人走路的问题

public class Test52 {//假设有N个位置,记为1-N,N大于或等于2//开始机器人在M位置上(M为1-N中的一个)//如果机器人来到1位置,那么下一步只能向右来到2位置//如果机器人来到N位置,那么下一步只能向左来到N-1…

Oracle数据库中实现分页

在Oracle数据库中实现分页通常有以下几种方法,每种方法都有其适用场景和优缺点。 1. 使用ROWNUM ROWNUM是Oracle为结果集的每一行分配的一个唯一的数字,这个数字表示行被检索出来的顺序。但是,需要注意的是,ROWNUM是在结果集产生…

C学习(数据结构)-->二叉树

目录 一、树 1、概念与结构 2、相关术语 3、树的表示 孩子兄弟表示法: ​编辑​编辑 二、二叉树 1、概念与结构 2、特殊的二叉树 1)满二叉树 2)完全二叉树 3、二叉树的存储结构 1)顺序存储 2)链式结构 一、树…

Docker微服务实战Demo

通过IDEA新建一个微服务模块通过dockerfile发布微服务部署到docker容器 通过IDEA新建一个微服务模块 新建一个spring boot项目modulemvn package打成一个jar包 通过dockerfile发布微服务部署到docker容器 编写dockerfile构建镜像运行容器访问测试 编写dockerfile ## 继承…