日常一记(10)--excel数据一列拆分为多列&多列合并为一列

15 篇文章 6 订阅

系列文章目录


前言

一、excel多列数据依次合并排列到一列(VBA)

情景一:将指定的16行数据依次排列到一列。
在这里插入图片描述

Sub lens()

Dim k As Integer
k = 2
'Cells(1, 18) = Cells(1, 1)
 Cells(1, 18) = "汇总到一列"
 For i = 1 To 16   '列
    For j = 2 To 21 '行
     If Cells(j, i) <> "" Then
     Cells(k, 18) = Cells(j, i)
     k = k + 1
     End If
     Next
 Next

End Sub

二、excel多列数据依次合并排列到一列(函数)

=OFFSET($A$1,MOD(ROW(A16)-16,16),INT((ROW(A16)-16)/16),1,1)

注释:以每列16行数据为一次循环,可根据实际情况修改。
在这里插入图片描述

三、excel将一列数据按指定数拆分为多列

  • row()行
  • column()列
  • mod(number,divisor)→mod(数字,除数)
  • offset(起始单元格,行偏移,列偏移,连续选择几行,连续选择几列)
  • offset(起始单元格,行偏移,列偏移,)
=OFFSET($A$1,MOD(COLUMN(A1)+7,8)+ROW(A1)*8-7,)

在这里插入图片描述

四、excel将三列数据按指定数拆分为多列

E2=OFFSET($A$1,INT(COLUMN(C1)/3)+ROW(A1)*5-5,MOD(COLUMN(C1),3))
F2=OFFSET($A$1,INT(COLUMN(D1)/3)+ROW(B1)*5-5,MOD(COLUMN(D1),3))
G2=OFFSET($A$1,INT(COLUMN(E1)/3)+ROW(C1)*5-5,MOD(COLUMN(E1),3))
H2=OFFSET($A$1,INT(COLUMN(F1)/3)+ROW(D1)*5-5,MOD(COLUMN(F1),3))
I2=OFFSET($A$1,INT(COLUMN(G1)/3)+ROW(E1)*5-5,MOD(COLUMN(G1),3))
J2=OFFSET($A$1,INT(COLUMN(H1)/3)+ROW(F1)*5-5,MOD(COLUMN(H1),3))

E2:A1向下偏移1,向右偏移0
F2:A1向下偏移1,向右偏移1
G2:A1向下偏移1,向右偏移2
H2:A1向下偏移2,向右偏移0
I2: A1向下偏移2,向右偏移1
J2: A1向下偏移2,向右偏移2

  • column(C1)/3=1
  • int(column(D1)/3)=1
  • row(A1)*5-5=0
  • row(B1)*5-5=5
  • int(column(D1)/3)+row(A1)*5-5=1
  • mod(column(C1),3)=0
  • mod(column(D1),3)=1

在这里插入图片描述
以5个为一组,可根据实际情况修改
在这里插入图片描述


总结

分享:
科学事物,必须不断研究,认真实验,得寸进尺地深入、扩展,通过韧性的战斗,才能可能获取光辉的成就。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若竹之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值