Excel - 27 进制三位数序列登记

Excel - 27 进制三位数序列登记

在一个三位数递增序列中,每个数字的基数为 27,我试图列出所有组合,但不重复数字。例如 1,26,26 不是一个选项。

顺序如下:

  • 1,2,3
  • 1,2,4
  • ...
  • 1,2,27
  • 1,3,4
  • 1,3,5

等等。

我把 C 列的公式(来自 C2)放进去:

=IF(C1=27,B2+1,C1+1)

并将其拖下。

我输入了 B2 的公式:=IF(C1=27,B1+1,B1),但是它出错了。

有什么建议吗?我更喜欢公式,而不是 VBA 代码。

答案1

该公式会查看该列中的最后一个数字是否是序列的结尾。如果是,它会开始一个新的序列,但新序列的起始位置比左侧列多 1。如果不是新的序列,它会将列中的前一个值增加 1。

直到右侧的列开始新的系列时,A 列和 B 列才会发生变化。当右侧的列发生变化时,B 列遵循相同的规则,即如果其自己的列开始新的系列,则考虑左侧的列。因此 B2 将是:

=IFERROR(IF(C1=27,IF(B1=26,A2+1,B1+1),B1),"")

一旦超出整个系列的末尾,B 列和 C 列将显示错误值,除非您将其隐藏。我将 B 列公式包装在 IFERROR 测试中,您可以类似地将其应用于 C 列公式。

由于您不希望出现重复,因此只有 C 列可以达到 27;B 列需要在 26 处结束,A 列需要在 25 处结束。当 A 列位于 25 处并且右侧的列到达其系列末尾时,练习完成。因此 A2 将是:

=IF(C1=27,IF(B1=26,IF(A1=25,"",A1+1),A1),A1)

相关内容