excel如何利用数据验证制作模糊匹配的下拉列表
发布时间:2023-12-15 07:19:21
对于Excel的参照性输入,我们一般会使用数据验证里面的序列功能。常规下我们用作系列的数据源无非就是一个数据列表。但这种处理有个很大的问题,那就是如果系列里面的数据项太多,那么在下拉列表里面非常难以查找,他就会变成如下图这般,很多个列表项目全部混在一起,需要用滚动条不停的滚动才能找到。
以上这种常规的做法效率非常低,体验并不好,那么有没有一种快速定位列表项的办法呢?当然有,且看下面我们怎么实现它。
1、建立数据列表项目的数据源。
在此,为了更加快速的输入,我们采用助记码方式,而非直接输入汉字。毕竟字母输入的效率肯定比汉字输入要高。
2、设置数据验证
具体办法是在需要做下拉列表的地方做数据验证,这里我就不废话了。毕竟大家都知道如何操作。这里最关键的地方有两点:
第一点,就是数据来源的设定。结合上表,我们在此输入的数据来源的公式为:
=OFFSET($B$1,MATCH("*"&E2&"*",$C$2:$C$11,0),0,COUNTIF($C$2:$C$11,"*"&E2&"*"))
该公式就不做过多解释了,这里不是Excel函数教育的地方。
第二点,出错警告这里必须去除选项,否则直接没法完成查找引用。
3、实际使用场景
在此,我们在做完数据验证的E2单元格输入助记码“tk”,然后单击下拉框,于是就自动列出了包含助记码为“tk”的项目名称。当然了,这里助记码是不分大小写的。助记码可以输入任意字符完成模糊匹配
4、深化助记码
执行到第三步时,实际上已经完全可以使用了。但鉴于用户体验的问题,如果还想更进一步,那么助记码这个都可以使用自定义函数来自动生成。当然了,如果不愿意使用自定义函数,则仍然可以使用手工编制助记码。但更推荐这种使用函数自动对全字段取码的方式,因为这个是全字段拼音简码,匹配的范围要比部分拼音码要更宽一些。
函数取码的效果如下:
当然了要实现以上自动生成汉字拼音首字母,我们得先用VBA做一个自定义函数“PinYin”。如下图,在VBA编辑器里面插入一个模块,然后输入如下代码:
Function PinYin(ByVal Expression) As String
Dim lngI As Long
Dim strWord As String
Expression = Trim$(IIf(IsNull(Expression), 0, Expression))
For lngI = 1 To Len(Expression)
strWord = Mid$(Expression, lngI, 1)
Select Case Asc(strWord)
Case -20319 To -20284: PinYin = PinYin & "A"
Case -20283 To -19776: PinYin = PinYin & "B"
Case -19775 To -19219: PinYin = PinYin & "C"
Case -19218 To -18711: PinYin = PinYin & "D"
Case -18710 To -18527: PinYin = PinYin & "E"
Case -18526 To -18240: PinYin = PinYin & "F"
Case -18239 To -17923: PinYin = PinYin & "G"
Case -17922 To -17418: PinYin = PinYin & "H"
Case -17417 To -16475: PinYin = PinYin & "J"
Case -16474 To -16213: PinYin = PinYin & "K"
Case -16212 To -15641: PinYin = PinYin & "L"
Case -15640 To -15166: PinYin = PinYin & "M"
Case -15165 To -14923: PinYin = PinYin & "N"
Case -14922 To -14915: PinYin = PinYin & "O"
Case -14914 To -14631: PinYin = PinYin & "P"
Case -14630 To -14150: PinYin = PinYin & "Q"
Case -14149 To -14091: PinYin = PinYin & "R"
Case -14090 To -13319: PinYin = PinYin & "S"
Case -13318 To -12839: PinYin = PinYin & "T"
Case -12838 To -12557: PinYin = PinYin & "W"
Case -12556 To -11848: PinYin = PinYin & "X"
Case -11847 To -11056: PinYin = PinYin & "Y"
Case -11055 To -10247: PinYin = PinYin & "Z"
Case Else: PinYin = PinYin & strWord
End Select
Next
End Function
完成以上自定义函数之后就可以在工作簿内调用该函数了。
如此,在参照输入时,只需输入拼音简码,即可快速定位列表项目,比简单的列表要高效得很多。


猜你喜欢
- 无论是作为一个老师还是工作人员,总会有给学生或者是其他的听者讲解PPT的时候,但是有时候碰到比较重要的部分,我们会习惯性的将其标注出来,就好
- 在使用WPS文字软件编辑电子文档的时候,为了提高编辑的速度,经常会使用查找和替代功能,那么WPS文字如何批量查找及替换呢?下面小编告诉你怎么
- Win11相较于Win10有一个改变就是开始菜单完全不同,,它为操作系统带来了更像平板电脑的主屏幕。那想要设置自己喜欢的开始菜单样式,要如何
- 在做工作表的时候,为了让大家能够更加看的更加清楚,更加好看,或是突出表格中某块资料的重要性。往往会在表格中的该部分背景添加填充色。一般的填充
- CAD软件中鼠标中键不能平移怎么办?最近有用户反映在使用CAD软件时,无法使用鼠标滚轮的平移功能,该如何解决这个问题?下面给大家介绍Auto
- win7系统开机遇到蓝屏属于常见故障问题之一,大家主要根据提示的蓝屏代码解决问题,早期教程讲解很多关于蓝屏的方法。这不有位win7 64位系
- Win10对比win7系统合并精简了某些功能,比如版本信息等,虽然很多时候版本信息对用户来说没有需求,但是在某些情况下还是要知道了解的,那么
- 近期有部分用户误删了d3dx9_40.dll,被系统提示“找不到d3dx9_40.dll”。那么对于这一情况有没有什么办法恢复呢?下面小编就
- 最近有很多用户在安装了win10 9月更新的KN5005565补丁后出现了打印机各种问题?如连接不上、连接错误等等,收到错误代码 0x000
- Win10系统中内置了Hyper-V虚拟机,这个虚拟机可以在Win10中直接打开。只不过有些用户不知道怎么打开Win10 Hyper-V,本
- 最近有使用windows7旗舰版系统用户跟小编反映说自己在网上下载安装软件后,每次开机这些软件就会自动启动运行,不仅每次都需要手动关闭这些窗
- 我们平时要在Win10专业版安装新的字体,但很多用户都不知道Win10系统的字体文件夹路径在哪,对于这个问题,小编今天就来跟大家说说解决的办
- 一图胜千言,图片是PPT必不可少的元素。我们在制作PPT过程中,为了使PPT更加美观、更具创意,常会应用异形图片来展示。但很多时候,很难找到
- 我相信很多人对分的汇总这个词都不陌生吧,因为我们在Excel中制作数据透视表的时候,经常会用到这个分类汇总。那么,我们如何在数据透视表中显示
- 微软终于修复了导致部分 Windows 10 October 2020 功能更新设备随机重启的问题。微软还移除了“兼容性阻止”,意味着会有更
- 我们在使用麦克风的时候,是不是会发现某些电脑对着麦克风发声有回声?那是因为我们在声音设置里面打开了“麦克风”下面的选项,以前的我很多时候把这
- Word2016图片大小怎么设置?下面小编给大家带来Word2016精确编辑图片尺寸教程,需要的朋友可以参考下Word2016添加图片时,有
- 现在,谷歌又将炮口对准Windows,该公司提前公布了一个Windows的严重漏洞,此举让微软措手不及,报道称,谷歌在10月最后一天公布了W
- 如何让Word文字旋转?怎么将文字旋转90°?本期Word小编与大家分享相关的小技巧。1、文字旋转在哪里设置?选中文本,点击布局——文字方向
- 在Excel工作表中滚动有不同的方式。可以使用箭头键、滚动条或鼠标在各单元格之间移动和快速移动到工作表的不同区域。在Excel工作表中滚动有