答案1
这与您的另一个问题有某些相似之处,并且使用CEILING()
是一个好主意。
您的公式有两个需要概括的术语,而不是硬编码:
- 当前 ID 的总行数。这很简单:
=COUNTIF(A:A,A2)
- 公式向下填充时当前 ID 的当前行数计数。这是使用“扩展”范围完成的:
=COUNTIF(A$2:A2,A2)
将这两个表达式合并到公式中可得出:
=CEILING((COUNTIF(A$2:A2,A2)/CEILING(COUNTIF(A:A,A2)/5,1)),1)
您在公式中的行数中添加了 1,并且如果需要,您可以类似地调整此公式。
我希望这个帮助能祝你好运。
答案2
这个简单的公式还可以生成 BIN 列中的 ID 列表,并且每 7 行之后递增。
=INT(((ROW(A1)-1)/7))*1+1
或者甚至这个改进的公式也会按类似的顺序生成 ID 列表。
=CEILING(COUNTIF(A$2:A2,A2)/7,1)
在 OP 和 @Bandersnatch 的增量公式中,值除以 5,但结果是 ID 每 7 行后递增。这是我将其除以 7 的唯一原因,其意义在于,如果您想更改 INCREMENT 的顺序,只需将 7 替换为所需数字即可。
注意:在 OP 附带的屏幕截图中,显示 ID 在 BIN 列中从第 18 行开始递增。因此,如果您需要更改 INCREMENT,只需将 7 替换为 18,您的公式将是=INT(((ROW(A1)-1)/18))*1+1
。
还,在 OP 中你写道,“问题是,单元格 $A$2 和 $A$88 具有相似的 ID = 1”。
为了解决这个问题,您只需对 ID 列进行排序,以便所有 1 都位于第一组中。
我确实希望这也能帮助您和其他人。