系列文章目录
文章目录
前言
一、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个为一组,可根据实际情况修改
总结
分享:
科学事物,必须不断研究,认真实验,得寸进尺地深入、扩展,通过韧性的战斗,才能可能获取光辉的成就。