数据填写检测

需求:判断日期、名字、蔬菜、是否填写规范。名字的下拉菜单:小明、小红。蔬菜的下拉菜单:南瓜、大葱。所有项目必须填写,如果填写不规范提示具体哪个项目填写不规范,如果所有项目都没有填写可以忽略。需要支持数组输出。如果规范标记绿色,不规范标记红色。

先分析需求的内容,分类型。

大概思路

先来判断每个项目是否填写规范,日期是日期的格式,所以需要用 ISDATE_STRICT 函数判断填写的内容是否是日期的格式,虽然 ISDATE 函数也可以达到类似的效果,但是在需求里面有一个要求,支持数组输出,因为 ISDATE 函数是不支持数组输出的。

公式:ISDATE_STRICT(A2:A)

再判断名字和蔬菜的内容是否按照下拉菜单的项目填写,因为这两项都是文本格式,不需要再处理格式的问题,使用 REGEXMATCH 函数,通过正则表达式语法匹配多个条件,返回布尔值。

公式:

把这三个公式合并成一个公式,把条件判断的返回值也合并在一起返回。

公式:ISDATE_STRICT(A2:A)&REGEXMATCH(B2:B, "小明|小红")&REGEXMATCH(C2:C, "南瓜|大葱")

现在已经做好了每个项目判断是否填写规范,还需要返回具体哪个项目填写不规范,根据返回的布尔值出现的位置判断出错的项目是哪个。

使用 SWITCH 函数根据判断每个项目的结果返回对应的内容。

公式:ARRAYFORMULA(SWITCH(ISDATE_STRICT(A2:A)&REGEXMATCH(B2:B, "小明|小红")&REGEXMATCH(C2:C, "南瓜|大葱"), "TRUETRUETRUE", "规范", "FALSETRUETRUE", "日期不规范", "TRUEFALSETRUE", "名字不规范", "TRUETRUEFALSE", "蔬菜不规范", "TRUEFALSEFALSE", "名字和蔬菜不规范", "FALSETRUEFALSE", "日期和蔬菜不规范", "FALSEFALSETRUE", "日期和名字不规范", "FALSEFALSEFALSE", ""))

再添加格式规则,如果文本包含不规范标记红色,如果文本和规范相符标记绿色。

最终效果

Excel表格, Google Excel Excel 一点通