创建数组中所有可能组合的重复数量列表

创建数组中所有可能组合的重复数量列表

寻求一些问题的帮助。我在 Excel 中有一个包含两个方向的变量的数组,以及与每个变量组合交叉处的数量相对应的单元格。例如输入:

示例数组

第 1 项 第 2 项
配置 1 1 2
配置 2 3 4

我想生成每个变量组合的列表,并按每个组合的数量重复。例如输出:

输出

项目 1 配置 1
项目 1 配置 2
项目 1 配置 2
项目 1 配置 2
项目 2 配置 1
项目 2 配置 1
项目 2 配置 2
项目 2 配置 2
项目 2 配置 2
项目 2 配置 2

我已经生成了部分输出列的前半部分(我有一个重复了 4 次的“项目 1”列表)这个网站上的教程,但我不知道如何获取其余部分。此外,我在 SU 上找到的所有答案都同样只涉及单个列中的重复值——我希望重复数组中的值。

顺序无关紧要,因为这最终会在稍后被打乱。我从未使用过 VBA 或数据透视表或 Power Query,因此如果此解决方案需要任何这些工具,那么我将需要大量的指导,但无论如何,任何帮助都会受到感谢。谢谢!

附加问题: 假设原始数组中有数量 0 或字母(即 'X')或者可能为 'N/A' 表示数量 0:

第 1 项 第 2 项
配置 1 1 X
配置 2 3 4

我想将它从列表中完全排除。直觉上,我推测其中某处会有一个“if”语句,但我必须等待并查看原始解决方案是什么样子,然后再将其添加到其中。

答案1

对于 O365 Beta 频道:

=LET(ζ,A1:C3,α,DROP(TAKE(ζ,1),,1),β,DROP(TAKE(ζ,,1),1),γ,DROP(ζ,1,1),TEXTSPLIT(CONCAT(TRANSPOSE(REPT(α&" "&β&"|",γ))),,"|",1))

根据需要修改此处引用的范围A1:C3,注意它应该包括物品行和配置柱子。

数组中任何零数量都将从返回列表中排除。

所有O365用户的替代方案:

=INDEX(FILTERXML("<a><b>"&CONCAT(TRANSPOSE(REPT(B1:C1&" "&A2:A3&"</b><b>",B2:C3)))&"</b></a>","//b"),SEQUENCE(SUM(B2:C3)))

相关内容