我有多个列表,它们位于excel的不同列中。我需要做的是将这些数据列组合成一个大列。我不在乎是否有重复的条目,但我希望它跳过每列的第1行。Excel - 将多列组合到一列中
如果ROW1的头文件从1月到12月,列的长度不同,需要合并为一个大列,那又如何呢?
ROW1| 1 2 3
ROW2| A D G
ROW3| B E H
ROW4| C F I
应合并成需要
A
B
C
D
E
F
G
H
I
每列的第一行被跳过。
我有多个列表,它们位于excel的不同列中。我需要做的是将这些数据列组合成一个大列。我不在乎是否有重复的条目,但我希望它跳过每列的第1行。Excel - 将多列组合到一列中
如果ROW1的头文件从1月到12月,列的长度不同,需要合并为一个大列,那又如何呢?
ROW1| 1 2 3
ROW2| A D G
ROW3| B E H
ROW4| C F I
应合并成需要
A
B
C
D
E
F
G
H
I
每列的第一行被跳过。
不知道这是否完全有帮助,但我有一个问题,我需要一个“聪明”的合并。我有两列,A & B.我只想在A空白时移动B.见下文。它基于选择范围,也许可以用来抵消第一行。
Private Sub MergeProjectNameColumns()
Dim rngRowCount As Integer
Dim i As Integer
'Loop through column C and simply copy the text over to B if it is not blank
rngRowCount = Range(dataRange).Rows.Count
ActiveCell.Offset(0, 0).Select
ActiveCell.Offset(0, 2).Select
For i = 1 To rngRowCount
If (Len(RTrim(ActiveCell.Value)) > 0) Then
Dim currentValue As String
currentValue = ActiveCell.Value
ActiveCell.Offset(0, -1) = currentValue
End If
ActiveCell.Offset(1, 0).Select
Next i
'Now delete the unused column
Columns("C").Select
selection.Delete Shift:=xlToLeft
End Sub
Function Concat(myRange As Range, Optional myDelimiter As String) As String
Dim r As Range
Application.Volatile
For Each r In myRange
If Len(r.Text) Then
Concat = Concat & IIf(Concat <> "", myDelimiter, "") & r.Text
End If
Next
End Function
试试这个。在您的数据的范围内的任意位置单击,然后使用这个宏:
Sub CombineColumns()
Dim rng As Range
Dim iCol As Integer
Dim lastCell As Integer
Set rng = ActiveCell.CurrentRegion
lastCell = rng.Columns(1).Rows.Count + 1
For iCol = 2 To rng.Columns.Count
Range(Cells(1, iCol), Cells(rng.Columns(iCol).Rows.Count, iCol)).Cut
ActiveSheet.Paste Destination:=Cells(lastCell, 1)
lastCell = lastCell + rng.Columns(iCol).Rows.Count
Next iCol
End Sub
我创建了一个例子电子表格这里的如何使用简单的Excel公式做到这一点,并没有使用宏(你需要使自己的调整为摆脱第一行的,但是这应该是很容易,一旦你搞清楚我的例子电子表格的工作原理):
您可以将列,而无需使用宏。在公式栏中键入以下功能:
= IF(ROW()< = COUNTA(A:A),INDEX(A:A,ROW()),IF(ROW()< = COUNTA(A :B),INDEX(B:B,ROW() - COUNTA(A:A)),IF(ROW()> COUNTA(A:C), “”,INDEX(C:C,ROW() - COUNTA( A:B)))))
该语句使用3 IF的功能,因为它需要3列组合在一起:
这是一个了不起的答案! – 2017-05-07 07:37:06