多组项目的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<>"", F1 & ", " & G1& ", " & H1, "")
合并到第一列
【讨论】:
以上是关于多组项目的Excel组合的主要内容,如果未能解决你的问题,请参考以下文章