历史版本1 :校验填报页面的数据是否重复 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1.问题描述编辑
在数据填报时,需要验证各行中数据是否有重复值(不能用生成行号的方式自动生成序列号的场景),
如有重复值,则提示错误不允许提交入库。
2.解决思路编辑
因序号列为向下扩展列,在设计器中将该单元格作为数组在两个单元格中设置公式,其中一个单元格公式值为数组原值,另外一个单元格值为数组去重后的值,如果数组内有重复数据,那么这两个单元格的值是不一样的,最后在提交校验中对这两个单元格进行校验,如果单元格值一致,则允许提交,不一致则报警。
3.实现步骤编辑
1)建立模板
A6单元格为需要校验是否有重复数据的可向下扩展单元格,引用单元格数组时,应加上中括号,即[A6],否则公式会出错。
2)设置公式
在C11单元格设置公式:JOINARRAY([A6], ""),取数组原始字符串,不加间隔符号,
在F11单元格设置公式:JOINARRAY(UNIQUEARRAY([A6]), ""),取数组去掉重复值后的字符串,不加间隔符号。
3)提交校验
在填报报表的提交校验窗口,增加一条校验信息:=C11=F11,提示信息:"序号重复啦,请检查!"。
此时填报,如序号中有重复数据,提交校验会提示。
4)其他公式
作为校验的公式可以使用其他公式:
LEN(JOINARRAY([A6], "")) 数组转换为字符串长度,不加间隔符,
LEN(joinarray(UNIQUEARRAY([A6]), "")) 数组去重复值后转换为字符串,不加间隔符
count([A6]) 数组内元素个数
count(UNIQUEARRAY([A6])) 数组去掉重复值后元素个数。
4.注意事项编辑
引用扩展单元格为数组,一定要在单元格外加中括号,否则数组函数不能正确赋值。