Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5587|回复: 11

[已解决]数据组合的问题

[复制链接]
发表于 2014-5-31 17:15 | 显示全部楼层 |阅读模式
本帖最后由 dfshm 于 2014-5-31 18:09 编辑

附件 数据组合.rar (6.65 KB, 下载次数: 22)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-5-31 17:41 | 显示全部楼层
A1---A24,B1--B24,C1--C24,共72个。
组合规则:三个一组,保持如下格式
A在前,B在中,C在后,

回复

使用道具 举报

发表于 2014-5-31 17:42 | 显示全部楼层
本帖最后由 baksy 于 2014-5-31 18:12 编辑

M1=INDIRECT("A"&INT((ROW()-1)/24^2)+1)
N1=INDIRECT("B"&INT(MOD(ROW()-1,24^2)/24)+1)
O1=INDIRECT("C"&MOD((ROW()-1),24)+1)

公式下拉。

评分

参与人数 1 +1 收起 理由
dfshm + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-5-31 17:51 | 显示全部楼层    本楼为最佳答案   
  1. Sub demo()
  2.     Dim ar, br, cr, dr(1 To 13824, 1 To 3)
  3.     ar = [a1:a24]
  4.     br = [b1:b24]
  5.     cr = [c1:c24]
  6.     For i = 1 To 24
  7.         For j = 1 To 24
  8.             For k = 1 To 24
  9.                 n = n + 1
  10.                 dr(n, 1) = ar(i, 1)
  11.                 dr(n, 2) = br(j, 1)
  12.                 dr(n, 3) = cr(k, 1)
  13.             Next
  14.         Next
  15.     Next
  16.     Range("m1").Resize(n, 3) = dr
  17. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
dfshm + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-5-31 18:11 | 显示全部楼层
本帖最后由 zjdh 于 2014-5-31 18:13 编辑

还在考虑删除这些呢
A1        B1          C1
A2       B2          C2
A1        B1        C2
回复

使用道具 举报

 楼主| 发表于 2014-5-31 18:14 | 显示全部楼层
qh8600 发表于 2014-5-31 17:51


老师您好!谢谢您的帮助。我想请教一个问题。

在代码中,您事先设置好了一个值:13824,我想知道这个13824是怎么来的。

您根据24组这个条件,设置成13824;
如果是12组,是不是就设置为6912?麻烦赐教一下,谢了。
回复

使用道具 举报

发表于 2014-5-31 21:16 | 显示全部楼层
dfshm 发表于 2014-5-31 18:14
老师您好!谢谢您的帮助。我想请教一个问题。

在代码中,您事先设置好了一个值:13824,我想知道这个 ...

24*24*24=13824
回复

使用道具 举报

发表于 2014-5-31 22:08 | 显示全部楼层
本帖最后由 qh8600 于 2014-5-31 22:14 编辑
dfshm 发表于 2014-5-31 18:14
老师您好!谢谢您的帮助。我想请教一个问题。

在代码中,您事先设置好了一个值:13824,我想知道这个 ...

楼上是对的,就是24*24*24
如果是12个,3列的话是12*12*12=1728
回复

使用道具 举报

发表于 2014-6-1 08:47 | 显示全部楼层
qh8600 发表于 2014-5-31 17:51

如果 B24,C24单元格为空,则[c1].End(4) 怎么改?=24*23*23=12696

数据组合2.rar

15.44 KB, 下载次数: 5

回复

使用道具 举报

发表于 2014-6-1 08:56 | 显示全部楼层
本帖最后由 qh8600 于 2014-6-1 08:58 编辑
张雄友 发表于 2014-6-1 08:47
如果 B24,C24单元格为空,则[c1].End(4) 怎么改?=24*23*23=12696
  1. Sub demo() '如果 B24,C24单元格为空,则[c1].End(4) 怎么改?=24*23*23=12696
  2.     Dim ar, br, cr, dr(1 To (24 * 23 * 23), 1 To 3)
  3.     ar = [a1:a24]
  4.     br = [b1:b23]
  5.     cr = [c1:c23]
  6.     For i = 1 To 24                '循环数组ar ,ar有24行所以1 to 24,或者1 to ubound(ar)
  7.         For j = 1 To 23                '循环数组br,br有23行所以 1 to 23,
  8. 或者1 to ubound(br)
  9.             For k = 1 To 23              '循环数组cr,cr有23行所以 1 to 23 ,
  10. 或者1 to ubound(cr)
  11.                 n = n + 1
  12.                 dr(n, 1) = ar(i, 1)
  13.                 dr(n, 2) = br(j, 1)
  14.                 dr(n, 3) = cr(k, 1)
  15.             Next
  16.         Next
  17.     Next
  18.     Range("m1").Resize(n, 3) = dr
  19. End Sub
复制代码
3个循环的组合总计是24*23*23=12696

评分

参与人数 1 +6 收起 理由
张雄友 + 6 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-31 17:10 , Processed in 0.629979 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表