目前我正在编写燃油卡的excel文档,目前的问题是根据英国标准车牌(两个字母后跟两个数字,然后是三个字母,即BK08JWZ)编写一个验证车牌的公式。在这一点上,我们没有考虑个人牌照,只是为了让事情简单。
理想情况下,我需要excel来查看框中的文本,并确认它是否符合约定的布局,但我正在努力寻找正确的公式。板材在'I‘栏中,我已经在’J‘栏中的'approved titled’标题后添加了另一栏,但如果不需要,可以将其删除。
就结果而言,我可以通过两种方法之一来实现这一点,一种是让excel文档突出显示与DVLA标准不匹配的车牌,另一种是在车牌列旁边设置一列,用于注册对识别的布尔响应,即如果它是有效的(true)或不是(false)。
无论哪种方式,车牌都需要能够像当前一样被看到,所以如果它有什么问题,它需要是可见的,而不是抛出错误消息。
任何帮助都是非常受欢迎的。
所有关于英国标准车牌的信息都在这个网站上:https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/359317/INF104_160914.pdf
发布于 2015-01-23 20:57:30
我会这样做:
1)使用小册子中的数据创建查找表。一列用于允许的“内存标签”标识符(前两个字母),一列用于允许的“年龄标识符”(前两个数字),一列用于允许的随机字母(后三个字母,除I和Q之外的全字母)
2)从车牌上去掉空格,以便进行比较
3)使用MID(numberplate,1,2)
、MID(numberplate,3,2)
和MID(numberplate,5,3)
分别与每个查找列表进行比较(使用INDEX()
>0)。
4)当在查找列表中找到所有3个部件时,车牌有效。
发布于 2015-01-23 22:25:13
尝试研究正则表达式或RegEx。这是一个强大的编程工具,可以确定字符串是否与特定模式匹配。您可以使用RegEx表达式来提取模式、替换模式或测试模式。效率很高,但不适合胆小鬼,尽管网上有很多帮助。先试试this article吧。
下面的RegEx可能就是您需要的。
(?^A-Z{2}0-9{2}A-Z{3}$)|(?^A-Z{1,3}A-Z{3}$)|(?^A-Z{3}0-9{1,3}A-Z$)|(?^0-9{1,4}A-Z{1,2}$)|(?^0-9{1,3}A-Z{1,3}$)|(?^A-Z{1,2}0-9{1,4}$)|(?^A-Z{1,3}0-9{1,3}$)
这是从this article复制的,它使用DVLA规则给出了一个非常完整的解释。
编辑:
在Excel中使用RegEx。在“工具”菜单中,选择“引用”,然后添加“VBScript Regular Expressions 5.5”引用。
对user3616725s有帮助的观察结果。
https://stackoverflow.com/questions/28109705
复制相似问题