엑셀

거래내역 중 취소된 항목을 찾아서 표시하는 VBA

파란바람이 2021. 4. 4. 21:18

거래일자, 거래시간, 거래금액이 입력된 데이터가 있습니다.

 

실습 파일 다운로드

거래내역 중 취소된 항목을 찾아서 표시.xlsm
0.07MB

 

[C5] 셀 -149,900 은 [C3] 셀 149,900이 취소된 값을 의미합니다.

VBA로 작성했습니다.

Public Sub 찾기()
    i = 3
    cnt = 0
    
    Do
        If Range("C" & i).Value < 0 Then
            cnt = cnt + 1
            Range("D" & i).Value = cnt
            j = i - 1
            Do
                If Range("C" & j).Value = Abs(Range("C" & i).Value) And Range("D" & j).Value = "" Then
                    Range("D" & j).Value = cnt
                    
                    Exit Do
                End If
                
                j = j - 1
            Loop
        End If
        
        i = i + 1
    Loop While Range("C" & i) <> ""
End Sub

C열에서 음수 값이 있는 셀을 찾은 다음 바로 한 칸 위 셀부터 위쪽으로 절대값을 적용한 같은 값이 있는 셀을 찾아 D열에 몇 번째 음수값인지 나타내도록 작성했습니다.

 

[A3] 셀부터 입력된 셀 끝까지 조건부 서식을 적용해 두었습니다.

 

문제가 있습니다.

[C202], [C204], [C206] 셀에 음수가 있는데, 취소된 내역이 [C198, [C199], [C200] 중 어떤 것인지 알 수 없습니다.

현재 3개 모두 취소된 값이기 때문에 상관없지만 거래내역 중 어떤 것이 취소된 것인지 확인해서 처리해야 한다면 현재 필드 외에 추가 필드가 있어야 합니다.

 

반복문을 중첩해 처리 속도가 빠르지는 않지만 항목 수가 많지 않아 금방 처리됩니다.