多组项目的Excel组合

Posted

技术标签:

【中文标题】多组项目的Excel组合【英文标题】:Excel combinations of multiple sets of items 【发布时间】:2015-03-11 02:42:51 【问题描述】:

我正在寻找一种简单的方法来列出 Excel 中三组项目的所有可能组合。

例如,取以下三组项,每项在自己的单元格中:

(meals) pizza, pasta, lasagne    
(drinks) wine, beer, water    
(dessert) ice, fruits

现在我想列出所有可能的组合,每个组合都在自己的行中

pizza, wine, ice
pasta, wine, ice
lasagne, wine, ice
pizza, wine, fruits
...
lasagne, water, fruits

排序无关紧要。

是否有任何预定义的功能?

【问题讨论】:

我相信你需要为此编写一些 VBA。 尝试Creating an Excel Matrix 进行一些带有膳食计划的递归循环。 【参考方案1】:

将项目放在工作表的前三列中,如下所示A B C pizza wine ice pasta beer fruits lasagne water

然后,您可以使用以下公式获得 F、G、H 中的组合。

F1:=IF(ROW()-ROW($F$1)+1<=COUNTA(A:A)*COUNTA(B:B)*COUNTA(C:C), INDEX(A:A,INT((ROW()-ROW($F$1))/(COUNTA(B:B)*COUNTA(C:C))+1)), "")

G1:=IF(ROW()-ROW($F$1)+1<=COUNTA(A:A)*COUNTA(B:B)*COUNTA(C:C), INDEX(B:B,MOD(ROW()-ROW($F$1),COUNTA(B:B))+1), "")

H1:=IF(ROW()-ROW($F$1)+1<=COUNTA(A:A)*COUNTA(B:B)*COUNTA(C:C), INDEX(C:C,MOD(ROW()-ROW($F$1),COUNTA(C:C))+1), "")

下拉单元格直到值为空。那么您可能希望将结果与=IF(F1&lt;&gt;"", F1 &amp; ", " &amp; G1&amp; ", " &amp; H1, "") 合并到第一列

【讨论】:

以上是关于多组项目的Excel组合的主要内容,如果未能解决你的问题,请参考以下文章

php 多组数字如何计算所有的组合形式。如:

从组合框中选择下一个项目,然后单击 Excel VBA 按钮

VBA-Excel如何清除组合框项目

Excel VBA将组合框列表从静态范围更改为动态范围

excel VBA 组合框 取值

Excel:如何为唯一组合分配值/检查大型数据集中的唯一组合