如何使 Excel 中新插入的行包含自动生成的数据?

如何使 Excel 中新插入的行包含自动生成的数据?

我有一张 Excel 表,用作需求文档。我正在查看的表格使用以下编号顺序A:FR01、FR02、FR03。该表格可能按其他字段排序。

当创建新行时,无论它在工作表中的什么位置生成,我都希望单元格中A填充 FRxx 序列中的下一个数字。如果 中的最高值A是 FR55,我希望是 FR56。我尝试了各种公式和数字方案,但似乎都无法正确完成。

感谢您的帮助!

已排序工作表的部分图像

答案1

如果您不介意的话,根据我们在评论中的讨论,我提出的部分解决方案对我来说变得足够有趣,我想将其作为答案发布给后人,即使我还没有让您完全明白这一点。

您正在寻找的解决方案分为两部分;我已经解决了第一部分,并且根据我们的讨论,将第二部分留给您。

第一部分

将此公式放在工作簿中的任何位置:

="FR"&TEXT(MAX(IFERROR(VALUE(MID(INDIRECT("$A2:$A"&LOOKUP(2,1/(A:A<>""),ROW(A:A))),3,2)),0))+1,"00")

这是一个数组公式,输入后按Ctrl++Shift确认Enter

这将创建一个包含“FR”ID 的单元格,该 ID 应分配给下一个创建的记录:

在此处输入图片描述

关于此公式的一些注释:

  1. LOOKUP是一件有趣的事情。使用它来定位最后填充的行或列的技巧非常酷。最初我有,="FR"&TEXT(MAX(IFERROR(VALUE(MID(INDIRECT("$A2:$A"&COUNTA(A:A)),3,2)),0))+1,"00")但当COUNTA存在空白时并不可靠。我在这里包括它,因为该版本与最终版本之间的比较有助于演示在那个较长的公式中做什么。1.5 我想我应该向 excel jet dot net 致敬,LOOKUP这里的代码块直接取自它。
  2. 除了在确定数组函数的目标范围LOOKUP时使用的技巧之外,这里发生的事情实际上非常简单;获取字符串的(忽略错误),添加 `,并在前面添加 'FR'。很简单。INDIRECTMAXVALUEMID(3,2)A
  3. 无论排序如何,也无论插入多少空行,此公式都有效。
  4. 感谢@Hannu 提供的关于使用TEXT来处理单数输出格式的说明。请注意,如果您使用该TEXT(...,"00")版本,它将无法处理三数输出;在这种情况下,您需要进行调整TEXT(...,"000")(假设“FR001”等适用于单数输出!)。

好的,现在您已经获得了所需的值,但它还在那里。下一步做什么?

第二部分

谷歌搜索“Excel 记录宏”并阅读一些教程。从那里开始,完成你的任务应该相当容易。如果你真的想一丝不苟,把你的解决方案写成答案,一两天后你就可以接受你自己的答案了。在评论中@我,我也会点赞。这是一项非常有用的技能,也是一个完美的示例用例。

相关内容