发布网友 发布时间:2022-04-22 15:29
共3个回答
热心网友 时间:2023-07-04 06:30
如果数据很多的话可以使用VBA代码来解决,点击转置为行按钮,会出现“请选择转职的区域”,然后在工作表中选择你的数据,然后确定,完成后会出现“请选择放置的位置”,点击选择后,就将多行转职成为一行。
以下是录制的效果及执行代码
Sub hang()
Dim a, b As Object
Dim n!
Set a = Application.InputBox("请选择要转职的区域", , , , , , , 8)
Set b = Application.InputBox("请选择要放置的位置", , , , , , , 8)
For Each c In a
b.Offset(, n + 1 - 1) = c
n = n + 1
Next
End Sub
在VBA编辑窗口中新建一个模块,将代码复制到模块中,点击执行。
热心网友 时间:2023-07-04 06:31
按你贴的图(上面的图为Sheet1,下面的图为Sheet2):追答B1数组公式改为普通公式:
=IF(ROW(A1)=1,IF(MOD(COLUMN(Sheet1!A1),2),Sheet1!$B$1,Sheet1!$C$1)&INT(COLUMN(Sheet1!B1)/2),IF($A1="","",IF(ROW(A1)=COUNTA(Sheet1!$A:$A),OFFSET(Sheet1!$B$1,MATCH($A1,Sheet1!$A:$A,0)-2+INT(COLUMN(Sheet1!B$1)/2),MOD(COLUMN(Sheet1!B$1),2),,)&"",IF(INT(COLUMN(Sheet1!B$1)/2)>IF($A2="",MAX(IF(Sheet1!$B$1:$B$999"",ROW($B$1:$B$999))),MATCH($A2,Sheet1!$A:$A,0))-MATCH($A1,Sheet1!$A:$A,0),"",""&OFFSET(Sheet1!$B$1,MATCH($A1,Sheet1!$A:$A,0)-2+INT(COLUMN(Sheet1!B$1)/2),MOD(COLUMN(Sheet1!B$1),2),,)))))
热心网友 时间:2023-07-04 06:31
这么乱。每个人的科次不一样多。得编程实现了。