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

系列文章目录


前言

一、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个为一组,可根据实际情况修改
在这里插入图片描述


总结

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

可以使用Python中的pandas库来实现该功能。 假设我们有一个名为&ldquo;data.xlsx&rdquo;的Excel文件,其中包含一个名为&ldquo;column1&rdquo;的列,我们想要将它拆分成两列&ldquo;column2&rdquo;和&ldquo;column3&rdquo;,分别按照逗号和空格来拆分。可以按照以下步骤进行操作: ``` python import pandas as pd #读取Excel文件 df = pd.read_excel(&#39;data.xlsx&#39;) # 拆分数据 split_data = df[&#39;column1&#39;].str.split(&#39;[, ]+&#39;, expand=True) # 重命名新列 split_data.columns = [&#39;column2&#39;, &#39;column3&#39;] # 合并拆分后的数据和原始数据 df = pd.concat([df, split_data], axis=1) # 删除原始的一列 df.drop(&#39;column1&#39;, axis=1, inplace=True) # 保存结果到新的Excel文件 df.to_excel(&#39;new_data.xlsx&#39;, index=False) ``` 以上代码首先使用pandas库读取Excel文件,然后使用`str.split()`方法按照正则表达式`[, ]+`来拆分原始数据,并将结果存储在一个新的数据帧中。接下来,我们通过`rename()`方法将新的数据帧的列名从默认的整数值&ldquo;0&rdquo;和&ldquo;1&rdquo;更改为&ldquo;column2&rdquo;和&ldquo;column3&rdquo;并将其与原始数据合并。最后,我们可以使用`drop()`方法删除原始的&ldquo;column1&rdquo;列并使用`to_excel()`将结果保存到新的Excel文件中。 请注意,以上代码仅给出了一种可能的解决方案。具体的拆分逻辑和正则表达式可以根据实际数据和需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

若竹之心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值