Excel中三列数据自由组合

 我来答
nhking
2016-11-05 · TA获得超过3.1万个赞
知道大有可为答主
回答量:3.6万
采纳率:78%
帮助的人:1.1亿
展开全部

可以用VBA处理吗?

Sub 按钮1_Click()
l = 1
For i = 1 To 7
For j = 1 To 11
For k = 1 To 20
Cells(l, 4) = Cells(i, 1) & " " & Cells(j, 2) & " " & Cells(k, 3)
l = l + 1
Next
Next
Next
End Sub


追问
能用公式解决吗?
追答
在D1输入公式:
=OFFSET(A$1,INT((ROW()-1)/220),0) & " " & OFFSET(B$1,INT((ROW()-1)/20),0) & " " & OFFSET(C$1,MOD(ROW()-1,20),0)

下拉填充至D1540。
cljhero
2016-11-05 · 超过24用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:55.1万
展开全部
=INDIRECT("a"&INT(ROW()/220)+IF(MOD(ROW(),220)=0,0,1))&INDIRECT("b"&INT(IF(MOD(ROW(),220)=0,220,MOD(ROW(),220))/20)+IF(MOD(ROW(),20)=0,0,1))&INDIRECT("c"&IF(MOD(ROW(),20)=0,20,MOD(ROW(),20)))
复制到D1然后往下拖,感觉太长了,如果数量多,会影响速度,这种情况应该是vba最好
追问
感谢回答。 只是单词之间没有空格,另外需要保持 ABC列中的词以ABC顺序组合,也就是1450个组合,可以用公式吗?
追答
=INDIRECT("a"&INT(ROW()/220)+IF(MOD(ROW(),220)=0,0,1)) & " " & INDIRECT("b"&INT(IF(MOD(ROW(),220)=0,220,MOD(ROW(),220))/20)+IF(MOD(ROW(),20)=0,0,1)) &  " " &  INDIRECT("c"&IF(MOD(ROW(),20)=0,20,MOD(ROW(),20)))

已加入空格,这公式就是按你要的顺序ABC排列的,如果还不是,建议发个样表来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式