EXCEL还可以自定义属于自己的专属函数-志愿填报必看EXCEL自定义筛选方式,最多支持两个条件的模糊查询,虽然可以使用通配符,但无法满足多个包含条件的查询。这一点非常不友好,例如高考志愿填报中,我想筛选出所有符合条件的专业和学校,还是很难实现。虽然可以用VBA实现,但对于绝大多数朋友还是有点畏难心理。专业如:包含计算机、机械、电气、自动化、人工智能、工程、电子、核、数学、试验等关键字的专业,因为专业内容不统一,无法逐一勾选。今天教大家自定义一个模糊匹配的函数,函数名称可以随便命名,这里命名“匹配”,虽然也是VBA编程,但只要把代码复制过去就可以了,不用执行运行命令,不用看懂代码,和平时用公式一样使用。在EXCEL中按ALT+F11打开VBA编辑器,插入模块,复制下面代码即可:Set REG = CreateObject("VBScript.RegExp")
REG.Global = True
REG.Pattern = 条件区域
匹配 = REG.TEST(区域)
End Function
代码非常简短,为了防止代码丢失,请及时另保存为EXCEL 启用宏的工作薄.XLSM格式。
前五行为筛选条件,分别为所在地、专业包含、学校级别、最低分、最高分,其中前三个条件中,每个条件均包含多个关键字,关键字之间用|隔开,需要特别注意,包含任一个关键字均为满足条件,也就是关键字之间为或的关系。5个条件之间为AND的关系,必须全部成立才能符合要求。先看分数判断,这个比较简单,不用自定义函数,直接用AND搞定I8=AND(H8>=$B$4,H8<=$B$5);H8为最低分数,B4、B5为筛选分数区间,满足返回TRUE
所在地判断
J8=匹配(B8,$B$1);B8为所在地,B1为所在地筛选条件,满足返回TRUE
专业判断
K8=匹配(E8,$B$2);E8为专业,B2为专业筛选条件,包含返回TRUE
学校基本判断
L8=匹配(D8,$B$3);D8为学校级别,B3为级别筛选条件,包含返回TRUE
综合判断
M8=I8*J8*K8*L8;全部满足返回1
结果
最后对M列进行筛选,将数值为1的筛选出来,就是满足所有条件的专业和学校。如要更换条件,只需要在上面的条件区域更新关键字,重新筛选即可实现。