«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

매일 채워가는 꽃바구니

VBA 중복과 비중복 고려하여 누적 Counting 하기 본문

VBA Excel

VBA 중복과 비중복 고려하여 누적 Counting 하기

Mr.Flower 2009. 7. 31. 14:08

지식인 질문 :

안녕하세요.

긴급하게 엑셀을 정리해야 합니다. 엑셀에 대한 기초가 없는 저로서는 상당히 힘든 작업이네요.

 매번 3000개가 넘는 행을 일일이 확인하며 수작업으로 하려니 시간도 많이 걸리고, 오류도 많이 생기네요.

 또 이런 작업을 매주 해야 하다보니, 고수님들의 고언을 부탁드립니다.

 아래의 예 1) 에서 보시면 원본자료는 A,B만 있습니다. 옆의 예 2)는 수작업한 자료입니다.

 그 아래의 예 3)은 최종작업까지 끝낸 자료입니다.

 함수등을 이용해서 예2) 정도만 되도 만족입니다.  

 결론을 말씀드리자면 A,B의 사용자 지정 정열을 사용해서 오름차순으로 정열한 다음 새로운 열을 만들어 CARTON NO.(박스 번호)를 1번부터 순차적으로 표시하고자 하는 것 입니다.  

 A 2, B2/ A3, B3 / A4, B4 행이 같으면 이 세개의 행은 1이 됩니다. 

 그다음은 A5,B5는 하나이기 때문에 2가 되구요.

 또, A26, B26은 숫자가 바뀌지만 C열의 순서에 따라 값이 16번 박스가 되는 식입니다.

(A34, B34 부터도 마찬가지 이구요)

(A,B의 행 숫자가 같으면 한 박스에 포장되어 있다는 뜻입니다.)


그림 예 1>                                                그림 예 2>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
                 그림 예 3>






본좌 답변 :

조금 까다로우실 수도 있어서 동영상 참조하면서 따라해보시기 바랍니다.

그리고 셀을 합치는 부분 같은 경우는 수작업이 가장 빠를 듯 한 생각이 듭니다만,

다른 고수님의 의견중에 수렴할 부분이 있으면 수렴하시기 바랍니다^^

궁금하신 사항은 쪽지나 댓글 달아주세요^^



 ↓ 복사해서 사용하세요

 Public Sub carton()
    Dim k As Integer
    Dim i As Integer
    k = 1
    Cells(2, 3) = k
   ' 이 For문에서 데이터의 줄 수를 적어주면 됩니다. (빨간부분변경으로)

    For i = 3 To 20
        If Cells(i, 1) = Cells(i - 1, 1) And Cells(i, 2) = Cells(i - 1, 2) Then
            Cells(i, 3) = k
        Else
            k = k + 1
            Cells(i, 3) = k
        End If
    Next
End Sub

 


'VBA Excel' 카테고리의 다른 글

값이 틀린 셋 자동 비교  (0) 2009.08.06
VBA #4. 기본기 및 Language  (0) 2009.08.02
VBA 특정 조건에 맞는 셀 표시하기  (0) 2009.07.31
VBA 문자열 조합하기(단순버전)  (0) 2009.07.31
VBA이용 시트간 자료 비교  (0) 2009.07.31