8个回答
展开全部
分享一个碰到这种转置问题时懒得想公式的人想的方法:
就是利用数据透视表,但是我也不是wps,不知道和excel的数据透视表有啥区别:
首先把你的数据前面加一列序号:
然后给这块数据加上表头(我是直接用的插入-->表格的功能,且不勾选“表格带标题”)
然后选中表格插入数据透视表
这里往下就是最重要的步骤了,必须依次把各列添加到行标签,并形成如下样式:
在透视表旁边加一列序号,按照你的总列数来重复(包括刚才加的辅助列),这里一共是六列数据,所以就从1到6,然后把1到6复制到透视表底部(除总计那行):
然后把这两列复制,选择性粘贴-->数值
按照第二列进行排序:
把刚才加的第一部分序号去掉,把第二列辅助列去掉,然后清除一下格式,和这种”(空白)“单元格、还有总计之类的多余,然后就是你的结果了
展开全部
如果是我遇到这样的问题,我喜欢用VBA解决,下面的代码即可:
Sub 多列合并()
Dim arr, i, j, k, x
arr = ActiveSheet.UsedRange
x = 1
k = UBound(arr,2)+1
For i = 1 To UBound(arr)
For j = 1 To UBound(arr,2)
If arr(i,j)<>"" Then
Cells(x, k) = arr(i, j)
x = x + 1
End If
Next j
Next i
End Sub
更简单的办法是把文件分享出来,我做好后回你,可以通过【百度云盘】(一个使用百度账户登录的可以对话和传送文件的应用)
追问
WPS没有VBA
追答
你标题写的EXCEL呀,WPS的问题我不会去回的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请参考此方法,加两个辅助行,a17=COLUMN()*100+1右拉至e17,a18=IF(COUNTA(A1:A16)>1,COLUMN()*100+COUNTA(A1:A16),"")右拉至e18
然后f1=IF(ROW(F1)>COUNT($A$17:$E$18),"",INDEX(A:E,MOD(SMALL($A$17:$E$18,ROW(F1)),100),INT(SMALL($A$17:$E$18,ROW(F1))/100)))下拉,若数据多,就把100改为1000、10000或更大
然后f1=IF(ROW(F1)>COUNT($A$17:$E$18),"",INDEX(A:E,MOD(SMALL($A$17:$E$18,ROW(F1)),100),INT(SMALL($A$17:$E$18,ROW(F1))/100)))下拉,若数据多,就把100改为1000、10000或更大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询