如何将4列合并为1列?
使用office 2010.
一切都在同一张表中。
数据在列A B C & d可以改变(增加或减少每日)如何将4列合并为1列?
我有4列列A B C & d可以增加减少的
OUTPUT --> IN column F should be
---A-----B-----C------D---------------------------------------F
1 5 8 AP 1
2 6 9 BP 2
3 7 1 CD 3
4 5 QW 4
5
6
7
8
9
1
5
AP
BP
CD
QW
长度。
这个怎么样?
Sub move()
Dim ws As Worksheet
Dim outputColumn As Long
Dim currentColumn As Long
Dim currentOutputRow As Long
Set ws = ActiveSheet
outputColumn = 6 ' column f
For currentColumn = 1 To 4
currentOutputRow = ws.Cells(ws.Rows.Count, outputColumn).End(xlUp).Row
If (currentOutputRow > 1) Then
currentOutputRow = currentOutputRow + 1
End If
ws.Range(ws.Cells(1, currentColumn), ws.Cells(ws.Rows.Count, currentColumn).End(xlUp)).Copy _
ws.Cells(currentOutputRow, outputColumn)
Next
End Sub
感谢它的工作,但仍然很少的事情,它也包括行1,它不应该,我知道这将总是弄乱了东西,如果它不是A B C D?如果是I,O,P Q? – Mowgli 2013-02-08 14:50:39
@Mowgli你可以通过修改它从'ws.Cells(1,currentColumn)'复制到'ws.Cells(2,currentColumn)'的最后一行来修改它以使用第2行和第2行。对于列问题,您将不得不创建一个包含所需列的数组,然后循环而不是'1到4' – 2013-02-08 18:27:07
使用以下。它接受你需要改变的范围,并返回一个垂直的数组值。要填充值,请使用数组公式。
Function ToVector(rng As Range)
Dim cells()
ReDim cells(rng.cells.Count)
Dim i As Double
For Each cell In rng
cells(i) = cell
i = i + 1
Next cell
ToVector = Application.WorksheetFunction.Transpose(cells)
End Function
有了这个网站get-digital-help.com/
Combine Columns的帮助但这仅仅是静态的。
我将它转换为动态含义变化范围。
例如我张贴ABCD IN F
为了使配方更加清楚将在名称管理器中输入公式
下面是每一列动态公式(以名马槽云)
ALIST = =OFFSET($A$1,0,0,COUNTA($A:$A),1)
BLIST = =OFFSET($B$1,0,0,COUNTA($B:$B),1)
CLIST = =OFFSET($C$1,0,0,COUNTA($C:$C),1)
DLIST = =OFFSET($D$1,0,0,COUNTA($D:$D),1)
公式栏F并拖下去
=IFERROR(INDEX(ALIST, ROWS(F$1:$F1)),
IFERROR(INDEX(BLIST, ROWS(F$1:$F1)-ROWS(ALIST)),
IFERROR(INDEX(CLIST, ROWS(F$1:$F1)-ROWS(ALIST)-ROWS(BLIST)),
IFERROR(INDEX(DLIST, ROWS(F$1:$F1)-ROWS(ALIST)-ROWS(BLIST)-ROWS(CLIST)),""))))
截图
护理,告诉我们你试图让这个做了什么? – 2013-02-08 14:34:10
嗨朋友)假设“数据在列A B C&D可以改变” - 我会看VBA。你有尝试过什么吗? – 2013-02-08 14:34:10
我已经知道它可以在1列中组合,但不会跟上范围。 – Mowgli 2013-02-08 14:37:13