【问题标题】:How to automatically generate sequent numbers when using a form使用表单时如何自动生成连续数字
【发布时间】:2015-07-27 20:32:48
【问题描述】:

Ahab 在 2010 年指出:基于 Timestamp 的复杂外观数字有一个重要属性,即删除或插入行时数字不会改变。 只要不通过插入删除行来更改提交的数据,简单的公式=ArrayFormula(ROW(A2:A) - 1) 可能是最容易使用的公式。

对于其他情况,没有很好的可靠解决方案。 :(

现在我们生活在 2015 年。也许时代变了?

我需要一种可靠的方法来使用表格对条目进行编号。

也许脚本可以解决问题?可以为每个条目添加 1 的脚本? 即使删除或插入行,该特定条目也必须保留该数字。

我创建了这个简单的电子表格,在其中手动添加了 1、2 和 3,请看一下: https://docs.google.com/spreadsheets/d/1H9EXns8-7m9oLbCrTyIZhLKXk6TGxzWlO9pOvQSODYs/edit?usp=sharing

脚本要找到前面的条目的最大值,即3,然后自动加1。

谁能帮我解决这个问题?

格茨,比杰

【问题讨论】:

    标签: forms numbers google-sheets sequence auto-generate


    【解决方案1】:

    也许脚本可以解决问题?一个可以给每个加 1 的脚本 进入?

    是的,这就是你需要求助的。我冒昧地在你的示例 ss 中输入了这个:

    function onEdit(e) {
      var watchColumns = [1, 2]; //when text is entered in any of these columns, auto-numbering will be triggered
      var autoColumn = 3;
      var headerRows = 1;
      var watchSheet = "Form";
    
      var range = e.range;
      var sheet = range.getSheet();
      if (e.value !== undefined && sheet.getName() == watchSheet) {
        if (watchColumns.indexOf(range.getColumn()) > -1) {
          var row = range.getRow();
          if (row > headerRows) {
            var autoCell = sheet.getRange(row, autoColumn);
            if (!autoCell.getValue()) {
              var data = sheet.getDataRange().getValues();
              var temp = 1;
              for (var i = headerRows, length = data.length; i < length; i++)
                if (data[i][autoColumn - 1] > temp)
                  temp = data[i][autoColumn - 1];
              autoCell.setValue(temp + 1);
            }
          }
        }
      }
    }
    

    【讨论】:

    • 嗨,亚当,感谢您的贡献。我不能让你的脚本运行,它说:TypeError:无法从未定义中读取属性“范围”。 (第 7 行,文件“”)。我在脚本方面完全是零,也许你可以解决它?
    • Bij,这个脚本应该在您在电子表格中进行编辑时自动运行。例如,从脚本编辑器运行它会产生您描述的错误。
    【解决方案2】:

    对我来说,最好的方法是在第二张表中创建一个查询,将表单响应中的所有内容拉到第二列等等。然后使用第一列进行编号。

    在您的第二张表 B1 中,您将使用:

    =QUERY(Form!1:1004)
    

    在您的第二张纸 A2 中,您将使用:

    =ARRAYFORMULA(if(B2:B="",,Row(B2:B)-1))
    

    我在您的示例电子表格中制​​作了第二张表格,请看一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-27
      • 2017-03-20
      • 2012-08-16
      • 2023-03-20
      • 1970-01-01
      • 2021-08-06
      • 2021-01-04
      • 2012-02-01
      相关资源
      最近更新 更多