Ahab在2010年表示:基于时间戳的复杂外观数字有一个重要属性,删除或插入行时数字不能改变。
只要通过插入删除行不更改提交的数据,简单公式=ArrayFormula(ROW(A2:A) - 1)
可能是最容易使用的。
对于其他情况,没有可靠的解决方案。 :(
现在我们住在2015年。也许时代已经改变了?
我需要一种可靠的方法来使用表单对条目进行编号。
也许一个脚本可以做到这一点?一个可以为每个条目添加1的脚本? 即使删除或插入行,某些条目也必须保留该数字。
我创建了这个简单的电子表格,我在其中手动添加了1,2和3,请看一下: https://docs.google.com/spreadsheets/d/1H9EXns8-7m9oLbCrTyIZhLKXk6TGxzWlO9pOvQSODYs/edit?usp=sharing
脚本必须找到以前条目的最大值,即3,然后自动添加1。
谁可以帮我这个?
Grtz,Bij
答案 0 :(得分: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);
}
}
}
}
}
答案 1 :(得分:0)
对我来说,最好的方法是在第二张表中创建一个查询,从表单响应到第二列等等。然后使用第一列进行编号。
在第二张 B1 中,您将使用:
=QUERY(Form!1:1004)
在第二张 A2 中,您可以使用:
=ARRAYFORMULA(if(B2:B="",,Row(B2:B)-1))
我在你的示例电子表格中制作了第二张表,看看它。