网站首页 > 技术文章 正文
相信经常使用EXCEL的小伙伴们,对VLOOKUP函数并不陌生。这个函数是我们最常用的几个函数之一。相信,小伙伴们,也经常会用到这个函数。这里,咱们玩点其他的。
首先,给大家准备了源数据。如图:
<1> 这里我们通过VLOOKUP函数来实现反向查询。
如图1,G2 和H2 是我们的需求。要求都使用VLOOKUP函数完成。
H2很好完成,公式H2=VLOOKUP(F2,$B$2:$C$11,2,0).
G2,因为姓名列在源数据中是在员工列的后面,直接使用VLOOKUP函数肯定不行,这里EK给大家把公式直接展示出来以后为小伙伴们分析一下。方便更好地理解。公式 G2 =VLOOKUP(B2,IF({1,0},B2:B11,A2:A11),2,0)
1、 如何理解公式首先,我们来拆解G2的公式,IF({1,0},B2:B11,A2:A11)表示的是2维数组,10行2列。如下图:
2、通过图2,小伙伴们很清楚地理解了。我们只是将B列和A列的顺序通过IF函数来进行调换位置,来达到我们的查询目的。
效果图:
到这里,反向查询已经完成。
<2> 查询一个部门的所有员工
首先,准备了一个数据源:
这里,给大家准备了2种方法。
第1种方法,需要在A列中增加一列辅助列。
效果图如图所示:
这里,先分别把公式贴出来,A2=COUNTIF(A2:$A$2,$F$2),表示,在A2到A2单元格中满足F2的个数,往下填充至A11,这里A11的公式变为,A11=COUNTIF($A$2:A11,$F$2) , 表示,在A2到A11单元格中满足F2的个数.
H列公式为:H2=IFERROR(VLOOKUP(ROW($A1),$A:$C,COLUMN(B1),0) ,"")
I列公式为:I2=IFERROR(VLOOKUP(ROW($A1),$A:$C,COLUMN(C1),0),"")
公式分析:看到,H2和I2的公式都是差不多的。ROW($A1),返回1,ROW($A2) 返回2,这里可以使我们的公式更好的重用.由此我们通过VLOOKUP和辅助列,将查找员工号和姓名,转换成查找部门在D2:D当前行号的F2出现的次数ROW。由此达到我们的查找F2部门所有员工的目的。
第2种方法:
如图:
这里,没有增加辅助列,使用的是数组函数
我们可以看到图8 中G2的公式外面有花括号,这里花括号不是手输的。而是在写好的公式上通过三个组合键CTRL+SHIFT+ENTER一起按得到的。
G2的公式:=IFERROR(VLOOKUP($E$2&ROW(A1),IF({1,0},$C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$E$2),A$2:A$11),COLUMN($B$1),),""),在公式写完以后CTRL+SHIFT+ENTER一起按。
同样,H2的公式:=IFERROR(VLOOKUP($E$2&ROW(B1),IF({1,0},$C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$E$2),B$2:B$11),COLUMN($B$1),),""),在公式写完以后CTRL+SHIFT+ENTER一起按。
然后一起往下填充。效果如图8 所示。
分析公式:
1、H列和G列的公式类似,这里只分析G2,分析之前将G2公式分解。INDIRECT("c2:c"&ROW($2:$11)) ,返回的是单元格引用C2:C2,G3则返回C2:C3。
2、我们将组合函数 $C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$E$2),B$2:B$11) 是数组函数,我们在I列给大家展示一下。如图所示:
3、IF({1,0},$C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$E$2),A$2:A$11),第一个案例里已经说过,我们知道的是返回一个二维数组。如图:
4、VLOOKUP($E$2&ROW(B1),IF({1,0},$C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$E$2),B$2:B$11),COLUMN($B$1),),G2对应的$E$2&ROW(B1) 值为武技部1,G3对应的$E$2&ROW(B2)值为武技部2,这里相信小伙伴们就能理解了,在图10 的数组中利用VLOOKUP函数查找出对应的工号。
5、最后利用IFFEROR函数对整个函数进行防错,错误值显示“”,对G2和H2中公式往下拉可以得到图8的效果,目的完成。
分析完毕,如果小伙伴们还是不清楚的话,可以在评论区告诉我。我会尽最大努力帮助大家哦。最后,感谢小伙伴们的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,你们不清楚的地方我会尽力为小伙伴们解答,谢谢小伙伴们的支持。我会给小伙伴们带来更多关于EXCEL的小技巧。
- 上一篇: LOOKUP中0,1是什么鬼,困扰我多年的疑惑,这课讲明白了
- 下一篇: word中公式输入方法
猜你喜欢
- 2025-01-18 弱类型语言的php对于 0 、"0"、"000" 、"00" 判断与处理问题
- 2025-01-18 word中公式输入方法
- 2025-01-18 LOOKUP中0,1是什么鬼,困扰我多年的疑惑,这课讲明白了
- 2025-01-18 Excel – 在多个匹配结果中,按规定查找出第n个结果
- 2025-01-18 从入门到提高一一函数定义域
- 2025-01-18 C语言return 0一定要有吗?
- 2025-01-18 什么是0℃恒温器?
- 2025-01-18 VLOOKUP函数只能从左向右匹配查找?与IF函数搭配实现逆向查找
- 2025-01-18 TCP连接状态的多种判断方法
- 2025-01-18 吞没选股指标(选股指标)
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 511℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 487℃MySQL service启动脚本浅析(r12笔记第59天)
- 467℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 465℃启用MySQL查询缓存(mysql8.0查询缓存)
- 445℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 424℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 421℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)