데이터 테이블에서 특정 컬럼에 대해 중복 제거방법

[중복제거한 datatable] = [중복제거 전 datatable].AsEnumerable().GroupBy(Function(i) i.Field(Of String)("[컬럼네임]")).Select(Function(g) g.First).CopyToDataTable()

대괄호 안에 현재 쓰시는 변수명과 컬럼명을 쓰시면 됩니다.

첫번째값만 가져오므로 사용하시기 전에 sort를 하시고 사용하시기 바랍니다.

혹시 해당 컬럼의 타입이 String이 아닐시 맞는 타입으로 써주시면 됩니다.

remove Duplicate Rows 액티비티는 모든 컬럼의 값이 같은경우면 중복제거가 됩니다.

예를 들자면
dt_월급표가

월 사원명 월급
1 홍길동 1000
2 홍길동 3000
3 홍길동 2000
1 심봉사 500
2 심봉사 300

라고 가정하고 각 사람별로 제일 마지막달에 받은 내역을 뽑고 싶으면

sort datatable 액티비티로 0번 컬럼을 내림차순으로 정렬합니다.

월 사원명 월급
3 홍길동 2000
2 홍길동 3000
2 심봉사 300
1 홍길동 1000
1 심봉사 500

이렇게 될 것입니다. 그후

dt_최근급여내역 = dt_월급표.AsEnumerable().GroupBy(Function(i) i.Field(Of String)(“사원명”)).Select(Function(g) g.First).CopyToDataTable()

하게 되면 각 사원명 중에 첫번째 값만 가져오므로

월 사원명 월급
3 홍길동 2000
2 심봉사 300

가 되게 됩니다.

3 Likes

컬럼의 갯수가 2개 이상일 때 어떻게 하면 될까요?