Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 新闻动态
  • Excel资源
  • 关于我们

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中交流网 联系方式

QQ:18449932 


网  址:www.excel-cn.com  

当前位置:网站首页 > Excel教程 > Excel函数
Excel函数

Office里的查找替换——函数一对多查找

摘自:小妖-Office中国

昨天发了多对一查找的技巧,今天来说说一对多查找:

所谓一对多查找,就是满足一个条件的有N个结果……

先看下面的效果图,从符合的条件中找出多个符合的结果。

效果图:

Excel技巧



函数一对多查找动态图:

Excel技巧


函数一对多查找函数公式:

=INDEX(B:B,SMALL(IF(A$3:A$12=D$3,ROW($3:$12),13),ROW(A1)))&""

这是一个数组公式,需要同时按下【Ctrl】+【Shift】+【Enter】三个键完成才行,而且运行速度也相对慢,所以实在不提倡在现实中使用。


函数分析:

公式中A$3:A$12=D$3部分建构了一个内存数组,结果都为逻辑值,当A5:A14中有与D5相等的,也就是满足条件的,返回逻辑真TRUE,否则返回逻辑假FALSE。


公式中IF(A$3:A$12=D$3,ROW($3:$12),13)部分建构的还是个内存数组(废话),只不过就是把前面的逻辑值换成了数值,逻辑真对应的是3到12的序列数,逻辑假对应的是13,为什么是13?

话说这个13弄晕一堆人啊,被晕的原因主要是想复杂了,其实他就是个比12大的数,也不一定非要是13,多少都行,只要不超过2的20次方(Excel最大行数)。


公式中的SMALL(IF(A$3:A$12=D$3,ROW($3:$12),13),ROW(A1))部分,就是把If折腾出现的那些数从小大到排一下,这样,不符合条件的就被挤到了最后。


公式中的INDEX(B:B,SMALL(IF(A$3:A$12=D$3,ROW($3:$12),13),ROW(A1)))部分,不用多说了,就是把B列对应的符合条件的行数的单元格一个一个提出来呗。这里不一定非要用Index,Indirect和Offset都可以,只不过本身函数集团那BT的省字符的原则,Index是首选。

 

这公式虽然复杂且运行速度慢,但他却是非常经典的一个思路,也不知道是哪位高人想出来的,向他致敬!


点击加入群:Excel部落2  结识Excel大神
学好Excel,效率成倍提高,薪水稳步增长,职位快速提升
每天一个源创技巧,如觉得有用,请点上面 关注。更重要手机转发分享



如喜欢此技巧,手机右上角点开,分享到QQ空间,方便自己以后看







点击次数:  更新时间:2017-01-19 16:26:17  【打印此页】  【关闭】
上一条:Office里的查找替换——函数多对多查找  下一条:Office里的查找替换——函数多对一查找
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

中山市天鸣科技发展有限公司 版权所有 1999-2024 粤ICP备10043721号

QQ:18449932

免费Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表、Excel VBA

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn