2012-11-20 5 views
0

이 질문이 이미 존재한다면 사과드립니다. 잠시 동안 검색했지만 찾을 수 없습니다.Excel 하나의 열을 다른 값으로 결합/연결

나는 Excel에서 2 개의 열을 가지고 있으며 다른 열의 값이 같은 1 열의 값을 연결해야합니다. 예를 들어 나는이 있습니다

A | B 
12 | Value 1 
10 | Value 2 
13 | Value 3 
12 | Value 4 
10 | Value 5 

을 그리고 나는 나가 싶습니다

A | B 
12 | Value 1, Value 4 
10 | Value 2, Value 5 
13 | Value 3 

I 행의 수천 이상적으로 나는 결과에 새 워크 시트를 만드는 데 싶습니다하지 기존 시트를 파괴하십시오. B 열에는 값을 무시하고 연결하지 않으려는 일부 값이 있습니다. 사전에

감사합니다.

답변

1

이 시도 : 당신이해야합니다

Sub combineValues() 
    Dim dic As Dictionary 
    Dim key, val, i, p, k 
    Set dic = New Dictionary 
    For i = 1 To Worksheets(1).Range("A65536").End(xlUp).Row 
     key = Worksheets(1).Cells(i, 1).Value 
     val = Worksheets(1).Cells(i, 2).Value 
     If dic.Exists(key) Then 
      dic.Item(key) = dic.Item(key) & ", " & val 
     Else 
      dic.Add key, val 
     End If 
    Next 
    p = 1 
    For Each k In dic.Keys 
     Worksheets(2).Cells(p, 1) = k 
     Worksheets(2).Cells(p, 2) = dic.Item(k) 
     p = p + 1 
    Next 
End Sub 

참고 Dictionary를 사용하기 위해 "참조"에서 "마이크로 소프트 런타임 스크립팅"을 포함 할 수 있습니다.

로 테스트 [시트 1] 다음 다음

1 value 1 
2 value 2 
3 value 3 
1 value 4 
1 value 5 
3 value 6 
3 value 7 
2 value 8 
1 value 9 
2 value 10 
2 value 11 
2 value 12 

결과 [시트 2] :

1 value 1, value 4, value 5, value 9 
2 value 2, value 8, value 10, value 11, value 12 
3 value 3, value 6, value 7 
+0

전에

If val <> "" Then 

, 정말 감사합니다! – Sean

0

나는 지나가는의 대답은 아름답게 작동하지만, 내 경우에는, 내가 가지고있는 것을 발견했다 몇 가지 열에 내가 이것을 실행하고 어떤 경우에는 빈 셀이 있습니다. ,,, 항목을 받고 피하기 위해, 나는이 추가 : 훌륭하게 일했다

dic.Item(key) = dic.Item(key) & ", " & val 
관련 문제