动态数组行业案例:帮公安干警提取车牌

清华学弟任泽岩

创作者俱乐部成员

困难如山,我有金山。

大家好,欢迎收看本期动态数组行业案例,我是学弟。

今天学弟收到了公安汪警官的求助:

平民百姓有困难,人民公安挺身而出!

人民公安有需求,清华学弟贡献绵力!

我们来梳理一下这个题,要求在一个字符串中,提取“辽A243M8”的燃油车7位数车牌号,或者是提取“辽AD8479F”新能源车8位数车牌号,并且每个字符串中所含的车牌号出现不止一次。

🔔

综上,一个大致的思路是:

把车牌都提取出来,把其他信息用""屏蔽,然后用TEXTJOIN函数拼合;

而车牌都是有特点的,黑吉辽京津冀……全国的省市简称也就这么多,可以提前设置参数表;

于是就可以用FIND × 动态数组,一次性把车牌提取出来。

当然,需要额外考虑两个事:

  1. 燃油车和新能源车提取的位数不同;

  1. 这些省市简称如果以普通汉字的形式出现在文字里,会变成强干扰项。

这些思路捋顺清楚以后,就有请动态数组大神,咱们开始吧!

完整公式:

=TEXTJOIN("、",TRUE,

IFERROR(IF(CODE(MID(MID(A1,FIND($C$2:$C$35,A1),8),2,1))>200,NA(),

IF(CODE(RIGHT(MID(A1,FIND($C$2:$C$35,A1),8),1))>200,

LEFT(MID(A1,FIND($C$2:$C$35,A1),8),7),

MID(A1,FIND($C$2:$C$35,A1),8)))

,""))

思路分析:(可对应相应的颜色来分步骤学习)

①使用FIND函数,在参数表中找到是否带有车牌地区简称的字,结果是一个动态数组,要么是一个数字(具体的位数),要么是#VALUE!(没找到)

②使用MID函数,从找到的位数开始,查8位(新能源牌照较长,为8位)

③使用IF、CODE函数,排查这个8字符串的结果最右侧一个字符是否为汉字,是汉字(>200),说明找错了,不是新能源,是普通车牌,假值返回查7位的结果

④对于“黑色”“我在辽宁”这种干扰项,也会查出一个字符串,用上面同样的办法,排查第2位是否为汉字,是汉字,说明找错了,用NA函数强制赋予错误值

⑤使用IFERROR函数屏蔽所有错误值,这时动态数组里除了正确的车牌号,就是""

⑥使用TEXTJOIN函数,设置"、"连接符,忽略空白单元格,将动态数组所有结果串联

⑦下拉拖拽,注意参数表引用$C$2:$C$35一定要锁定区域

最后是本篇文档的链接:

【金山文档】 动态数组行业案例:帮公安干警提取车牌

https://kdocs.cn/l/chD2PKzEzqrJ

如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!

同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!

欢迎大家阅读我的其他文章:

【功能推荐】系列

一文讲透表格保护

一文讲透文档管理

一文讲透表格筛选(上)

一文讲透表格筛选(下)

一文讲透社区封面头图设计

【函数攻略】系列

一文讲透WPS表格函数二分法(上)

一文讲透WPS表格函数二分法(下)

一文讲透WPS表格逻辑值(上)

一文讲透WPS表格逻辑值(下)

一文讲透WPS表格文本拼接(上)

一文讲透WPS表格文本拼接(下)

一文讲透条件判断函数家族

一文讲透单元格格式(上)

一文讲透单元格格式(中)

一文讲透单元格格式(下)

一文讲透TEXT函数家族新成员(上)

一文讲透TEXT函数家族新成员(下)

【动态数组灰度测试】系列

动态数组行业案例:使用SEQUENCE/FILTER函数 × 动态数组 搞定三大高频场景

动态数组行业案例:使用SORTBY函数 × 动态数组 制作多功能成绩单

动态数组行业案例:使用UNIQUE函数 × 动态数组 多场景全能应用

动态数组行业案例:使用SEQUENCE函数 × 动态数组 生成动态序号

动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(上)

动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(下)

动态数组行业案例:使用RANDARRAY函数 × 动态数组 解决授课案例问题

动态数组行业案例:使用INDIRECT函数 × 动态数组制作二级下拉菜单

动态数组行业案例:使用TEXTJOIN函数 × 动态数组将字符串中的数字和汉字分开

【WPS AI办公】系列

教你一句话找到本次成绩的班级前三名的同学

教你一句话规范身份证号和手机号填写

WPS AI版本体验测评(表格篇)

【表格菁培班-函高PK赛】系列

(PK王禹成)制作倒班神器

(PK王禹成)计算特定字符出现的次数

(PK王龙奇)给公式加注释

(PK王龙奇)排序功能平替,等你来设计!

(PK蒋春阳)兄弟们,抽奖啦~!

(PK蒋春阳)标记正确选项

(PK贺菊中)快来绘制你的专属圣诞树啪

(PK贺菊中)查找字符串中第X次出现的某字符

【赛事活动】系列

【制造业行业三等奖案例】职工一家人都能用的倒班神器!

【教育行业一等奖案例】教你一句话找到本次成绩的班级前三名的同学!

【金山35周年 旧金山特别奖】回望金山速度 · 共振人生梦想

【KCT认证】梦想金山,生生不息——民航小哥的KCT认证备战日记

【我和WPS那些事儿】生生不息,再造未来——一位打工人读者的思考

辽宁省
浏览 996
收藏
15
分享
15 +1
7
+1
全部评论 7
 
=TEXTJOIN("、",TRUE, LET(x, IF(CODE(IFERROR(MID(A1,MMULT(--IF((MID(A1,SEQUENCE(LEN(A1)),1)=CHAR(COLUMN(BM1:CL1))),SEQUENCE(LEN(A1))),SEQUENCE(26,,1,0))-1,1),FALSE))>10000, SEQUENCE(LEN(A1))-1 ), y, CODE(RIGHT(MID(UPPER(A1),SMALL(x,SEQUENCE((COUNT(x)))),8),1)), IF((y>47)*(y<58)+(y>64)*(y<91), UPPER(MID(A1,SMALL(x,SEQUENCE((COUNT(x)))),8)), UPPER(MID(A1,SMALL(x,SEQUENCE((COUNT(x)))),7)))) ) 他的wps如果有let多好,可惜没有..
· 山东省
1
回复
清华学弟任泽岩

创作者俱乐部成员

LET函数目前我还没有用过
· 辽宁省
1
回复
 
WPS超玩会大管家

创作者俱乐部大管家

这标题很牛啊!!
· 广东省
1
回复
 
提个小问题哈 第一,find函数查找只能找第一次匹配的位置,如果同一文本中有两个同省车辆(概率较大),会不会漏? 第二,录入车牌的时候可能切换英文输入法,导致车牌后面的标点用英文的,code>200这个判断条件,非新能源车牌后面有英文标点符号会不会被提出来?
· 山东省
1
回复
清华学弟任泽岩

创作者俱乐部成员

时隔3天回来回复陶老师,确实您这两个问题都存在,目前以我的功力还无法解决~请其他社区大佬帮忙指正
· 辽宁省
1
回复
 
ice y

创作者俱乐部成员

666
· 四川省
1
回复
 
兢弈

创作者俱乐部成员

太厉害拉
· 广东省
2
回复