2010-06-04 11 views
7

Excel에서 별도의 열에있는 목록이 여러 개 있습니다. 이러한 데이터 열을 하나의 큰 열로 결합하면됩니다. 중복 항목이 있으면 상관하지 않지만 각 열의 행 1을 건너 뛰기를 원합니다.Excel - 여러 열을 하나의 열로 결합

또한 ROW1에 1 월에서 12 월 사이의 헤더가 있고 열의 길이가 다르므로 하나의 큰 열로 결합해야합니까?

A  
B  
C  
D  
E  
F  
G  
H  
I 

각각의 열의 첫 번째 행이 스킵되어야로

ROW1| 1 2 3  
ROW2| A D G  
ROW3| B E H  
ROW4| C F I 

는 결합한다.

답변

0

이것이 완전히 도움이되는지 확실하지 않지만 "스마트"병합이 필요한 문제가있었습니다. 나는 두 개의 열 A & B를 가졌습니다. A가 공백 일 때만 B를 이동하려고했습니다. 아래를 참조하십시오. 이것은 Range를 기반으로합니다. 이것은 아마도 첫 번째 행을 오프셋하는 데 사용할 수 있습니다.

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 
0
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 
12

이보십시오. 데이터의 사용자 범위의 아무 곳이나 클릭 한 다음이 매크로 사용 및 매크로를 사용하지 않고

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 
1

내가 여기에 간단한 엑셀 수식이 작업을 수행하는 방법의 예를 들어 스프레드 시트를 만들어을 (당신은 당신의 자신의 조정을 할 필요가있을 것이다 에 대한 첫 번째 행을 제거하기,하지만 당신은 내 예를 들어 스프레드 시트가 작동하는 방법을 알아낼 일단이) 쉽게해야합니다 :

https://docs.google.com/a/umich.edu/spreadsheet/ccc?key=0AuSyDFZlcRtHdGJOSnFwREotRzFfM28tWElpZ1FaR2c#gid=0

5

당신은 매크로를 사용하지 않고 열을 결합 할 수 있습니다. 공식 바의 다음 기능을 입력

= IF (ROW() < = COUNTA (A : A), 지수 (A : A, ROW()), IF (ROW() < = COUNTA (A을 COUNTA (A : C), "", INDEX (C : C, ROW() - COUNTA (B : B), INDEX (B : A : B)))))이 3 열 결합해야하기 때문에 함수, IF

문 3 사용 A 열에 들어

  • 를 기능 셀과의 행 번호를 비교 비어 있지 않은 A 열의 총 셀 수. 결과가 true 인 경우 함수는 row()에있는 A 열의 셀 값을 반환합니다. 결과가 false이면 함수는 다음 IF 문으로 이동합니다.
  • B 열의 경우 함수는 셀의 행 번호를 비어 있지 않은 A : B 범위의 셀 수와 비교합니다. 결과가 true이면 B 열에서 비어 있지 않은 첫 번째 셀의 값을 반환합니다. False 인 경우 함수는 다음 IF 문으로 이동합니다.
  • C 럼 C의 경우, 함수는 셀의 행 수를 비어 있지 않은 A : C 범위의 셀 수와 비교합니다. 결과가 true이면 함수는 빈 셀을 반환하고 더 이상 계산하지 않습니다. false 인 경우이 함수는 C 열에서 비어 있지 않은 첫 번째 셀의 값을 반환합니다.
+0

이것은 놀라운 대답입니다! –

관련 문제