2017-07-06 134 views
-1

我试图用自动生成的唯一参考编号设置工作表。下面的数组公式在提供一个唯一的数字方面运行良好,并且在列P中触发了一个下拉菜单时向该乞求添加了一个初始字符串“410-”,产生的输出类似于“401-00001”等excel中增量唯一标识符

=arrayformula(if(len(P2:P), "410-" & text(row(A2:A) - row(C2) + 1, "00000"), iferror(1/0))) 

但是,上述的限制是,它不扫描该列,并继续从最后使用的号码顺序,它只是分配基于所使用的行的数。我需要按启动顺序分配唯一的参考编号,这些编号不一定在工作表中按排序顺序排列。

我该如何适应这个公式来确定最大的数字并添加一个,同时保持相同的格式等?

(使用的功能,例如=ArrayFormula(MAX((A2:A)+1)))

任何帮助将是类似的不胜感激

回答

1

功能类似于

=ArrayFormula(MAX((A2:A)+1)))

将是

=arrayformula("410-" & text(max(value(right(A$2:A,5)))+1,"00000"))

这将创建下一个唯一标识符。您遇到的问题是,您不能在与唯一ID列表相同的列中使用A$2:A,因为它会创建循环引用并产生错误。

您可以使用

细胞A3A$2:A2和向下填充,但即使当你围绕这与if语句,如果P列有一个值,它仍然会根据他们的位置重新编号的ID片。

虽然有一个公式来生成ID是很有用的,但是ID一旦生成就需要修复。

您可以将生成下一个ID的公式放在工作表顶部,并在需要时复制和粘贴值。

也许使用google脚本自动将值复制到列P