xdm 请教一个Excel的问题

Netherstorm-avatar

Netherstorm

2021-08-01T02:32:43+00:00

[img]https://img.nga.178.com/attachments/mon_202108/03/-7Qj60-dwxaZgT3cSsg-h8.jpg[/img]

我需要把红框里的8行数据全都弄到同一行中,像箭头指的那一行一样。有没有什么比剪切黏贴更快捷的方法?因为我这有12万行数据[s:ac:凌乱]

每个级数下面是10*8,共80个数据,这80个数据在一行就可以。

最后的结果就是:

第一行 级数1
第二行 测量时间
第三行 80个数据
第四行 级数2
第五行 测量时间
第六行 80个数据
...
Th1cc_Mang0-avatar

Th1cc_Mang0

这种恐怕得淘宝付费了
SakuRabi✿-avatar

SakuRabi✿

转置?不知道是不是你要的效果
LordGibi-avatar

LordGibi

用VB跑个小代码。
CknNoodSup-avatar

CknNoodSup

vba了吧,等我吃完饭写个康康
Sub a()
Dim i, j
i = 23
Do While Range("A" & i) <> ""
For j = 1 To 7
Range("A" & i + j).Resize(1, 10).Copy Cells(i, 10 * j + 1)
Next
Range("A" & i + 1).Resize(7, 10).ClearContents
i = i + 10
Loop
End Sub
用代码的话记得复制几份工作簿,以防excel崩溃[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]
看了一下楼主还要把空列删除,那把上面的代码改一下
Sub a()
Dim i, j
i = 23
Do While Range("A" & i) <> ""
For j = 1 To 7
Range("A" & i + j).Resize(1, 10).Copy Cells(i, 10 * j + 1)
Next
Range("A" & i + 1).Resize(7, 1).EntireRow.Delete
i = i + 10
Loop
End Sub
MOF1_Suren-avatar

MOF1_Suren

excel最大列数只支持16384,你这样放不下的
ZF-avatar

ZF

如果你这些数据都是按照图里面的排版间隔,那不是挺简单的吗,index公式把行里面的弄过去就好了啊
Netherstorm-avatar

Netherstorm

Reply to [pid=537963887,27894948,1]Reply[/pid] Post by [uid=41573855]onsomnia[/uid] (2021-08-03 11:05)不不不,就是红框里的80个数据在一行就可以,不用和上边的在一行
Olen_Down_Under-avatar

Olen_Down_Under

Reply to [pid=537963876,27894948,1]Reply[/pid] Post by [uid=14593711]右军校尉[/uid] (2021-08-03 11:05)[s:ac:哭笑]XLSX可以一百多万行
ZF-avatar

ZF

[quote][pid=537966483,27894948,1]Reply[/pid] Post by [uid=43143351]刘贱贱的全球后援会[/uid] (2021-08-03 11:11):

不不不,就是红框里的80个数据在一行就可以,不用和上边的在一行[/quote]我知道你的意思,不过我的做法解释起来挺麻烦的,毕竟我不会vba,不过用公式的话大概我会用到index,row,column这几个命令就可以做出来了

我的做法,用公式在第一行把第一个表里面8行都放进来,然后因为你这个表与表之间的间隔都是固定的,那么用row函数就可以把下面的表的值都取到了
MOF1_Suren-avatar

MOF1_Suren

[quote][pid=537967344,27894948,1]Reply[/pid] Post by [uid=38716266]bilibili163[/uid] (2021-08-03 11:13):
[s:ac:哭笑]XLSX可以一百多万行[/quote]大哥你分不清行和列吗?
ItsR3mix5-avatar

ItsR3mix5

慢慢来啊,先下楼买瓶可乐~
Mrfelineutube-avatar

Mrfelineutube

=(offset(@$a$1,column()//8,mod(column(),8)),1,1)
CryptexBruh-avatar

CryptexBruh

如果数据都是这种格式的,把这数据按行数复制行数列,在复制的第二个数据删除第一行那几个单元格上移,第二个删除两行的有数据的单元格上移动。直到数据对齐。然后插入一个序号列,按序号排序。
eMattCraig-avatar

eMattCraig

[quote][pid=537968168,27894948,1]Reply[/pid] Post by [uid=41573855]onsomnia[/uid] (2021-08-03 11:15):

我知道你的意思,不过我的做法解释起来挺麻烦的,毕竟我不会vba,不过用公式的话大概我会用到index,row,column这几个命令就可以做出来了[/quote]直接把公示发出来吧,先不解释
シヤゼロ-avatar

シヤゼロ

加一列排序号12345678,依次筛选12345678,复制各筛选条件出来到第一个区域,做8次复制粘贴即可

补充一下,要表头的话排序号排到10就可了