excel中一行多个数据怎么分成多行?
发布网友
发布时间:2022-03-08 18:35
我来回答
共8个回答
热心网友
时间:2022-03-08 20:04
=IF(COLUMN()<5,OFFSET(A$1,(ROW(A1)-1)/38,),OFFSET(A$1,(ROW(A1)-1)/38,MOD((ROW(A1)-1),38))) &""
日期列将""去掉,设日期格式
到AP列貌似是38,如果有差异,自己调整下公式中的38
结果出来后将姓名列中为空的删除就可以了。
热心网友
时间:2022-03-08 21:22
你直接用最简单的办法,日期下面某一行的单元格,然后右下角有个小的正方块,你把鼠标放过去,出现十字架,然后拉动十字架就会直接是很多相同的信息,然后人名就复制粘贴就好了
热心网友
时间:2022-03-08 22:57
一次性完成不可能,但是那些人名可以通过复制→右键选选择性粘贴→转置来快速实现从横行变成竖列。
追问转置的话是不是得一行一行数据进行转置?我试了不能全选姓名进行转置,不是我要的结果。如果是一行一行地转就太麻烦了,几万行的数据。
追答几万行。。。那可能就只能启动VBA编写执行程序来实现了,这个我就不动了,抱歉!
热心网友
时间:2022-03-09 00:48
貌似可以解决。
方案一:
vba,程序并不难,但是如果以前没有涉及过编程的话可能快速上手有难度,所以需要你提供源文件,帮你处理完发回给您
方案二:
请告知最多一行的姓名到哪一列?试试用函数的方法来解决。追问
一行最多的有39个,到AP列了。
追答给你发了私信了,Q我
热心网友
时间:2022-03-09 02:56
这个需要很扎实的技巧来实现, 否则就只能用VBA了
有附件上传最好追问
热心网友
时间:2022-03-09 05:37
可以用VBA来实现。
热心网友
时间:2022-03-09 08:35
我感觉只能手动
热心网友
时间:2022-03-09 11:50
'===================================================================================
'假设你的表原内容在sheet1表,现在将处理后的结果放在sheet2表,ALT+F11,插入模块,复制
'本内容到代码框,然后回到表格,ALT+F8运行宏,完毕后到sheet2表看拆分结果
'练习关键点1、关键字不可与保留关键字重名(rows应该是保留关键字),最开始写成了rows=1,
' 导致所有本表所有单元格被填写为1
' 2、动态获取每行记录的姓名个数
' 3、不变内容与变化内容交叉写入
' tomato9931
'===================================================================================
Sub 拆分记录()
Rws = 1
For i = 1 To Sheets("sheet1").Cells(65536, 1).End(xlUp).Row
'xx = Sheets("sheet1").Cells(i, 5).End(xlToRight).Column
'If xx >= 255 Then xx = 5 '当只有一个名字时xltoright会直接获取到最大列
xx = Sheets("sheet1").Cells(i, 4).End(xlToRight).Column '从姓名前一列开始,防止只有一个姓名时,获取超过范围
For j = 5 To xx
For k = 1 To 4
Sheets("sheet2").Cells(Rws, k) = Sheets("sheet1").Cells(i, k)
Next k
Sheets("sheet2").Cells(Rws, 5) = Sheets("sheet1").Cells(i, j)
Rws = Rws + 1
Next j
Next i
MsgBox ("拆分记录完毕!")
Sheets("sheet2").Select
End Sub