본문 바로가기

RPA

[UiPath] Duplicate Column

중복되는 컬럼 제거를 할 것입니다.

DT에는 컬럼이 중복되어서 들어가지 않는데 무슨 소리냐 하신다면...
Data Scraping을 하였는데 컬럼이 되어야 할 열에 중복되는 데이터가 들어가는 상황이었습니다.

(좌) 이런 식 입니다... (우) UiPath에선 이런 식으로 인식하고 있는 상황이고요..

근본적으로 Data Scraping이 왜 잘못되는지 파악한 후, 그것을 조치하는 게 맞겠지만.. 역시나 시간이 없고 간헐적으로 발생하는 문제라서 .. 임시방편으로 다음과 같이 해결하였습니다.

저의 경우에는 C, D, E 같은 데이터를 가진 열이 중복되어 들어가는 상황이었습니다.

sampleData.xlsx

Data Scraping이 이상하게 되는 현상을 재현할 수 없어 위와 같이 데이터를 생성하였습니다.

Invoke Code를 사용하여 해결하였고 코드는 아래와 같습니다.

// Column Name을 담을 List를 생성
Dim lst As New List(Of String)()


// 0번째 Row를 중복제거하여 반복
For Each i As String In dtSampleData.Rows(0).ItemArray.Distinct() 

    // 똑같은 값이 1개 이상 있다면 If 문 실행
    If (dtSampleData.Rows(0).ItemArray.Where(Function(x) x.ToString = i.ToString).Count>1) Then
        // 중복된 열의 맨 마지막 인덱스로 Column Name을 구해서 lst에 Add   
        lst.Add(dtSampleData.Columns(Array.LastIndexOf(dtSampleData.Rows(0).ItemArray, i.ToString)).ToString)
    End If
Next

For Each j As String In lst
    // 아까 구한 Column Name으로 중복 열 제거
     dtSampleData.Columns.Remove(dtSampleData.Columns(j.ToString))
Next

제가 생각해낸 방법은 이것입니다.. 더 좋은 방법이 있다면 댓글 달아주십시오..
다 만들고 나니.... UiPath Activity로도 충분히 구현 가능했군용...................
끝입니다. 감사합니다.

Argument