엑셀 / VBA / 여러 시트의 내용을 하나의 시트에 모으는 방법

동일한 형식에 내용만 다른 여러 시트의 데이터를 하나로 합치는 방법을 알아본다.

예를 들어 다음과 같은 엑셀 문서가 있다고 하자. 첫 번째 시트는 합쳐진 데이터가 모일 시트이고, 나머지 세 개는 데이터가 있는 시트이다.

[개발 도구]의 [Visual Basic]을 클릭한다.(만약 개발 도구 메뉴가 없다면 여기의 안내대로 개발 도구를 추가한다.)

[삽입]의 [모듈]을 클릭한다.

다음과 같이 코드를 입력한다.

Sub Merge()

    Sheets(1).Activate '첫 번째 시트로 이동
    ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
    Selection.Delete '선택한 셀 삭제

    Sheets(2).Activate '두 번째 시트로 이동
    ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
    Selection.Copy Destination:=Sheets(1).Range("A1") '첫 번째 시트에 붙여넣기
    ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택

    Dim I As Integer
    For I = 3 To 4
        Sheets(I).Activate 'I 번째 시트로 이동
        ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select '선택에서 1행 제외
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) '첫 번째 시트에 붙여넣기
        ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택
    Next
    
    Sheets(1).Activate '첫 번째 시트로 이동
    ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택
    
End Sub

다음의 순서로 작업하는 코드이다.

  1. 첫 번째 시트를 선택하고 내용을 지운다.
  2. 두 번째 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.
  3. 나머지 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.

두 번째 시트에 대한 코드와 나머지 시트에 대한 코드가 다른 이유는 머리글 때문이다.

이제 [개발 도구]의 [매크로]를 클릭한다. 단축키는 Alt+F8이다.

Merge를 선택하고 [실행]을 클릭한다.

다음처럼 첫 번째 시트에 데이터가 다 모인다.

같은 카테고리의 다른 글
엑셀 / 함수 / TRIM / 공백 제거하는 함수

엑셀 / 함수 / TRIM / 공백 제거하는 함수

개요 TRIM은 문자열에 있는 공백을 제거하는 함수이다. 문자열 양 끝에 있는 공백은 다 제거한다. 문자열 사이에 있는 공백은 하나만 남기고 제거한다. 구문 TRIM(text) 예제 =TRIM(" AB CD ") AB, CD 양 끝과 사이에 한 개의 공백이 있으면, 양 끝의 공백은 제거하고, 사이에 있는 것은 그대로 둔다. =TRIM(" AB CD ") AB, CD 양 끝과 사이에 두 개의 공백이 있으면, 양 ...

엑셀 / 빈 셀, 빈 셀이 있는 행, 빈 셀이 있는 열 삭제하는 방법

엑셀 / 빈 셀, 빈 셀이 있는 행, 빈 셀이 있는 열 삭제하는 방법

빈 셀 또는 빈 셀을 포함한 행 또는 빈 셀을 포함한 열이 필요 없는 자료여서 삭제를 해야 할 때, 일일이 찾아서 삭제하는 것은 번거롭습니다. 자료가 많다면 시간도 많이 걸리고 실수할 가능성도 커집니다. 다행히 엑셀에는 그러한 작업을 쉽게 할 수 있는 기능을 포함하고 있습니다. 빈 셀 선택하기 빈 셀을 찾을 범위를 정합니다. 정하지 않아도 빈 ...

엑셀 / 함수 / ISEVEN, ISODD / 짝수인지 홀수인지 확인하는 함수

엑셀 / 함수 / ISEVEN, ISODD / 짝수인지 홀수인지 확인하는 함수

개요 ISEVEN과 ISODD 함수는 인수가 짝수인지 홀수인지 확인하는 함수입니다. 구문 ISEVEN(number) number가 짝수면 TRUE, 홀수면 FALSE를 반환합니다. 0은 짝수로 취급하고, 소숫점 이하는 버립니다. ISODD(number) number가 홀수면 TRUE, 짝수면 FALSE를 반환합니다. 소숫점 이하는 버립니다. 예제 엑셀 / EVEN, ODD - 짝수 또는 홀수로 올림 또는 내림하는 함수

엑셀 / VBA / 모듈 내보내기 가져오기

엑셀 / VBA / 모듈 내보내기 가져오기

엑셀에서 VBA로 만든 모듈을 다른 파일에서 사용하는 방법은, 그 모듈을 내보내고 다른 파일에서 가져오는 것입니다. 작업은 Visual Basic Editor에서 합니다. 모듈 내보내기 내보내기를 할 엑셀 파일을 열고 Visual Basic Editor를 엽니다. 단축키는 Alt+F11입니다. 내보낼 모듈을 선택하고 마우스 우클릭합니다. 팝업 메뉴에서 를 클릭하면 확장자가 bas인 파일로 저장됩니다. bas 파일은 텍스트 파일로, 메모장 등 텍스트 에디터로 ...

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

VLOOKUP 문법 VLOOKUP(lookup_value,table_array,col_index_num,) lookup_value : 찾을 값 table_array : 조회할 범위 col_index_num : 반환하려는 값이 있는 열 번호 range_lookup : TRUE면 근사 일치, FALSE면 정확히 일치. 기본값은 TRUE 예제 =VLOOKUP(E2,A2:C16,2,FALSE) A2:C16의 1열(A열)에서 E2의 값을 찾고, 그 행의 2열(B열)의 값을 출력합니다. FALSE는 정확히 일치하는 것을 찾으라는 뜻입니다. E2에 6이 있으니, 6에 해당하는 이름 F를 출력합니다. =VLOOKUP(E2,A2:C16,3,FALSE) 가격을 출력하고 싶다면 2를 3으로 변경하면 됩니다. 선택 ...

엑셀 / 피벗 테이블 / 만드는 방법

엑셀 / 피벗 테이블 / 만드는 방법

자료 분석을 위해서 필터를 하거나 새롭게 수식을 만드는 것은 번거로운 일입니다. 피벗 테이블을 이용하면 다양한 형식의 분석 결과를 쉽게 만들 수 있습니다. 피벗 테이블을 만드는 방법은... 방법 1 분석하려는 자료를 선택한 다음, 을 클릭합니다. 만약 자료가 표라면 자동으로 표가 선택됩니다. 을 클릭하면... 새 워크시트에 피벗 테이블이 만들어집니다. 자료가 표가 아닌 경우 셀들을 선택해서 ...

엑셀 / 행과 열 바꾸는 방법

엑셀 / 행과 열 바꾸는 방법

제품 A와 제품 B를 판매하고 있습니다. 날짜별 제품 판매량을 엑셀로 정리하려고 합니다. 그래서 아래와 같이 열은 날짜로, 행은 제품으로 기준을 정하고 입력을 했더니, 날짜가 지날수록 표가 가로로 길어집니다. 계속 길어지면 스크롤 하면서 내용을 봐야 하는데 가로 스크롤보다는 세로 스크롤이 편합니다. 데이터가 많이 입력된 상태에서 행과 열을 어떻게 쉽게 바꿀 수 있을까요? 해결책은 ...

엑셀 / 나누기, 몫 구하기, 나머지 구하기

엑셀 / 나누기, 몫 구하기, 나머지 구하기

나누기 나누기는 슬래시 기호로 해요. 예를 들어 6 나누기 2는 6/2 와 같이 하면 됩니다. 몫 구하기 나누었을 때의 몫만 구하고 싶다면 QUOTIENT 함수를 이용하면 돼요. QUOTIENT(numerator, denominator) numerator에는 피제수, denominator에는 제수를 넣습니다. 나머지 구하기 나누었을 때의 나머지만 구하고 싶다면 MOD 함수를 사용합니다. MOD(number, divisor) number에는 피제수, divisor에는 제수를 입력합니다. 예제 다음은 100을 8로 나누어보고, 몫을 구하고, 나머지를 구하는 예제입니다.

엑셀 / ROUND - 반올림, ROUNDUP - 올림, ROUNDDOWN - 내림

엑셀 / ROUND - 반올림, ROUNDUP - 올림, ROUNDDOWN - 내림

개요 반올림은 ROUND 함수로, 올림은 ROUNDUP 함수로, 내림은 ROUNDDOWN 함수로 합니다. 구문 반올림 ROUND(number, num_digits) number 필수 요소입니다. 반올림할 숫자입니다. num_digits 필수 요소입니다. 반올림할 자릿수입니다. 예를 들어 =ROUND(1234.5678,2) 는 소수 셋째 자리에서 반올림하여 소수 둘째 자리까지 나타냅니다. =ROUND(1234.5678,0) 은 소수 첫째 자리에서 반올림하여 일의 자리까지 나타내고, =ROUND(1234.5678,-2) 는 십의 자리에서 반올림하여 백의 자리까지 나타냅니다. 올림 ROUNDUP(number, num_digits) number 필수 요소입니다. 올림할 숫자입니다. num_digits 필수 요소입니다. 올림할 자릿수입니다. 자릿수의 의미는 반올림과 같습니다. -2이면 소수 ...

엑셀 / 여러 조건 LOOKUP

엑셀 / 여러 조건 LOOKUP

LOOKUP을 이용하면 여러 조건을 만족하는 값을 찾을 수 있다. =LOOKUP(1,1/((A1:A4=E1)*(B1:B4=F1)),C1:C4)