데이터 작업을 하다 보면 중복된 항목이 생기는 것은 피할 수 없는 일입니다. 여러 소스에서 데이터를 통합하거나 반복적으로 입력하다 보면 같은 정보가 여러 번 들어가게 됩니다. 이러한 중복 데이터는 분석 결과를 왜곡시키고 보고서의 정확성을 떨어뜨립니다. 구글 시트에서는 다양한 방법으로 중복을 제거할 수 있습니다. 기본 메뉴 기능을 활용한 간편한 중복 제거부터 UNIQUE 함수로 실시간 중복 제거 자동화하는 방법, 그리고 Apps Script로 복잡한 조건의 중복 처리까지 체계적으로 다룹니다. 데이터 품질을 높이고 정확한 분석을 위한 실전 노하우를 지금 바로 확인하시기 바랍니다.
메뉴 기능으로 빠르게 중복 항목 삭제하기
구글 시트의 기본 메뉴에는 중복 데이터를 손쉽게 제거할 수 있는 기능이 내장되어 있습니다. 가장 간단한 방법은 데이터 메뉴의 중복 항목 삭제 기능을 사용하는 것입니다. 먼저 중복을 확인하고 싶은 데이터 범위를 선택합니다. 전체 데이터를 선택하려면 열 머리글을 클릭하거나 Ctrl+A를 눌러 모두 선택합니다. 그런 다음 상단 메뉴에서 데이터를 클릭하고 중복 항목 삭제를 선택합니다. 대화 상자가 나타나면 머리글 행이 있는지 확인하는 체크박스를 설정합니다. 첫 번째 행이 제목이라면 반드시 체크해야 제목 행이 삭제되지 않습니다. 다음으로 어떤 열을 기준으로 중복을 판단할지 선택합니다. 모든 열을 기준으로 하려면 전체 선택을 유지하고, 특정 열만 비교하려면 해당 열만 체크합니다. 예를 들어 이메일 주소만으로 중복을 판단하려면 이메일 열만 선택합니다. 확인을 누르면 시스템이 자동으로 중복된 행을 찾아 삭제하고, 몇 개의 중복 항목이 제거되었는지 알려줍니다. 이 방법은 일회성 정리 작업에 매우 효과적입니다. 하지만 주의할 점이 있습니다. 이 기능은 완전히 동일한 행만 중복으로 간주합니다. 따라서 대소문자나 공백 차이가 있으면 다른 데이터로 인식됩니다. 사전에 TRIM 함수나 UPPER 함수로 데이터를 정규화하는 것이 좋습니다. 또한 이 작업은 되돌릴 수 없으므로 중요한 데이터라면 작업 전에 시트를 복사해두는 것을 권장합니다. 조건부 서식을 사용하여 중복을 시각적으로 확인하는 방법도 있습니다. 데이터 범위를 선택한 후 서식 메뉴에서 조건부 서식을 클릭합니다. 맞춤 수식 옵션을 선택하고 COUNTIF 함수를 활용합니다. 예를 들어 A열의 중복을 강조하려면 '=COUNTIF($A$2:$A$100, A2)>1' 수식을 입력합니다. 이렇게 하면 중복된 셀이 색상으로 표시되어 어떤 데이터가 중복인지 한눈에 파악할 수 있습니다. 삭제 전에 중복 항목을 검토하고 싶을 때 유용한 방법입니다. 필터 기능과 결합하면 더욱 강력해집니다. 데이터에 필터를 적용한 후 특정 값으로 필터링하여 중복된 행들만 모아서 볼 수 있습니다.
UNIQUE 함수로 실시간 중복 제거 자동화하는 방법
UNIQUE 함수는 구글 시트에서 중복을 제거하는 가장 강력한 도구입니다. 이 함수는 원본 데이터를 변경하지 않고 중복이 제거된 결과를 별도로 출력하기 때문에 안전하고 유연합니다. 기본 문법은 UNIQUE(범위, [열기준여부], [정확히한번여부])입니다. 가장 간단한 사용법은 UNIQUE(A2:A100)처럼 단일 열에 적용하는 것입니다. 이렇게 하면 A2부터 A100까지의 데이터 중 중복을 제거한 고유값만 반환됩니다. 결과는 동적으로 업데이트되므로 원본 데이터가 변경되면 자동으로 반영됩니다. 여러 열을 한 번에 처리할 때는 UNIQUE(A2:C100)처럼 범위를 확장합니다. 이 경우 모든 열의 조합이 같아야 중복으로 간주됩니다. 예를 들어 이름과 이메일이 모두 같은 행만 중복으로 판단합니다. 두 번째 매개변수는 열 방향으로 중복을 제거할지 결정합니다. 기본값은 FALSE로 행 방향 중복 제거이며, TRUE로 설정하면 열 방향으로 작동합니다. 대부분의 경우 기본값을 사용합니다. 세 번째 매개변수는 정확히 한 번만 나타나는 값만 반환할지 결정합니다. TRUE로 설정하면 중복 없이 고유하게 나타나는 값만 추출합니다. 실무에서는 UNIQUE 함수를 다른 함수와 조합하여 사용합니다. SORT와 결합하면 중복 제거와 동시에 정렬할 수 있습니다. SORT(UNIQUE(A2:A100))은 고유값을 오름차순으로 정렬하여 보여줍니다. FILTER 함수와 함께 사용하면 조건에 맞는 데이터에서만 중복을 제거합니다. UNIQUE(FILTER(A2:B100, C2:C100="서울"))은 C열이 서울인 행의 A, B열 데이터에서 중복을 제거합니다. COUNTA와 결합하면 고유값의 개수를 셀 수 있습니다. COUNTA(UNIQUE(A2:A100))은 중복을 제거한 후 몇 개의 고유값이 있는지 알려줍니다. 데이터 검증에도 활용할 수 있는데, 드롭다운 목록을 만들 때 UNIQUE 함수로 중복 없는 선택지를 자동으로 생성합니다. 데이터 검증 규칙에서 범위 대신 =UNIQUE(Sheet1!A2:A100)처럼 수식을 입력하면 됩니다. 여러 시트의 데이터를 통합하면서 중복을 제거할 때는 중괄호를 사용합니다. UNIQUE({Sheet1!A2:A100;Sheet2!A2:A50})는 두 시트의 데이터를 세로로 합친 후 중복을 제거합니다.
Apps Script로 복잡한 조건의 중복 처리하기
기본 기능이나 함수로 해결하기 어려운 복잡한 중복 제거 작업은 Apps Script를 활용합니다. 스크립트를 사용하면 사용자 정의 로직으로 정교한 중복 처리가 가능합니다. 먼저 도구 메뉴에서 스크립트 편집기를 엽니다. 간단한 중복 제거 스크립트는 다음과 같습니다. 활성 시트의 데이터를 가져와 배열로 저장한 후 Set 객체를 사용하여 중복을 제거합니다. 자바스크립트의 Set은 자동으로 중복을 허용하지 않기 때문에 효율적입니다. 구체적인 코드 예시를 들면, getDataRange로 전체 데이터를 읽고 getValues로 배열로 변환한 다음 각 행을 JSON 문자열로 변환하여 Set에 추가합니다. 그런 다음 Set을 다시 배열로 변환하고 원본 시트에 덮어쓰는 방식입니다. 이 방법은 수천 개의 행도 빠르게 처리할 수 있습니다. 특정 열만 비교하여 중복을 제거하려면 조금 더 복잡한 로직이 필요합니다. 예를 들어 이메일 열만 기준으로 삼되 가장 최근 데이터를 남기고 싶다면 날짜를 비교하는 조건을 추가합니다. 맵(Map) 객체를 사용하여 이메일을 키로 하고 전체 행 데이터를 값으로 저장하되, 날짜가 더 최신인 경우에만 업데이트하는 방식입니다. 대소문자를 구분하지 않고 중복을 제거하려면 비교 전에 toLowerCase 메서드로 모두 소문자로 변환합니다. 공백 문제를 해결하려면 trim 메서드를 적용합니다. 정규표현식을 사용하면 더욱 유연한 비교가 가능합니다. 전화번호의 경우 하이픈이나 괄호 유무와 관계없이 같은 번호로 인식하도록 replace 메서드와 정규식을 조합합니다. 스크립트에 트리거를 설정하면 자동 실행도 가능합니다. 예를 들어 매일 자정에 자동으로 중복을 제거하거나, 폼 제출 시마다 실행되도록 설정할 수 있습니다. 사용자 인터페이스를 추가하면 더욱 편리합니다. 맞춤 메뉴를 만들어 버튼 클릭만으로 중복 제거를 실행하도록 onOpen 함수를 작성합니다. 구글 시트에서 중복 데이터 자동 제거하는 방법의 고급 활용으로는 중복된 항목을 삭제하지 않고 별도 시트로 이동시키는 방법도 있습니다. 이렇게 하면 나중에 검토할 수 있어 안전합니다. Apps Script로 구현하면 원본 시트와 중복 시트 두 곳에 데이터를 분리하여 저장할 수 있습니다. 성능 최적화를 위해서는 배치 처리 방식을 사용합니다. 한 번에 모든 데이터를 읽어와 메모리에서 처리한 후 한 번에 쓰는 방식이 행별로 처리하는 것보다 훨씬 빠릅니다.