- ?
Excel里的所有查找公式全在这里!转需!
弃深爱
展开
在需要查找时,很多童鞋会首先想到VLOOKUP函数。但有时候仅仅只会VLOOKUP函数是远远不够的。今天小编为大家进行了一次全面的整理,一起来看吧!
一、普通查找
查找李晓峰的应发工资。在对应单元格中输入“=VLOOKUP(H2,B:F,5,0)”
示例图二、反向查找
查找吴刚的员工编号。在对应单元格中输入“=INDEX(A:A,MATCH(H2,B:B,0))”
示例图三、交叉查找
查找3月办公费的金额。在对应单元格中输入“=VLOOKUP(H2,A:F,MATCH(I2,1:1,0),0)”
示意图四、多条件查找
查找上海产品B的销量。在对应单元格中输入“=LOOKUP(1,0/((A2:A7=E2)*(B2:B7=F2)),C2:C7)”
示意图五、区间查找
根据销量从右表中查找提成比率。在对应单元格中输入“=LOOKUP(A2,$D$2:$E$5)”
示意图六、双区间查找
根据销量和比率完成情况,从表中查找返利。
在对应单元格中输入“=IDNEX(B3:F7,MATCH(D11,A3:A7),MATCH(E11,B2:F2))”
示意图七、线性插值
求数字8所对应的系数值。在对应单元格中输入“=TREND(OFFSET(B1,MATCH(D3,A2:A6,1),,2,1),OFFSET(A1,MATCH(D3,A2:A6,1),,2,1),D3)”
示例图八、查找最后一个符合条件记录
查找A产品最后一次进价。在对应单元格中输入“=LOOKUP(1,0/(B2:B9=A13),C2:C9)”
示例图九、模糊查找
根据提供的城市从表中查找该市名的第2列的值。在对应单元格中输入“VLOOKUP("*"&A7&"*",A1:B4,2,0)”
示例图十、匹配查找
根据地址从表中查找所在城市的提成。在对应单元格中输入“=LOOKUP(9^9.FIND(A$3:A$6,A10),B$3:B$6)”
示例图十一、最后一个非空值查找
查找最后一次还款日期。在对应单元格中输入“=LOOKUP(1,0/(B2:B13<>""),$A2:$A13)”
示例图十二、多工作表查找
从各部门中查找员工的基本工资,在哪个表中不一定。
方法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)
示例图十三、一对多查找
根据产品查找对应的所有供应商。在A2单元格中输入“=B2&COUNTIF(B$1:B2,B2)”;
在B11单元格中输入“=IFERROR(VLOOKUP($A11&COLUMN(A1),$A:$C,3,0),""”
示例图十四、查找销量最大的城市
查找销量最大的城市(数组公式按ctrl+shift+enter三键输入)
在对应单元格输入“{=INDEX(A:A,MAX((MAX(B3:B7)=B3:B7)*ROW(B3:B7)))}”
示例图十五、最接近值查找
根据D4的价格,在B列查找最接近的价格,并返回相对应的日期。(数组公式按ctrl+shift+enter三键输入)
在对应单元格输入“=LOOKUP(1,0/MIN(ABS(B3:B7-D4))=ABS(B3:B7-D4))*ROW(B3:B7),A3:A7)}”
示例图十六、跨多文件查找
文件夹中有N个仓库产品表格,需要在“查询”文件完成查询。
仓库表样式
在查询表中设置公式,根据产品名称从指定文件中sheet1工作表查询入库单价。在对应单元格输入“=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT("["&{"仓库1";"仓库2";"仓库3"}&".xlsx]sheet1!a:a")A2),"["&{"仓库1";"仓库2";"仓库3"}&".xlsx]sheet1")&"!a:b"),2,0)”
平时会用到的查找公式基本就这么多了。其中有不少公式需要有一定基础才能看懂,如果不太明白可以先套用,日后慢慢理解。
今天的Excel查找公式就讲到这里了,这些内容对于你的工作或学习有没有帮助呢?如果你有任何问题,记得在评论区留言,小编看到后会第一时间回复。
- ?
excel中index和match函数定位查询信息,比你想象的简单!
亦难
展开
之前有位学员来上课的时候,小编听到她在抱怨说看了半天index函数和match函数,但是不知道该怎么样去使用它们?确实这两个函数看着挺简单,分开使用也还好,但是想要发挥最大的效果就必须要交叉使用才可以。
精确定位:MATCH函数
MATCH函数(lookup-value,lookup-array,match-type),返回查找内容所在的位置。
lookup-value:表示需要查找的值,数组或单元格引用都可以;
lookup-array:表示包含所要查找数值的区域,数组或数组引用;
match-type:表示用于精确查找或模糊查找。取值为-1、1、0 。其中0为精确查找。
检索查询和交叉查询:index函数
INDEX函数(array,row-num,column-num),返回制定位置中的内容。
array:要查找值的单元格区域或数组;
row-num:返回值所在的行号;
column-num:返回值所在的列号(行号和列号有一个即可)。
实训习题:
左边是公司所有人员的信息统计表,右边是我们需要查找的信息。我们想用名字去查找这个人所在的部门。
我们需要将名字所在的位置使用match定位出来,再和index函数配合使用。选择姓名所在位置,再选择姓名所在单元格范围,使用精确定位即可。
在使用了match后,在使用index函数会出现这样的对话框,选择第一个点击确定即可。配合index函数,选择部门所在单元格范围即可完成操作。
当然在使用函数的过程中,小编也犯了一个错误,就是没有使用绝对应用,到时候出现的结果会不正确,所以我们需要在要改变的数据前面加上$锁死数据。
- ?
Excel多表汇总与 SQL查询语句
依波
展开
同学们好啊 ,首先以实例讲解一下怎样合并多表的数据。
数据源文件中有三个表,分别是一组、二组、三组,里面有各个销售员的销售数据。
Step 1、建立连接并获取数据
点击【数据】选项卡下面的“现有连接”。
在弹出的对话框中点击左下角的“浏览更多”按钮,找到数据所在的文件,会弹出以下对话框。
任意选择一个表并点击“确定”按钮就可以了,因为后面还要更改成查询语句。
在弹出的对话框中可以选择显示列表或者直接创建数据透视表,并且可以指定数据显示的位置。
这里选择“表”,这样我们就建立了链接并初步导入了数据。
Step 2、修改查询语句
在上一步中得到的数据区域,点击右键,选择“表格”-->“编辑查询”。
在打开的对话框中输入查询语句:
Select "一组" as 数据来源,* from [一组$] union all
Select "二组" as 数据来源,* from [二组$] union all
Select "三组" as 数据来源,* from [三组$]
这样就完成了多表汇总,是不是感觉很简单呢?
最后和大家分享一些常用的SQL查询语句,到时候可以适当修改一下代码中的工作表名称,就可以应用到自己的工作中了。
常用查询SQL语句示例
1、查询名称为Data的表中的所有字段的数据
Select * from [Data$]
注意:Excel工作表名称后面需要加上美元符号$,并且需要放到方括号[]中;星号*表示查询所有字段的数据。
2、查询名称为Data的表中的“销售员”和“销量”两个字段。
Select [销售员],[销量] from [Data$]
注意:字段名称可以不加方括号,但是当字段名称中间有空格、字段名是SQL语句中的保留名称等特殊情况时就必须要加方括号;在查询时,只要表中有这些字段就可以了,不用管这些字段的前后顺序。
3、查询名称为Data的表中销售员Lily的销售信息
Select * from [Data$] Where 销售员="Lily"
注意:需要指定条件时就用Where语句,多个条件用And、Or连接,分别表示并且、或;条件格式为[字段名]=“具体内容”,操作符可以是=、>、=、In,比如:销售员 in ("Lily","Cherry")。
4、查询名称为Data的表中销售员Lily的销售总额
Select 销售员,Sum(销量) as Lily的总销量 from [一组$] Where 销售员="Lily" group by 销售员
注意:进行汇总的时候,可以直接用Sum、Group by;在select中出现的字段,如果这个字段是汇总字段,则这个字段必须加到Group by里面;Sum函数是求和,也可用其他功能函数,比如:平均值AVG、计数Count、最大值Max、最小值Min;As可以重命名字段。
5、查询名称为Data的表中D5:F200区域的数据中销售员和销量两个字段
Select [销售员],[销量] from [Data$D5:F200]
注意:在Data$后面加上区域的地址,如果不知道最后一行是多少,或者为了让数据区域是动态的,可以省略最后一行的行号,如下。
Select [销售员],[销量] from [Data$D5:F]
6、查询名称为一组、二组、三组三个表中的所有数据
Select "一组" as 数据来源,* from [一组$] union all Select "二组" as 数据来源,* from [二组$] union all Select "三组" as 数据来源,* from [三组$]
注意:有需要合并的表,就用union all连接起来,一般最多不能超过50个。
在输入SQL语句时,各种符号一定要在英文状态下输入,否则你可能半天都检查不出来错在哪儿;如果使用星号*,那几个表中的数据字段顺序要一致、数据区域大小要一致,如果直接指定字段名称,则不受此限制。
7、查询名称为一组、二组、三组三个表中销售员Lily和David的所有数据
select * from (Select * from [一组$] union all Select * from [二组$] union all Select * from [三组$]) where 销售员 in ("Lily","David")
注意:可以在一个查询语句的外面在嵌套上另外一个查询语句,表示从查询结果中再次查询。
8、查询名称为Data的表中的所有字段的数据并按照日期排序
Select * from [Data$] order by 日期
注意:排序用order by,默认是升序,加上DESC表示降序,DESC是descending的缩写。降序示例:order by 日期 Desc
End.
文章转载自:Excel轻松学
- ?
Excel动态查询员工基本信息和照片,这样做,轻松快速搞定!
夏蓉
展开
应用场景:
前两天分享的教程中,介绍了HR创建带照片的员工档案信息表的方法,有小伙伴在问,有没有办法创建一个查询表,随时动态查询员工的基本信息和照片呢?艳子今天就分享一个Excel动态查询员工基本信息和照片的方法。
效果一:通过下拉列表查询(适用于人数或类别少的情况)
效果二:输入姓名或类别查询(适用于人数和类别较多的情况)
具体操作步骤:
1.建立带图片的员工基本情况表。可用往期教程分享的方法创建(《EXCEL插入3000名员工一一对应的照片,原来只要2钟?》可关注百家号“EXCEL学习微课堂”查看)
2、设计美化查询表。
3.在D3单元格建立下拉列表(效果二不用做此步)。
选D3单元格→数据→数据验证→序列→=员工基本情况表!$A$2:$A$8
4. 在F3单元格输入公式:=VLOOKUP($D$3,员工基本情况表!$A:$G,MATCH(E3,员工基本情况表!$A$1:$G$1,0),0),因为E3用的相对引用,其他的是绝对引用,所以可以直接复制公式到D4D5F4F5单元格)
公式说明:
①MATCH (目标值,查找区域,精确匹配0),通过MATCH函数来查找E3单元格“员工编号”在员工基本情况表!$A$1:$G$1的位置,即第几列。
②VLOOKUP(找谁,在哪找,返回第几列,0精确匹配),通过$D$3单元格的姓名查询相应的信息。
5. 定义名称“图片”。公式→定义名称→图片→引用位置中录入公式=INDIRECT("员工基本情况表!H"&MATCH(查询表!$D$3,员工基本情况表!$A:$A,0))
公式说明:
①"员工基本情况表!H"&MATCH(查询表!$D$3,员工基本情况表!$A:$A,0):即用"员工基本情况表!H"连接MATCH函数查询D3单元格姓名所在的行号,结果为员工基本情况表的某个单元格,比如D3为美女1时,公式返回的是员工基本情况表的H3单元格。
②INDIRECT函数是创建对命名区域的引用,如果查询出来的是H3,即为引用H3单元格。
③引用图片时需用定义名称的方法。
④比如D3为美女1时,通俗地讲就是G3单元格=员工基本情况表的H3单元格。
6. 粘贴一张图片到G3单元格,调整图片大小与单元格大小相同,选中图片,在编辑栏输入=图片,回车就大功能告成了,点选姓名检查下。
扩展应用:查询仓库物资、查询设备情况、查询产品信息等。
如果我的分享对您有帮助,欢迎点赞、收藏、评论、转发,您的支持是我坚持的动力,更多的EXCEL技能,可以关注百家号“EXCEL学习微课堂”。
与本教程相关的往期教程有:
1、《Excel插入3000名员工一一对应的照片到单元格,原来只要2分钟?》http://.baidu/builder/preview/s?id=1608241034449118412
2、《比Vlookup好用10倍的自定义函数VLOOKUPS,轻松解决VLOOKUP难题》http://.baidu/builder/preview/s?id=1605702288894014773
- ?
EXCEL工作表查找和替换时的常见问题与解决方法
又柔
展开
excel在excel软件中,查找和替换功能也是我们比较常用的功能,它可以帮我们快速定位到工作表我们所要查找的数据或文字内容,并且可以对其进行修改,绝对是查资料的一大神器。
在这里,因为下文的需要,我先对查找和替换的操作进行简单的概括:在office2016中,首先我们找到并点击【开始】选项卡,然后在功能栏最右边找到并点击【查找与选择】,在弹出的下拉列选项中,我们点击【查找】或【替换】,就会弹出查找和替换的对话框,这样我们就能进行查找或替换的操作了。具体操作如下图所示:
简单的查找和替换问题自然没有任何问题,我们在查找内容和替换为上填入具体的内容,然后就能万事大吉!但我这里有这样一个案例。
某地某班级对班里学生进行了出生地统计,统计好了却出了一个小问题,该班共有十个人来自“小港村”,因为习惯问题,有六个人只填了“小港”二字,最后也一起汇总填到了excel表上,但是学校有要求,出生地填写要清楚明白,所以现在的任务就成了把“小港”改为“小港村”。
大家肯定想到了,要用到excel里的查找与替换功能。ok,我们按照上面步骤先调出查找和替换的对话框,然后在查找内容后面填入:小港,在替换为后面填入:小港村,然后点击全部替换,ok?具体操作如下图所示:
错误案例试试证明真的不行,我们会发现我们给所有的“小港”和“小港村”做了次加法,当然有好消息“小港”变成了“小港村”,但坏消息是“小港村”变成了“小港村村”,这是为什么呢?想想也很容易,我们在查找内容后面填入:小港,那就意味着excel会帮你找到所有的“小港”,然后进行替换操作,这也就是“小港村”变成了“小港村村”的原因了。那么我们怎么规避这样的错误呢?正确的做法如下:
首先还是和上文一样,调出查找和替换的对话框,然后在查找内容后面填入:小港,在替换为后面填入:小港村。然后别急着操作,先点击查找和替换的对话框中的【选项】按钮,勾选【单元格匹配】,然后单击全部替换,这样“小港”变成了“小港村”,原本的“小港村”保持不变。这样我们的错误就完美解决了。具体操作如下图所示:
正确做法(PS:勾选【单元格匹配】后,excel工作表会以单元格为单位进行,而不是以文字为单位进行比对,这样就成功规避上面的问题)
觉得对你们有用的小伙伴们请点赞关注吧!您的鼓励是我前进的动力,也希望擅长运用办公软件的小伙伴们能够不吝赐教,积极的留言,教会小编更多的excel运用的小技巧,欢迎一起来探讨学习!!!
- ?
用Excel制作动态查询信息系统
收藏
展开
通过准备数据源以及查询表格两个步骤我们准备好了图片并批量导入了数据源表中。本篇我们就做出查询表。查询表的最终效果如下:
动态查询系统我们根据上一步骤完成的带有图片的数据源,做一个动态查询档案,输入姓名即可查询到照片、性别、出生日期等。做好了之后是这样的:怎么操作呢?步骤如下:(1)首先创建以下表格。
查询表格模版并且准备好数据源
数据源(2)在姓名对应的B3单元格输入“张飞”。
(3)接下来“性别”“出生年月”等其他信息的获取,我们根据姓名“张飞”采用一个公式来完成。在性别对应的B5单元格输入
查询公式性别: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A5,数据源!$1:$1,0)-1),"")
出生年月: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A8,数据源!$1:$1,0)-1),"")
血型: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A10,数据源!$1:$1,0)-1),"")
星座: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!D8,数据源!$1:$1,0)-1),"")
职业: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!D10,数据源!$1:$1,0)-1),"")
解析:
MATCH(查找内容,查找区域,0):表示查找第一个参数在第二个参数的位置,第三个参数为0代表精确匹配。这里分别返回的是B2单元格“张飞”在数据源A列(姓名列)对应的位置2和A3单元格“性别”在数据源第1行(标题行)对应的位置2。
OFFSET(参照位置,偏移的行位置,偏移的列位置):表示以第一个参数为位置参照,偏移到第二参数定义的行数和第三参数定义的列数所在的单元格,返回其值。这里的含义是以“数据源”表里的A1单元格为准,向下偏移2-1行向右偏移2-1列,获取到B3单元格值“男”。
在上述OFFSET函数中,如果B3单元格为空,则返回错误信息“N/A”。我们利用IFERR0R函数,当单元格返回错误“N/A”则输出为空值。因为后续还要查询“出生年月”“星座”等,所以公式中“查询!A10”这个是相对引用,其他都采用了绝对引用。 然后把这个公式复制应用到“出生年月”“星座”等对应的单元格里。注意修改相对引用项。
(4) 接下来我们要把图片动态引用过来。单击【公式】选项卡下的名称管理器旁边的“定义名称”。=INDEX(数据源!$G:$G,MATCH(查询!$B$3,数据源!$A:$A,0))在在弹出的对话菜单中,【名称】处输入“照片”,【引用位置】输入公式:=INDEX(数据源!$G:$G,MATCH(查询!$B$2,数据源!$A:$A,0))
定义名称解析:
MATCH:表示查找第一个参数,也就是姓名“张飞”单元格在第二个参数数据源姓名列的位置,返回3。INDEX(数据区域,数据位置):表示用第二个参数给出的位置在第一个参数中查找对应的值。上述公式的意思就是利用INDEX函数返回数据源G列(图片列)中对应行号(由MATCH函数获取)位置的图片。
(5)复制数据源表任意一张照片,粘贴到“查询”表的D3单元格。单击该照片,在编辑栏中输入公式:=照片,点击Enter。这样当B3单元格输入姓名后点击确定,对应的照片和其他信息就会一起动态更新了。注意:使用这种方法时,当姓名为空的时候或者姓名错误的时候,仍然会显示上一次操作之后的照片。 Ok,整个查询系统就建立好了。简单回顾一下:利用PS的动作批处理实现图像不变形下统一大小;利用表格标签table代码实现图像批量插入;利用INDEX函数定义“照片”实现照片的动态查询。其他信息的动态查询则是利用OFFSET函数实现的。
假如你学习到了这个新技能不妨转发推荐给你的小伙伴。并动动小指头收藏,以免下次走丢。
- ?
Excel全表查询,输入任一关键字都能查出符合条件的所有信息!
安定
展开
还在为如何实现输入表格中的任一关键字就能查询出符合条件的所有员工信息而烦恼吗?快来看看全表查询吧,输入姓名关键字、性别关键字、学历关键字、部门关键字等都能查出你想要的员工信息,而且不用VBA,不用数组公式,简单易学,效果咋样,请看效果图:
动态效果图:
设计思路:
1、用辅助列将所有员工信息合并到一起,通过find函数查找搜索的关键字是否包含在合并信息中,通过contif统计包含关键字的记录有多少条,再根据序号,用vlookup一对多查询,将所有符合条件的信息查询出来。
2、最后再用条件格式将包含查询关键字用红色字体标识出来。
实现步骤:
一、在员工基本情况表中增加合并辅助列、匹配判断辅助列和关键字出现次数辅助列
1.在员工基本情况表中增加合并辅助列。如下图所示,增加一个辅助列,将员工的姓名、员工编号、性别等都合并到辅助列。
Excel 2016版本可用快速填充法或新增函数CONCAT合并D2到J2,也可以用&连接符合并。其它版本可用&连接符合并。
C2单元格公式:=CONCAT(D2:J2)或=D2&E2&F2&G2&H2&I2&J2
2、在员工基本情况表中增加辅助列“匹配”判断
在B2单元格输入公式:=IFERROR(IF(FIND(查询表!$C$2,C2)>0,"▲",""),"")
公式解析:
FIND(查询表!$C$2,C2),查找查询的关键字在合并辅助列的位置。
IF(FIND(查询表!$C$2,C2)>0,"▲",""),如果查询到辅助列中有关键字,那FIND(查询表!$C$2,C2)查询的位置肯定是>0,如果>0,就显示三角形▲,否则就显示空。
IFERROR(IF(FIND(查询表!$C$2,C2)>0,"▲",""),"")如果辅助列中没有关键字就会出错,用IFERROR函数检查是否为错误,如果是错误就显示空,否则就显示▲
公式分步演示图:
3.计算关键字出现的次数
在A2单元格输入公式:=COUNTIF(B$2:B2,"▲")
公式解析:计算▲在匹配辅助列出现的次数
二、在查询表中建立查询并用条件格式设置关键字为红色字体
1、在查询表中输入序号(序号最好要多一点,能保证符合条件的记录最多时够用)
2、在F4单元格输入公式
=IFERROR(VLOOKUP($E4,员工基本情况表!$A:$J,MATCH(查询表!F$3,员工基本情况表!$A$1:$J$1,0),0),"")
3、向右填充后,再向下填充至出现空白即可。
4、选中查询表,点【开始】→【条件格式】→【突出显示单元格规则】→【文本包含】,设置单元格包含关键字中突出显示单元格的规则为浅红填充色深红色文本。
公式解析:
1、MATCH (目标值,查找区域,精确匹配0),MATCH(查询表!F$3,员工基本情况表!$A$1:$J$1,0),是通过MATCH找出F3姓名在查询表的第1行的位置,即第几列。因为姓名等标题行都是第1行,所以要锁定行,而基本情况表A1到J1是固定的,所以用绝对引用。
2、VLOOKUP(找谁,在哪找,返回第几列,0精确匹配),VLOOKUP($E4,员工基本情况表!$A:$J,MATCH(查询表!F$3,员工基本情况表!$A$1:$J$1,0),0),根据E列的序号用Vlookup从员工基本情况表中查询符合条件的信息。
动态演示图:
小伙伴们,是不是你最想要的全表格查询效果呢,赶紧试试吧!
如果我的分享对您有帮助,欢迎点赞、收藏、评论、转发,更多的EXCEL技能,大家可以关注“EXCEL学习微课堂”。如果需要全表格查询实例原文件的可留下邮箱或者私信联系我!
EXCEL学习微课堂分享的与全表查询相关的课程有:
1. Excel查找函数FIND,帮你从复杂的地址中提取城市、区和街道名!
2. Excel的IF函数还可以这样用,你知道吗?
比Vlookup好用10倍的自定义函数VLOOKUPS,解决VLOOKUP的难题!
- ?
Excel表格:利用lookup函数精确查找对应数据
阿比盖尔
展开
Excel中合并单元格,小编一直觉得是制表的大忌,让我们后续数据处理增加不少难度。但仍然还是有伙伴因为一些原因用了合并单元格。这位伙伴就是遇到这样的麻烦。询问Excel中合并单元格查询公式问题。
需要根据E2单元格的销售员,查询销售出去的订单对应的产品代码。
F2单元格公式为:=LOOKUP("座",INDIRECT("a1:a"&MATCH(E2,$C$1:$C$9,)))
公式有点小小的难度。一起来解读一下:
MATCH(E2,$C$1:$C$9,),查找E2在C列中是位置,返回5。
INDIRECT("a1:a"&MATCH(E2,$C$1:$C$9,)):返回引用单元格区域,得到值为:INDIRECT("a1:a"&5),即:a1:a5单元格区域。
LOOKUP("座",引用区域)代表:返回引用区域中的最后一个文本。在E2公式中是返回a1:a5单元格区域的最后一个文本,也就是A446580684。
- ?
利用了VBA神器,多工作表的大数据搜索,真的非常简单
李捕
展开
最近两周一直在讲解如何利用VBA,在EXCEL的多个工作表中进行大数据的查询。今天把两周的内容精炼总结一下,想利用这些程序的朋友,可以拷贝下面的代码,放在编译器中就可以直接使用啦。
1 Sub KK()
2 Sheets("SHEET1").Select
3 I = 2
4 Do WhileCells(I, 1) <>""
5 Cells(I,1).Select
6 TT =Cells(I, 1)
7 Cells(I, 2) = ""
8
9 SetFJX =Sheets("A").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
10 If NotFJXIs Nothing Then Cells(I, 2) = Sheets("A").Cells(FJX.Row, 2)
11
12 SetFJX =Sheets("B").Range("A1:A" &Sheets("B").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
13 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("B").Cells(FJX.Row, 2)
14
15 SetFJX =Sheets("C").Range("A1:A"&Sheets("C").Range("A1").End(xlDown).Row).Find(TT, AFTER:=[A1], LOOKAT:=xlWhole)
16 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("C").Cells(FJX.Row, 2)
17
18 Set FJX=Sheets("D").Range("A1:A" &Sheets("D").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
19 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("D").Cells(FJX.Row, 2)
20 I = I + 1
21 Set FJX =Nothing
22 Loop
23End Sub
代码截图:
工作表截图:注意名称
下面对代码进行逐行讲解:
1 Sub KK() ’KK给出程序的名称
2 Sheets("SHEET1").Select ’指选择sheet1的工作表,并进行操作
3 I = 2 ’是对变量i赋初始值,一般要用Dim i as Integer 进行声明。这里可以仅用Dim i, 也可以再简单点,直接用也行。但这不是说Vba是动态语言,相反,这恰恰说明了VBA作为静态语言的灵活性。
4 Do While Cells(I, 1) <> "" ’DOWHILE是一个循环,是循环的标识,回调语句是loop,WHILE跟循环条件,是指第i行第一个单元格不为空建立一个循环。 变量是i,条件是直到i行的第一个单元格是空值。
5 Cells(I, 1).Select ’要对第I行一个单元格定位,这也是为了程序具有可视性。
6 TT = Cells(I, 1) ’然后把它的值value取出赋給TT,这也是为了以后操作简单。这里TT也是直接用的,略去了声明语句。
7 Cells(I, 2) ="" ’要把第2个单元格清空,两个半角双引号,中间什么也没有就是空值,和空格不同,空格是" "。
8
9Set FJX=Sheets("A").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
’SET是令FJX等于一个值,(这里也应先给FJX 事先声明此程序略去了),
sheets("A")是指名称为A的那个工作表;
Range("A1:A"& Sheets("A").Range("A1").End(xlDown).Row)是指从A1单元格开始向下直到最后一个不为空的单元格区域;
Sheets("A").Range("A1:A"& Sheets("A").Range("A1").End(xlDown).Row)是指A的工作表中在A1到最后一个不为空的单元格区域;
Find(TT,AFTER:=[A1], LOOKAT:=xlWhole)要查找值为TT的单元格,在A1的after后开始查询,是完全匹配,把区域和之后的操作间隔一个。
这样就把查找的结果赋给了FJX。
10 If Not FJXIs Nothing Then Cells(I, 2) = Sheets("A").Cells(FJX.Row, 2)
’if then 语句, 如果...那么......。查询的结果放在FJX,FJX is Nothing就是说没有查到结果。给它一个逻辑否定,就是前面加个NOT,其意思就是FJX不为Nothing 就是查到了,查到了怎么办?fjx.Row是指查到数据的行号。Sheets("A").Cells(FJX.Row,2)就是在A工作表查到的行号的第2个单元格的值,Cells(I, 2) = Sheets("A")。Cells(FJX.Row, 2)即第i行第2个单元格的值将等于工作表A中查到的行号的第2个单元格的值 Cells(I, 2) 是哪个工作表呢?指Sheets("SHEET1")。
11
12 SetFJX =Sheets("B").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
13 If Not FJX Is Nothing Then Cells(I, 2)=Sheets("B").Cells(FJX.Row, 2)’这两行类似于第9第10行,是处理当在B工作表中继续查找的操作。当查到后会有第13行的操作,和第10行的操作一样,这里要注意:第一,xlwhole是指单元格完全匹配的查找。第二,连接字符串的符号是&,不可用加号,当用到.cells时前面要用With,现在还没有用到,以后会有。
14
15 SetFJX =Sheets("C").Range("A1:A"&Sheets("C").Range("A1").End(xlDown).Row).Find(TT, AFTER:=[A1], LOOKAT:=xlWhole)
16 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("C").Cells(FJX.Row, 2)
’15行和16 行是在工作表“C”中进行的查找,也就是说:首先在工作表“A”中查找,然后就在“B”中查找,再次在"C"中查找。一旦查找到就执行将此行的第二个单元格的VALUE赋给 Sheets("SHEET1")的工作表的I行第二个单元格值,这样就实现了在多个工作表中的查询。
17
18 Set FJX=Sheets("D").Range("A1:A" &Sheets("D").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)
19If Not FJX Is Nothing Then Cells(I, 2)=Sheets("D").Cells(FJX.Row, 2)
’18行和19 行是执行工作表D的查找。回顾一下,从第9行开始直到第19行总共运行了4个工作表
20I = I + 1 ’I值增加1
2121 Set FJX = Nothing ’另FJX为空准备下轮的查找
22 Loop ’程序回调到第4行 DO WHILE
23 End Sub ’程序结束。
有兴趣的朋友可以试着使用一下,如果好用别忘了分享。如果有改进,别忘了晒晒代码。
分享成果,随喜正能量
- ?
怎么搜索Excel中的全部工作表(sheet)
孟妙松
展开
使用Excel时,经常需要在表格中查找指定的数据或者文字等内容。当然,查找的操作比较简单,但Excel中默认只是在当前的工作表(Sheet)中进行查找。如果一个Excel工作簿(或者说是一个Excel文档)中有很多工作表,那么要想在所有的工作表中查找指定内容,默认设置下就需要逐个打开各个工作表,再逐个进行查找操作。这种情况时我们可以在查找时特别设置一下,让Excel在当前工作簿的所有工作表中进行查找,从而提高工作效率。下面以Excel2007为例介绍如何设置,以供参考。
●点击Excel中的“查找”或者按键盘的“Ctrl+F”组合键打开“查找和替换”对话框后,点击其中的“选项”按钮。
●点击选项按钮后,查找和选择对话框中会展开更多的选项。如果在“范围”选项右侧显示的是“工作表”,则说明现在设置的只是在当前的工作表中进行查找。如果想要查找所有的工作表,需点击“范围”右侧的下拉框。
●弹出下拉列表后,在列表中点击“工作簿”选项。即将查找范围设置成了当前工作簿中的所有工作表。
●然后再输入要查找的内容,点击“查找全部”按钮。如果想逐个显示查找结果,则需点击“查找下一个”按钮。
●点击“查找全部”按钮后,对话框下方会显示出查找结果列表,在其中的“工作表”列中会显示包含查找内容的工作表名称。在某个查找结果所在的行中点击鼠标,Excel就会自动打开对应的工作表,并且选中对应的单元格。
这个小技巧可以让我们在Excel工作簿中进行查找时更快速的找到需要的结果,提高工作效率。
excel查询表
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并