excel 把连续单元格的内容复制到有间隔单元格(间隔相同)
5个回答
展开全部
Sub LKJL()
Set d = CreateObject("scripting.dictionary")
For x = 1 To [A65536].End(3).Row
For y = 1 To 3
d(x & y) = Cells(x, y).Value
Next
Next
Range("E1").Resize(d.Count, 1) = Application.Transpose(d.items)
Set d = Nothing
End Sub
供参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在A,B,C列每列前分别插入一列辅助列
辅助列1输入
1,4,7....下拉
辅助列2输入
2,5,8...下拉
辅助列3输入
3,6,9...下拉
将辅助列2和原列B复制到辅助列1和原A列下
将辅助列3和原列C继续复制到辅助列1和原A列下
选择新的两列,以辅助列1排序
辅助列1输入
1,4,7....下拉
辅助列2输入
2,5,8...下拉
辅助列3输入
3,6,9...下拉
将辅助列2和原列B复制到辅助列1和原A列下
将辅助列3和原列C继续复制到辅助列1和原A列下
选择新的两列,以辅助列1排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
E1输入=OFFSET($A$1,INT(ROW()/3),MOD(ROW(A3),3),)向下填充。
追问
能麻烦解释下函数么
追答
公式改为=OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW(A3),3),)
oFFSET以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。比如=OFFSET($A$1,1,1)是以A1为参照系,向右移动一列,向下移动一行,到得的引用就是B2.
INT(ROW()/3),ROW()是返回所在单元格的行号,INT是将数字向下舍入到最接近的整数。比如INT((ROW()-1)/3)在第一行时,ROW()返回是1,1除以3=0.33333,向舍入接近的整数为0,当在第二行第三返回的都是0,MOD(ROW(A3),3),)Mod是返回余数,当MOD(ROW(A3),3),)在第一行返回是0,到第二行返回是1,第三行返回是2,到第四行返回又是0,第五行1,第六行2就这样循环,当=OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW(A3),3),)在第一行时就相当为=OFFSET($A$1,0,0)都没有偏移,返回的就是A1的值,当到了第二行就变为=OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW(A4),3),)相当于=OFFSET($A$1,0,1)行没偏移,列右移一列,返回是B1的值,当到第三行公式变为=OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW(A5),3),)相当于=OFFSET($A$1,0,2)行还是没向下偏移,列向右移2列,返回是C1的值,到了第四公式变为=OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW(A6),3),)相当于=OFFSET($A$1,1,0)行向下偏移一行,列没偏移,返回的是A2的值。到第五行返回的是B2的值,第六行是C2的值。就这样循环。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
D1=INDIRECT(CHAR(65+MOD(ROW(A3),3))&ROUNDUP(ROW(A1)/3,)),下拉
追问
能解释下函数吗
追答
要得到的结果是A1、A2、A3、B1、B2……,也就是每字母重复出现3次用余数公式+CHAR返回字母:CHAR(65+MOD(ROW(A3),3),然后数量一直1-3用余数公式+向上取整:ROUNDUP(ROW(A1)/3,),再用INDIRECT组合字母和数字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询