데이터 목록을 Excel로 가져 오는 경우 A 열에 많은 데이터가 포함되는 것은 드문 일이 아닙니다. 실제로 다른 열에 아무것도없는 것은 드문 일이 아닙니다. (이는 모두 가져 오는 데이터의 특성에 따라 다릅니다.) Excel에서 데이터 작업의 일부로 데이터를 “재구성”하여 A 열보다 더 많은 열로 가져와야 할 수 있습니다. .

예를 들어 데이터를 가져 와서 A 열의 1 ~ 212 행을 차지했다고 가정 해 보겠습니다. 실제로 원하는 것은 데이터가 A ~ F 열을 차지하는 것이지만 데이터를 보관하려면 많은 행이 필요합니다. 따라서 A2는 B1로, A3에서 C1, A4, D1, A5에서 E1, A6에서 F1로, A7에서 A2로, A8에서 B2로 이동해야합니다.

이러한 방식으로 데이터를 재구성하려면 다음 매크로를 사용할 수 있습니다.

재구성 할 데이터를 선택한 다음 매크로를 실행합니다. 재구성 된 데이터에서 원하는 열 수를 묻는 메시지가 표시되고 데이터 이동이 시작됩니다.

Sub CompressData()

Dim rSource As Range     Dim rTarget As Range     Dim iWriteRow As Integer     Dim iWriteCol As Integer     Dim iColCount As Integer     Dim iTargetCols As Integer     Dim J As Integer

iTargetCols = Val(InputBox("How many columns?"))

If iTargetCols > 1 Then         Set rSource = ActiveSheet.Range(ActiveWindow.Selection.Address)

If rSource.Columns.Count > 1 Then Exit Sub

iWriteRow = rSource.Row + (rSource.Cells.Count / iTargetCols)

iWriteCol = rSource.Column + iTargetCols - 1         Set rTarget = Range(Cells(rSource.Row, rSource.Column), _           Cells(iWriteRow, iWriteCol))



For J = 1 To rSource.Cells.Count             rTarget.Cells(J) = rSource.Cells(J)

If J > (rSource.Cells.Count / iTargetCols) Then _               rSource.Cells(J).Clear         Next J     End If End Sub

매크로는 매크로를 실행할 때 선택한 소스 범위와 원하는 열 수를 기반으로 계산 된 크기로 정의 된 대상 범위의 두 범위를 정의하여 정보를 전송합니다. 소스 범위는 rSource 변수 개체로 표시되고 대상 범위는 rTarget으로 표시됩니다. For …​ Next 루프는 실제로 값을 전송하는 데 사용됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2301)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Reorganizing_Data [데이터 재구성].