【问题标题】:Number increment in Google Sheets formulaGoogle表格公式中的数字增量
【发布时间】:2018-03-25 12:21:27
【问题描述】:

在 Google 表格数据库中,我建立了一个公式,用于为一系列公司分配参考编号。

每个公司都应有其唯一编号,格式为RET00XX,其中 XX 代表唯一的公司编号。我希望这些数字是连续的,从 1 开始,然后继续 +1。 每当在数据库中插入新公司时,公式应该能够为其赋予参考编号。它还应该能够验证该公司是否已存在于数据库中,如果存在,则自动为其分配公司的唯一参考号,而不是创建一个新参考号。

公司名称在 B 列的单元格中。

这是我建立的公式(第 2 行中的一个示例):

=ARRAYFORMULA(IF($B2<>"",IF((COUNTIF($B$1:$B1,$B2)>0),INDEX($A$1:$R2,MATCH($B2,$B$1:$B1,0),12),CONCATENATE("RET00",ROW($B2))),""))

它采取的步骤是:

  1. 验证对应行的B列不为空;
  2. 使用COUNTIF 函数,验证公司在前面的任何行中都不存在;
  3. 如果公司确实存在,则通过INDEX函数赋予对应的参考号;
  4. 如果公司不存在,它会使用CONCATENATEROW 函数为公司分配一个新的参考号。

该公式在很大程度上是有效的,尽管存在一些问题。 添加到此数据库的用户有通过在数据库中间插入行来添加条目的习惯。这使得,由于公式的构建方式,公司唯一的参考代码每次发生时都会发生变化。我相信这部分是因为我使用了ROW 函数。
此外,鉴于在数据库中间插入了新行,公式应该能够验证公司是否已经存在,不仅通过循环遍历所有先前的行,而且遍历所有行(如果插入了新行,当公司可能在新行之后的行时,公式将仅验证以前的行)。

如何在不参考ROW 的情况下在公式中赋予序号?另外,如何确保电子表格验证 B 列的所有行,而不仅仅是插入行之前的行?

【问题讨论】:

    标签: google-sheets formula increment


    【解决方案1】:

    简答

    使用Google Apps Script

    说明

    使用电子表格函数在用作数据库的实时电子表格上设置 ID 风险很大,因为当对电子表格内容进行更改时,这些值将被重新计算。

    不要使用公式,而是使用脚本来添加“固定值”。通过使用自定义菜单或侧面板、从脚本编辑器或时间驱动的触发器,可以在单元格编辑和行插入等事件上自动调用脚本。

    以下来自Web Applications 的问答展示了几种设置序号的方法:

    来自 SO 的其他人也可能会有所帮助:

    【讨论】:

      【解决方案2】:

      独立于起始行号的解决方案

      这些示例将允许您在公式中生成递增值。

      递增整数,从零开始: 值将是:0、1、2、3 等。
      注意:地址“$A$2”代表您顶行的单元格。它应该更改为您实际顶行的任何单元格。这种方法的好处是,如果您在公式的起始位置上方插入新行,它不会中断。

      =(ROW()-ROW($A$2))
      

      整数,基于一个: 值将是:1、2、3、4 等。

      =(ROW()-ROW($A$2) + 1)
      

      日期: 值将是:2000-01-01,2000-01-02,2000-01-03 等。

      =Date(2000,1,1) + (ROW()-ROW($A$2))
      

      所有偶数: 值将是:0、2、4 等。

      =(ROW()-ROW($A$2) * 2
      

      【讨论】:

        【解决方案3】:


        在您的工作表中应用此公式,

        =ArrayFormula(if(B2:B<>"",row(A2:A)-1,""))
        

        有关此的更多信息,请访问此
        链接:https://infoinspired.com/google-docs/spreadsheet/auto-serial-numbering-in-google-sheets/

        【讨论】:

          【解决方案4】:

          在第一个单元格中插入1,并将下面的公式粘贴到以下单元格中。

          =INDIRECT(ADDRESS(ROW()-1,COLUMN())) + 1

          【讨论】:

            【解决方案5】:

            在第一行添加数字并从下一个单元格输入公式

            我使用 =A1+1 来获取增量编号来索引每行上的任务。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-02-01
              • 2023-02-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多