站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

实用Excel技巧分享:制作高效的搜索式下拉菜单

时间:2022-06-09 [网络编程]作者:fabuyuan 浏览:3 次

在之前的文章《实用Excel技巧分享:制作动态的甘特图》中,我们学习了Excel制作动态甘特图的方法。今天我们来聊聊Excel数据下拉菜单,介绍一下制作高效搜索式下拉菜单的方法,快来看看!

手机如何做表格:点击查看

工作中大家经常会用Excel数据验证制作下拉菜单,规范数据输入、节省数据输入时间。但是当下拉菜单的数据选项很多的时候,就会出现数据难找的困扰。比如下图,下拉菜单中的数据选项太多,通过拖动旁边的滚动条来“找出”需要的数据项很费时,直接降低了我们的工作效率。

那有没有办法解决这种选项多数据难找的问题呢?

有,我的方法就是搜索式下拉菜单!

就如同在百度上搜索,输入关键字后会弹出下拉菜单显示包含关键字的搜索题目供选择。我们要做的效果就是在单元格中输入关键字,然后点击下拉菜单,菜单中只显示包含关键字的数据,从而提高数据录入效率。

下图是我们本次教程的数据源。注意,必须对数据源按关键字排序,升序降序都可以。

选择E2:E6单元格区域点击【数据】选项卡,单击【数据验证】,在弹出的“数据验证”对话框的“设置”选卡中设置验证条件为“序列”。

在来源中输入公式:

=OFFSET($A$1,MATCH(E2&"*",$A$2:$A$17,0),0,COUNTIF($A$2:$A$17,E2&"*"),1)

公式说明:

这里主要使用OFFSET函数返回包含关键字的数据。OFFSET函数的作用是根据指定的参照单元格,通过给定的偏移量返回新的引用数据。

OFFSET(参照系,行偏移量,列偏移量,新引用区域的行数,新引用区域的列数)

  • 1.第一参数引用了A1单元格作为参照系。

  • 2.第二参数用MATCH(E2&"*",$A$2:$A$17,0)确定行偏移量。MATCH为查找函数,根据查找值E2&”*”(*号是通配符,代表任意不确定字符)在$A$2:$A$17区域中查找,查找方式为0(精确查找)。当E2单元格输入关键字时,该函数将查找出包含关键字的数据在$A$2:$A$17区域中第一次出现的位置。

  • 3.第三参数为0,因为我们的数据源只有A列一列,所以列偏移量为0,表示不偏移。简单来说,就是offset函数以A1单元格为参照,不横向偏移,只向下偏移。

  • 4.第四参数 COUNTIF($A$2:$A$17,E2&"*")统计A2-A17区域内满足条件E2&"*",也就是包含E2单元格内的关键词的单元格出现的次数,也就是最终在数据验证下拉菜单中一共会出现几行。

  • 5.第五参数为新引用区域的列数,因为只有A列一列,所以为1。

如下所示:offset函数以A1为参照系向下查找,通过match函数在A2-A17中找到包含E2关键字“碎花”的数据第一次出现的位置是从A2开始的第10行,再通过countif函数找到总共有3行,最终在下拉菜单中返回这3行1列的数据。

再回到教程当中。我们在“数据验证”对话框“来源”中输入公式后点击“确定”。但是当我们在E2单元格输入关键字“碎花”后,会立马弹出警告框,这是为什么呢?

原因是我们输入关键字“碎花”后,由公式得到的下拉菜单中没有只含“碎花”两个字的选项,所以会报错。

如下图所示,我们需要再次选择E2:E6单元格区域点击【数据】选项卡【数据验证】按钮进入到“数据验证”对话框中,在“出错警告”选卡中取消勾选【输入无效数据时显示出错警告】选项,然后点击“确定”即可。

最后在F2单元格输入公式=IFERROR(VLOOKUP(E2,$A$2:$B$17,2,0),"") 。使用VLOOKUP函数在A2-B17单元格区域中查找E2数值所在位置,并返回对应的第2列(也就是B列)库存,0代表精确查找。当查找不到返回错误值时用IFERROR函数将错误值转为空。

至此,搜索式下拉菜单就制作完成啦!

搜索式下拉菜单可以成倍提高数据录入效率,尤其是下拉菜单选项很多的时候特别高效。同学,赶紧打开你的excel去操作一下吧。

相关学习推荐:excel教程

以上就是实用Excel技巧分享:制作高效的搜索式下拉菜单的详细内容,更多请关注站长家园其它相关文章!

本文标签:  Excel

转载请注明来源:实用Excel技巧分享:制作高效的搜索式下拉菜单

本文永久链接地址:https://www.adminjie.com/post/13270.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • docker是容器吗

      docker是容器吗

      docker不是容器;容器是打包代码及其所有依赖的软件的标准单元,用于开发、交付和部署,使应用可以从一个环境快速可靠地运行到另一个环境,而docker则是容器技...

    • Github 上 8 个不可错过的 Vue 项目,快来收藏!!

      Github 上 8 个不可错过的 Vue 项目,快来收藏!!

      本篇文章给大家整理分享8个GitHub上很棒的的Vue项目,都是非常棒的项目,希望当中有您想要收藏的那一个。Github上8个很棒的Vue项目:Ma...

    • 分享一个有趣的php版本的扫雷!

      分享一个有趣的php版本的扫雷!

      本文给大家分享网友写的一个PHP版本的扫雷,挺有意思的,边玩边学习~github地址:https://github.com/maxiao64/MineWeepe...

    • docker容器重启后数据会丢吗

      docker容器重启后数据会丢吗

      docker容器重启后数据会丢失的;但是可以利用volume或者“datacontainer”来实现数据持久化,在容器关闭之后可以利用“-v”或者“–volu...

    • javascript可以对事件作出响应吗

      javascript可以对事件作出响应吗

      javascript可以对事件作出响应,因为可以将JavaScript设置为当某事件发生时才会被执行;事件也即发生在html元素上的事情,当在html页面使用J...

    热门文章