答案1
仅供参考,您的号码有 729 种可能的数字组合(或排列):
9 * 9 * 9 = 729.
为了得出这种场景的所有组合,我倾向于生成一个滚动计数器。它将以 1 为步长计数到最大值,然后重新开始。我为此使用的函数是 MOD。MOD 返回除以数字后的余数。它采用以下形式:
=MOD(NUMBER, DIVISOR)
在这种情况下,您需要使用 1 到 9 的数字并重新开始。所以我知道计数器重置之前的最大数字或项目数是 9。所以我将其设置为除数。接下来要做的是输入一个数字,该数字在公式向下复制时会不断增加 1。为此,我将使用ROW(A1)
。这意味着基本公式将是:
=MOD(ROW(A1),9)
将其放在任意单元格中并复制下来,您将得到从 1 开始的数字 0 到 8,一遍又一遍。因此公式需要进行一些调整。让我们首先将行号的值减少一。
=MOD(ROW(A1)-1,9)
经过这种修改,复制下来的结果是从 0 开始的数字 0 到 8。差不多了,只需将范围调整 1 即可得到 1 到 9。很简单,只需将结果加 1 即可。公式变为:
=MOD(ROW(A1)-1,9)+1
太好了,现在您需要一个每 9 行增加 1 的计数器来获得您的第二个数字选择。为此,将使用 INT 函数。INT 返回除法运算的整数部分。非常接近 MOD,但在小数点的另一侧工作。因此,在这种情况下,我们将采用行计数器,并且通过将计数器除以 9 并使用其 INT,仅让它每 9 行增加 1。公式如下所示:
=MOD(INT((ROW(A1)-1)/9),9)+1
因此现在您需要为数字添加第三位数字。在这种情况下,数字将每 81 行增加一次。因此,我们可以使用上面的公式并进行小幅调整,得到以下结果:
=MOD(INT((ROW(A1)-1)/81),9)+1
因此,如果您想通过一次更改第一位数字 1 来列出所有可能的组合,如下所示:
1 1 1
2 1 1
3 1 1
...
8 9 9
9 9 9
您可以将公式放在以下单元格中并复制下来:
B2
=MOD(ROW(A1)-1,9)+1
C2
=MOD(INT((ROW(A1)-1)/9),9)+1
D2
=MOD(INT((ROW(A1)-1)/81),9)+1
您可能会注意到这里有一个模式。您可以进一步概括公式,以便使用单个公式将其复制到右侧和下方。
81 = 9^2
9 = 9^1
1 = 9^0
因此,如果我们将指数设置为列号并减去 1,则一般公式可能是:
=MOD(INT((ROW(A1)-1)/9^(COLUMN(A1)-1)),9)+1
现在,如果您希望列表从右边开始更改一个,如下所示:
1 1 1
1 1 2
1 1 3
...
9 9 8
9 9 9
然后您需要反转公式的顺序,如下所示:
B2
=MOD(INT((ROW(A1)-1)/81),9)+1
C2
=MOD(INT((ROW(A1)-1)/9),9)+1
D2
=MOD(ROW(A1)-1,9)+1
您仍然有一般情况,但它变得有点复杂,因为您需要定义要查找的数字是多少位。一般公式看起来更像这样:
=MOD(INT((ROW(A1)-1)/9^(3-COLUMN(A1)),9)+1
3 是您要合并的数字的硬编码数字。它也可以用 COLUMN($C$1) 替换。
现在说了这么多,excel 2016 中的最大行数是 1048576。并且由于每个数字所需的行数是 9^(数字位数),所以 6 位数字是您可以在单列中执行的最大值,即 531441 行。7 位数字是 4782969 行,这已经足够了。