验证数据列是否有重复数据

编辑
  • 文档创建者:cyb435
  • 浏览次数:5530次
  • 编辑次数:7次
  • 最近更新:Kevin-s 于 2019-06-04
  • 1. 问题描述

    在数据填报时,需要验证各行中数据是否有重复值(不能用生成行号的方式自动生成序列号的场景),

    如有重复值,则提示错误不允许提交入库。

    2. 解决思路

    因序号列为向下扩展列,在设计器中将该单元格作为数组在两个单元格中设置公式,

    其中一个单元格公式值为数组原值,另外一个单元格值为数组去重后的值,

    如果数组内有重复数据,那么这两个单元格的值是不一样的,

    最后在提交校验中对这两个单元格进行校验,如果单元格值一致,则允许提交,不一致则报警。


    3. 实现步骤

    3.1 建立模板


    A3 单元格为需要校验是否有重复数据的可向下扩展单元格,引用单元格数组时,应加上中括号,即[A3],否则公式会出错。


    3.2 设置公式


    在 B5 单元格设置公式:JOINARRAY([A3], ""),取数组原始字符串,不加间隔符号,

    在 D5 单元格设置公式:JOINARRAY(UNIQUEARRAY([A3]), ""),取数组去掉重复值后的字符串,不加间隔符号。



    3.3 提交校验

    在填报报表的提交校验窗口,增加一条校验信息:=B5=D5,提示信息:"序号重复啦,请检查!"。


    此时填报,如序号中有重复数据,提交校验会提示。



    3.4 其他公式


    作为校验的公式还可以使用如下两组公式:

        1.  LEN(JOINARRAY([A3], ""))     数组转换为字符串长度,不加间隔符,

             LEN(joinarray(UNIQUEARRAY([A3]), ""))     数组去重复值后转换为字符串,不加间隔符


         2.  count([A3])           数组内元素个数

              count(UNIQUEARRAY([A3]))   数组去掉重复值后元素个数。


    4.注意事项

    引用扩展单元格为数组,一定要在单元格外加中括号,否则数组函数不能正确赋值。

    附件列表


    主题: 填报应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]