在EXCEL中如何实现两个单元格内容的排列组合?

如何将上面的表格变成下面的表格。让C列和D列的内容组合在一起,填在一个新列里面。求大师帮忙。

首先建议楼主把颜色和尺寸的数据列成表而不是放在一个单元格,这样便于适合新颜色和新尺寸的生成,如图:

为简化公式,定义两个名称,分别是颜色数量和尺寸数量:

_Color=COUNTA(D$2:D$100)

_Module=COUNTA(E$2:E$100)

然后在任何列(比如F列)的第二行单元格输入以下公式

=IF(ROW(A1)>_Color*_Module,"",INDIRECT("E"&IF(MOD(CEILING(ROW(A1),_Color)/_Color,_Module)=0,_Module+1,MOD(CEILING(ROW(A1),_Color)/_Color,_Module)+1))&" "&INDIRECT("D"&IF(MOD(ROW(A1),_Color)=0,_Color+1,MOD(ROW(A1),_Color)+1)))

任意下拉到足够长的位置

就可得到结果

此公式可以在添加其他颜色和其他尺寸时自动得到所有交叉组合

附件请参考

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-25

  你好:A、B、D列直接复制,C列可以用公式=MID(Sheet2!$D$2,2*(INT((ROW(Sheet2!A1)-1)/3))+1,2)&MID(Sheet2!$C$2,2*(INT((ROW(Sheet2!A1)-1)/3))+1,2)


追问

你好,非常感谢你的回答。可不可以实现“M空格白色”,不中间的点呢?

追答

  =SUBSTITUTE(MID(Sheet2!$D$2,2*(INT((ROW(Sheet2!A1)-1)/3))+1,2)&MID(Sheet2!$C$2,2*(INT((ROW(Sheet2!A1)-1)/3))+1,2),"."," ")


追问

我刚看明白。我要的不是这样的组合,这样的:

M 白色 M黑色 M红色 而不是三个M白色。麻烦你再帮我看看好吗?而且颜色和尺寸数量有可能会增加。比如颜色有白色,黑色,红色,紫色,尺寸有M,L,XL,XXL,XXXL,公式应该有相应变化吧?能详细说一下吗?

追答

加了辅助表,不想看可以隐藏这个表。

追问

非常感谢你的耐心回答。我的问题还没有解决。我真不好意思再追问了,先把分给你吧。谢谢啦。

追答

传样本文件,好分析,见我个人信息。

本回答被提问者采纳