ID와 날짜를 기반으로 Cmnts를 연결해야합니다. 나는Excel VBA를 사용하여 ID와 날짜를 기준으로 열을 연결합니다.
id Sno Date Cnt Comnts
1299 001 4/08/2016 1 A
1302 001 4/08/2016 1 B
1642 001 10/08/2015 1 C.
1642 001 14/08/2015 1 D
1642 001 21/12/2015 1 1.
1642 001 21/12/2015 2 2.
1642 001 16/02/2016 1 3.
1642 001 8/04/2016 1 T
1644 001 25/09/2015 1 M
1747 001 13/09/2016 1 J
1748 001 13/09/2016 1 O
1751 001 3/03/2015 1 P
O/P, 연결하여 아래
id Sno Date Cnt Comnts
1299 001 4/08/2016 1 A
1302 001 4/08/2016 1 B
1642 001 10/08/2015 1 C.
1642 001 14/08/2015 1 D
1642 001 21/12/2015 1 1. 2.
1642 001 16/02/2016 1 3.
1642 001 8/04/2016 1 T
1644 001 25/09/2015 1 M
1747 001 13/09/2016 1 J
1748 001 13/09/2016 1 O
1751 001 3/03/2015 1 P
내 매크로 유일한 ID를 기반으로 의견을 매크로를 작성하지만 내 매크로 CONCATENATE의 cmnts은 ID를 기반으로했습니다. 내가 ID와
매크로 날짜를 기준으로 주석을 연결하는 수정할 수있는 방법 :
Private Sub CommandButton1_Click()
Dim a, c, i As Long, n As Long
With Range("a1").CurrentRegion
a = .Value
c = .Value2
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a, 1) And UBound(c, 1)
If Not .exists(a(i, 1)) And Not .exists(c(i, 1)) Then
n = n + 1
a(n, 1) = a(i, 1)
c(n, 1) = c(i, 1)
a(n, 2) = a(i, 2)
c(n, 2) = c(i, 2)
a(n, 3) = a(i, 3)
c(n, 3) = c(i, 3)
a(n, 4) = a(i, 4)
c(n, 4) = c(i, 4)
a(n, 5) = a(i, 5)
c(n, 5) = c(i, 5)
.Item(a(i, 1)) = n
.Item(c(i, 1)) = n
Else
a(.Item(a(i, 1)), 5) = a(.Item(a(i, 1)), 5) & " " & a(i, 5)
End If
Next
End With
.Offset(, .Columns.Count + 1).Resize(n).Value = a
End With
End Sub
조금 더 자세히 설명해 주실 수 있습니까? 즉, 무엇과 댓글을 연결 하시겠습니까? 조건이 있습니다. 즉, id = something이고 date = something이 id와 연결된 주석 인 경우 ... 간단한 워크 시트 함수로이 문제를 해결할 수 있습니다. 코드가 상당히 혼란 스럽습니다. 다른 접근 방식을 제안하십시오 – lllpratll
당신은 또한 라인을 삭제하는 것처럼 보입니까? 두 번째 '1642 12/12/15' 라인은 어디에 있습니까? 줄은 항상 ID와 날짜별로 정렬되어 있습니까? –
안녕하세요, 나는 ID와 날짜를 기반으로 comnts를 연결해야합니다. 즉 동일한 ID와 날짜에 여러 행이있는 경우 comnts는 단일 행의 결과로 연결되어야합니다 –