Excel 帮助:根据实例数创建变量

Excel 帮助:根据实例数创建变量

我想将 A 列中的 ID 分成 5 个相等的组。我已应用此公式,该公式可以很好地将 B 列中的 ID 分成 5 个相等的组。

=CEILING((ROW()-ROW($A$2)+1) / CEILING((ROW($A$88)-ROW($A$2)+1)/5,1),1)

问题是,单元格 $A$2 和 $A$88 具有相似的 ID = 1。

我希望有好心人能修改这个公式,这样我就可以把整个列的每个 ID 分成 5 个相等的组,而不是每个 ID 都硬性停止。

在此处输入图片描述

答案1

这与您的另一个问题有某些相似之处,并且使用CEILING()是一个好主意。

您的公式有两个需要概括的术语,而不是硬编码:

  1. 当前 ID 的总行数。这很简单:

=COUNTIF(A:A,A2)

  1. 公式向下填充时当前 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 都位于第一组中。

我确实希望这也能帮助您和其他人。

相关内容