여러 열을 하나로 쌓으려면 어떻게 해야 합니까?

여러 열을 하나로 쌓으려면 어떻게 해야 합니까?

예시 데이터

나는 이것을 달성하기 위해 VBA에 대한 경험이 충분하지 않습니다. 다음을 수행할 수 있도록 아래 VBA를 어떻게 수정합니까?

  1. 새 시트에 쌓인 열을 넣습니다.

  2. 공백 처리(아래 코드는 현재 이 작업을 수행함)

3.code는 사용자가 현재 선택한 범위에서 실행됩니다. 이상적으로는 사용자가 연속되지 않은 열을 선택할 수 있습니다.

Sub MoveAllDataToColumnA()
    Dim i As Long, ws As Worksheet, rngCopy As Range, rngEnd As Range
    Set ws = ActiveSheet
    Do Until ws.Cells(1, 2).Value = ""
        Set rngCopy = ws.Range("B2", ws.Cells(ws.Rows.Count, "B").End(xlUp))
        Set rngEnd = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0)
        rngEnd.Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
        rngCopy.EntireColumn.Delete
    Loop
End Sub

답변1

요구 사항 #3을 처리할 수는 없지만 이를 위해 파워 쿼리 추가 기능을 사용하겠습니다. Excel 2016부터 파워 쿼리는 "가져오기 및 변환" 섹션 아래의 데이터 리본에 기본 제공됩니다.

파워 쿼리에서 만들 단계는 다음과 같습니다.

조직 및 길이 열을 선택한 다음 "열 제거"를 선택합니다.

카테고리 열을 선택하고 "열 피벗 해제/기타 열 피벗 해제"를 선택합니다.

결과를 새로운 Excel 테이블로 전달할 수 있습니다.

관련 정보