4 个变量的组合,每个变量有 3 个值

问题描述

我对 Excel 还很陌生,我正在尝试找到一种方法自动生成 4 个变量(A、B、C、D)的所有可能组合(顺序不重要)和 3 个值(1、2、3)每个。

所以只有 12 个可能的变量+值:

A1、A2、A3、B1、B2、B3、C1、C2、C3、D1、D2、D3

每个组合必须有每个变量的一个实例。

例如:

A1、B2、C3、D1 A2、B3、C1、D3

有 81 种不同的组合,我想将它们放在 81 行中,然后将公式向下拖动到下一列以应用于每一行。

excel中有没有公式可以做到这一点?我找到了一个公式,但它只列出了 12 种组合。

解决方法

下面是一个示例,说明如何使用 Base 生成数字,然后将它们与 A、B、C 和 D 连接起来:

=TEXTJOIN(",",{"A","B","C","D"}&MID(BASE(ROW()-1,3,4),{1,2,4},1)+1)

到目前为止,我已经在 Excel 365 中对其进行了测试。

enter image description here

也适用于 Excel 2019。

编辑

因此,在 Excel 2010 中,您不会有 textjoin (Excel 2019) 或 base (Excel 2013),并且必须这样做(有效地将您自己转换为 base 3):

="A"&QUOTIENT(ROW()-1,27)+1&",B"&QUOTIENT(MOD(ROW()-1,27),9)+1&",C"&QUOTIENT(MOD(ROW()-1,9),3)+1&",D"&MOD(ROW()-1,3)+1

如果你有 Excel 365,你可以使用 Base 和 Sequence 并像溢出公式那样缩短一点:

=LET(x,BASE(SEQUENCE(81,1,0),"A"&MID(x,1)+1&",B"&MID(x,C"&MID(x,D"&MID(x,4,1)+1)
,

@GSerg #Excel 2010 A1

enter image description here

=REPT(TEXT(SUM(INT(MOD((ROW(A1)+{26,8,0})/{27,9,1}-1,3)+1)*10^{3,0}),"\A0\,\B0\,\C0\,\D0"),ROW()<82)