NAVER

질문 엑셀 데이터 합치기 질문이요!!ㅠㅠ
y0**** 조회수 7,255 작성일2012.05.30
 

안녕하세요

두개의 시트가 있습니다.
<시트1 과 시트2 > 두개의 시트를 통합하여 시트3처럼 만들고 싶습니다.

만명 가까이 되는 데이터 두개를 일일이 비교하려니 여간 힘든게 아니라서 부탁드립니다. ㅠ

고수님들 도와주세여~~~~

 

+++ 시트 1,2 의 기준값은 코드입니다. 코드번호를 기준으로 데이터를 채워 넣고 싶습니다.

 

시트1

 

A

E

 1 

학년

반 

번호

이름

나이 

신장

체중

시력

청력 

취미

특기 

지역

합격 

코드 

 2

 1

  1 

 

 가

 8

 

20 

 1.5 

 정상 

  A 

서울

O

 A123

 3

 1

 2

 

 나

 8

 21

 1.5

정상

 B

춘천

X

 A124

 4

 3

 4

 

 다

 10

 28

 1.2

정상

 C

대전 

O

 A125

 5

 2

 3

 라

 9

 24

 1.0

정상

 D

O

A126

 6

 5

 5

 마

 12

 37

 0.8

정상

 E

제주

X

A127

 7

 1

  1 

 가

 8

 20

 1.5

정상

 A

서울

O

A128



시트2

 

A

E

 1 

학년

반 

번호

이름

나이 

신장

체중

시력

청력 

취미

특기 

지역

합격 

코드 

 2

 1

  1 

 12

 가

 120 

20 

  

 정상 

  A 

서울

O

 A123

 3

 1

 2

 31

 나

125

 21

정상

 B

춘천

X

 A124

 4

5

 5

 7

 마

 140 

 37

 

정상

 E

제주 

X

 A127

 5

 2

 3

 2

 라

130

 24

 

정상

 D

부산

O

A126

 6

3

 4

 19

 다

 

139

 28

정상

 C

대전

X

A125

 7

1

  1 

 12

 가

120 

 20

정상

  A

G

서울

O

A128



 

시트3

 

A

E

 1 

학년

반 

번호

이름

나이 

신장

체중

시력

청력 

취미

특기 

지역

합격 

코드 

 2

 1

  1 

 12

 가

 8

 120 

20 

 1.5 

 정상 

  A 

서울

O

 A123

 3

 1

 2

 31

 나

 8

125

 21

 1.5

정상

 B

춘천

X

 A124

 4

 3

 4

 19

 다

 10

 139 

 28

 1.2

정상

 C

대전 

O

 A125

 5

 2

 3

 2

 라

 9

130

 24

 1.0

정상

 D

부산

O

A126

 6

 5

 5

 7

 마

 12

140

 37

 0.8

정상

 E

제주

X

A127

 7

 1

  1 

 12

 가

 8

120

 20

 1.5

정상

A

서울

O

A128


프로필 사진

답변자님,

정보를 공유해 주세요.

1 개 답변
1번째 답변
프로필 사진
니꾸
물신
MS엑셀 46위, 영어 독해, 읽기, 영어 분야에서 활동
본인 입력 포함 정보

아래 VBA(매크로) 참조하세요. Sheet3에 새로운 값들을 복사하는 것들은 속도가 떨어지므로 그냥 Sheet1에 값을 채우는 것으로 대체하였습니다. 그러므로 원본으로 사용하지 마시고 복사본 데이터로 실행하세요.

 

일반적인 매크로 코드 사용법 동영상 : http://blog.naver.com/rosa0189/60141785139

(매크로를 만드는 것은 어려울지 모르지만 다른 사람들이 만든 매크로 코드의 사용은 쉽습니다. 동영상 참고하여 아래의 코드를 님의 엑셀파일에 붙여넣고 실행만 하면 되는 단순한 작업.) 

 

아래 예제에 사용된 엑셀(2010) 파일 위치 : http://blog.naver.com/rosa0189/60163581317

_____________________________________________________________________________________

 


   
매크로 실행 전 Sheet1

 


매크로 실행 전 Sheet2



매크로 실행 후 Sheet1의 결과

 

Option Explicit

Sub find_And_Fill_Blanks()
   
    Dim rng1 As Range 'Sheet1의 N열 문자 넣을 변수
    Dim rng2 As Range 'Sheet2의 N열 문자 넣을 변수
    Dim rngC As Range '각 셀을 넣을 변수
    Dim C As Range '선택영역 전체를 넣을 변수
    Dim rngA As Range 'Sheet1의 행을 넣을 변수
    Dim rngB As Range 'Sheet1의 행을 넣을 변수
    Dim rngEach As Range 'Sheet1 행의 각 셀을 넣을 변수
    Dim r As Long '반복구문 및 셀번호에 사용할 변수
   
    Set rng1 = Range("N2", Cells(Rows.Count, "N").End(3))
        'Sheet1 N열 문자 변수에 넣음
    With Sheets(2) 'Sheet2에서
        Set rng2 = .Range(.[N2], .Cells(Rows.Count, "N").End(3))
    End With 'N열 문자 변수에 넣음
   
    For Each rngC In rng1 'Sheet1 N열의 각 셀을 순환
        Set C = rng2.Find(rngC, , , xlWhole)   'Sheet2에서 일치한 셀을 변수에 넣음
       
        If Not C Is Nothing Then '일치한 셀이 존재하면
            Set rngA = rngC.Offset(, -13).Resize(, 13)  'Sheet1 셀의 행을 변수에
            Set rngB = C.Offset(, -13).Resize(, 13)       'Sheet2 셀의 행을 변수에
           
            For r = 1 To 13'13회 반복
                If IsEmpty(rngA.Cells(r)) Then   '만일 빈셀이 있다면
                    rngA.Cells(r) = rngB.Cells(r) 'Sheet2의 데이터를 Sheet1의 빈셀에 입력
                End If
            Next r
           
        End If
    Next rngC
   
    Set C = Nothing '개체변수들 초기화(메모리 비우기)
    Set rng1 = Nothing
    Set rng2 = Nothing
    Set rngA = Nothing
    Set rngB = Nothing
   
End Sub

2012.05.30.

  • 채택

    질문자가 채택한 답변입니다.

  • 출처

    본인

도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.