Google表格公式中的数字增量

问题描述:

在Google表格数据库中,我制作了一个公式,以便为一系列公司分配参考编号。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 Apps Script

说明

使用电子表格功能设置上用作数据库的实时电子表格的ID是非常危险的值会在对电子表格内容进行更改时重新计算。

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

以下的问答&一个从Web Applications给出了几种设定的序号:

这其他的SO可能也有帮助: