加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[Excel函数]有趣的CELL(二):制作模糊查询效果的数据有效性下拉菜

(2016-07-10 22:15:53)
标签:

杂谈

作者:Excelers(网名看见星光)

利用Excel的【数据有效性】功能制作下拉菜单应是表哥表姐耳熟能详的一个技能了。

咱们这期讲的内容是也和数据有效性有关,就是利用上期讲过的CELL函数(上期链接),制作具有模糊查询效果的动态下拉菜单。

这话到底啥意思呢,还是用动态图说话吧(点击下方GIF图)

http://ww3/large/005IRek6gw1f5k1mkk9smg30ci0dwwm7.gif



1 目标 

在A列某区域输入某个关键词,在数据有效性的下拉菜单里,显示出包含该关键词的数据。

2 材料

一份名单表。如下图D2:D10单元格区域,是六个男人三个女人的人名儿。

http://ww1/large/005IRek6gw1f5k1nfke58j307q08ygm4.jpg


2 制作过程

使用组合键<Ctrl Shift Enter>,在E2单元格输入数组公式,并向下填充到E10区域:

=INDEX(D:D,SMALL(IF(ISNUMBER(FIND(CELL("contents"),D$2:D$10)),ROW($2:$10),4^8),ROW(A1)))&""

这公式看起来很复杂的模样,长长的像老太太的裹脚布,但倘若您学习并掌握了我们之前推送的INDEX SMALL IF函数套路的文章(INDEX SMALL链接),理解起来就简单多了。

CELL("contents")

CELL函数省略了第二参数,获得最后更改单元格的值。

FIND(CELL("contents"),D$2:D$10)

FIND函数查询CELL函数的结果,是否在D2:D10单元格区域存在,如存在则返回一个位置数值,相反则返回错误值,生成一个内存数组,比如:{#VALUE!;4;4;2;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

IF(ISNUMBER(FIND(CELL("contents"),D$2:D$10)),ROW($2:$10),4^8)

ISNUMBER函数判断FIND函数的结果是否为数值,如为数值,则IF函数判断为真,返回相关值所对应的行号,如否,则返回值4^8,即65536。

=INDEX(D:D,SMALL(IF(ISNUMBER(FIND(CELL("contents"),D$2:D$10)),ROW($2:$10),4^8),ROW(A1)))&""

SMALL函数对IF函数的结果进行从小到大取数,随着公式的向下填充,依次提取第1、2、3、4……N个最小值,由此依次得到符合条件——包含最后更改单元格值的单元格的行号。

INDEX函数根据SMALL函数返回的索引值,得出结果。

当SMALL函数所得到的结果为4^8,即65536时,意味着符合条件的行号已经被取之殆尽了。此时INDEX函数将返回D65536单元格的值,通常来说,这么大行号的单元格是空白单元格,使用&“”的方式,规避空白单元格返回零值的问题,使之返回假空:””。

由于CELL("contents"),得到的是最后更改单元格的值,而编辑上述公式时的单元格即为最后更改内容的单元格,此时会造成循环引用,但不必理会。公式填充至E10单元格后结果如下:

http://ww4/large/005IRek6gw1f5k1p9d2atj308i09mmxz.jpg


3 制作过程(二)

选取设置下拉菜单的单元格区域A2:A9,点击【数据】选项卡中的【数据验证】(10版本之前名为【数据有效性】),在弹出的数据验证对话框中,单击【设计】选项卡【允许】输入框右侧的按钮,在下拉列表中选择【序列】;单击【来源】右侧的选取按钮选择工作表的数据区域:$E$2:$E$10。

单击【出错警告】选项卡,去掉【输入无效数据时显示出错警告(S)】的对勾。

最后【确定】之,便大功告成了。

http://ww4/large/005IRek6gw1f5k1q10gjfj30ft0sawj0.jpg


3 结束语  

挠头……那个……对于大部分表弟表妹来说,今天分享的内容难度系数确实有些偏高,想必有不少人云里雾里的,难点之处在于那条长长的裹脚布函数。关于INDEX SMALL IF的函数套路,坊间里戏称万金油套路,是熟通Excel函数必会的套路之一,由此可见它的强大,建议尽量掌握这个套路INDEX SMALL——

明天我们分享利用Excel函数快速将总表信息拆分到各个分表中,效果请看动画(点击下图动起来):

http://ww4/large/005IRek6gw1f5k1tzd3chg30ck0c7hdt.gif

转载请注明出处,谢谢。@EXCELERS

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有