【发布时间】:2017-01-14 01:20:50
【问题描述】:
我有两列数据(A 列,B 列),我想在 C 和 D 列中列出这些数据的所有组合。即如果 A 列在列表中有 5 个数字,B 列在列表中有 3 个数字,我应该在 C 和 D 列中列出 15 个组合。这只是一个示例,A 和 B 列中的数据长度动态变化。
我对 VBA 还是很陌生,所以如果有一个简单的分步指南,将不胜感激。
【问题讨论】:
我有两列数据(A 列,B 列),我想在 C 和 D 列中列出这些数据的所有组合。即如果 A 列在列表中有 5 个数字,B 列在列表中有 3 个数字,我应该在 C 和 D 列中列出 15 个组合。这只是一个示例,A 和 B 列中的数据长度动态变化。
我对 VBA 还是很陌生,所以如果有一个简单的分步指南,将不胜感激。
【问题讨论】:
此操作不需要 VBA。
在C1中输入:
=INDEX(A:A,ROUNDUP(ROW()/COUNT(B:B),0))
然后抄下来。在 D1 中输入:
=INDEX(B:B,MOD(ROW()-1,COUNT(B:B))+1)
然后抄下来。
您可以从任一列表中添加或删除项目。您可以在任一列表中使用数字或文本值。
编辑#1
要删除 C 和 D 列底部不必要的零,在 C1 中使用:
=IF(ROW()>COUNT(A:A)*COUNT(B:B),"",INDEX(A:A,ROUNDUP(ROW()/COUNT(B:B),0)))
在向下复制之前和在 D1 中使用:
=IF(ROW()>COUNT(A:A)*COUNT(B:B),"",INDEX(B:B,MOD(ROW()-1,COUNT(B:B))+1))
这是基于知道只能有 Na X Nb 种组合。
【讨论】: