EXCEL怎么把多列首尾连接放到一列?

如图,A-E行数不小于1千条,每列行数不一。求F列公式... 如图,A-E行数不小于1千条,每列行数不一。求F列公式 展开
 我来答
laorenjia1987
2019-02-27 · TA获得超过2765个赞
知道大有可为答主
回答量:1734
采纳率:73%
帮助的人:430万
展开全部

分享一个碰到这种转置问题时懒得想公式的人想的方法:

就是利用数据透视表,但是我也不是wps,不知道和excel的数据透视表有啥区别:

  1. 首先把你的数据前面加一列序号:

  2. 然后给这块数据加上表头(我是直接用的插入-->表格的功能,且不勾选“表格带标题”)

  3. 然后选中表格插入数据透视表

  4. 这里往下就是最重要的步骤了,必须依次把各列添加到行标签,并形成如下样式:

  5. 在透视表旁边加一列序号,按照你的总列数来重复(包括刚才加的辅助列),这里一共是六列数据,所以就从1到6,然后把1到6复制到透视表底部(除总计那行):

  6. 然后把这两列复制,选择性粘贴-->数值

  7. 按照第二列进行排序:

  8. 把刚才加的第一部分序号去掉,把第二列辅助列去掉,然后清除一下格式,和这种”(空白)“单元格、还有总计之类的多余,然后就是你的结果了

yanxy0924
2019-02-27 · 知道合伙人互联网行家
yanxy0924
知道合伙人互联网行家
采纳数:7683 获赞数:18578

向TA提问 私信TA
展开全部

F1输入

=IF(ROW(A1)<=COUNTA(A:A),A1,IF(ROW(A1)<=COUNTA(A:B),INDEX(B:B,ROW(A1)-COUNTA(A:A)),IF(ROW(A1)<=COUNTA(A:C),INDEX(C:C,ROW(A1)-COUNTA(A:B)),IF(ROW(A1)<=COUNTA(A:D),INDEX(D:D,ROW(A1)-COUNTA(A:C)),INDEX(E:E,ROW(A1)-COUNTA(A:D))))))

公式下拉

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2019-01-17 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65808
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

如果是我遇到这样的问题,我喜欢用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的问题我不会去回的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7b0c7d7
2019-02-28 · TA获得超过4168个赞
知道大有可为答主
回答量:3273
采纳率:91%
帮助的人:1157万
展开全部

F1=IFERROR(INDIRECT(TEXT(RIGHT(SMALL(IF(A$1:E$99<>"",ROW($1:$99)*100+COLUMN(A:E)*(10^7+1)),ROW(A1)),6),"!R0C00"),),"")    

或=INDIRECT(TEXT(RIGHT(SMALL(IF(A$1:E$99<>"",ROW($1:$99)*100+COLUMN(A:E)*(10^7+1),9^9),ROW(A1)),6),"!R0C00"),)&""    

数组公式,下拉

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友24ef169fc
2019-01-17 · TA获得超过9081个赞
知道大有可为答主
回答量:2.2万
采纳率:63%
帮助的人:4432万
展开全部
请参考此方法,加两个辅助行,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或更大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式