Excel에서 행을 고정하는 방법: 실제로 작동하는 5가지 방법
Iron Software 팀이 작성했습니다. Excel 워크플로우를 프로그래밍 방식으로 자동화하려면 IronXL 제품 페이지 방문하여 강력한 스프레드시트 솔루션을 .NET에서 구축하는 방법을 알아보세요.
데이터 기반 의사 결정 세계에서 분석은 데이터의 기초가 좋을 때만큼 좋습니다. 중복 정보는 흔히 중복으로 알려져 있으며, 금융 총액을 왜곡하고, 리드 수를 부풀리고, 클라이언트 커뮤니케이션에서 난처한 오류를 초래할 수 있습니다. 메일링 리스트를 정리하거나 월별 경비를 조정하든, Excel에서 중복을 제거하는 방법을 아는 것은 모든 전문가에게 있어 양보할 수 없는 기술입니다.
Excel에서 중복을 제거하는 가장 빠른 방법은 데이터 탭에서 중복 제거 버튼을 사용하는 것 입니다. 단순히 데이터 세트를 선택하고, 데이터 > 중복 제거를 클릭하고, 일치 여부를 확인할 열을 선택한 다음 확인을 클릭합니다. 이는 모든 중복 항목을 즉시 제거하여 표에 고유 레코드만 남깁니다.
방법 1: 가장 빠른 방법 (데이터 도구 명령)
대부분의 사무실 작업에서는 복잡한 수식이 필요하지 않습니다. Excel에는 중복 값을 위해 데이터 청소를 몇 초 만에 해결하는 "핵 옵션"이 포함되어 있습니다.
Microsoft Excel 중복 제거 도구 사용
- 데이터 범위 선택: 데이터 테이블 내부의 아무 곳이나 클릭합니다. Excel은 경계를 감지할 만큼 스마트한 경우가 많지만, 특정 영역을 선택하려면 클릭하고 드래그할 수도 있습니다.

- 데이터 탭으로 이동: 상단 리본을 보고 데이터를 클릭합니다.
![]()
-
중복 제거 클릭: 데이터 도구 그룹에서 중복 제거 아이콘을 찾을 수 있습니다.
- 대화 상자 구성: * 내 데이터에 헤더가 있습니다: 첫 번째 행에 제목(예: "이름" 또는 "날짜")이 있는 경우 이것을 확인하세요.

- 열 선택: Excel이 행을 중복으로 간주할 수 있도록 해야 할 일치를 선택하세요. 모든 열을 선택하면 100% 동일한 행만 삭제됩니다.
- 확인 클릭: Excel은 발견되고 제거된 중복 값의 수와 남아 있는 고유 값의 요약을 표시합니다.

키보드 단축키 사용
마우스를 사용하지 않고 이 작업을 수행하려면 이 순서를 사용하세요:
- Alt: 리본을 활성화합니다.
- A: 데이터 탭을 엽니다.
- M: 중복 제거 기능을 트리거합니다.
방법 2: '안전한' 방법 (고급 필터 사용)
표준 '제거' 도구는 영구적입니다. 원래 데이터를 그대로 두고 별도의 위치에 고유 목록을 추출하려면 고급 필터가 유용합니다.
고유 레코드 추출 단계
- 데이터 범위를 선택하세요.
-
데이터 탭으로 이동하여 고급을 클릭합니다 (필터 아이콘 옆에).
- 대화 상자에서 다른 위치에 복사를 선택합니다.
-
리스트 범위가 올바른지 확인합니다.
-
복사할 위치 상자에서 정리가 시작될 셀을 클릭합니다.
-
중요 단계: 고유 레코드만 박스를 체크합니다.
- 확인을 클릭합니다.
이것은 감사를 위한 완벽한 정리가 된 새 목록을 원래 복잡한 데이터에 손댈 필요 없이 생성합니다.
방법 3: Excel 중복 제거의 동적 방법 (UNIQUE 함수)
Excel 365 또는 Excel 2021+를 사용하는 경우 자동으로 업데이트되는 'Office 365 수식'을 사용할 수 있습니다. 이는 수동 버튼보다 훨씬 더 강력합니다. 원래 목록에 새 데이터를 추가하면 '고유' 목록이 실시간으로 업데이트되기 때문입니다.
=UNIQUE() 수식 사용 방법
- 깨끗한 데이터가 시작되기를 원하는 빈 셀을 클릭합니다.
-
다음 수식을 입력합니다: =UNIQUE(A2:A500)
- Enter 키를 누릅니다.

Excel은 결과를 아래와 옆으로 '엎어' 고유 값의 동적 범위를 생성합니다.
전문가 팁: 중복 셀을 제거하는 동안 목록이 알파벳순으로 정렬되기를 원한다면 수식을 다음과 같이 래핑하세요: =SORT(UNIQUE(A2:A500))

방법 4: 파워 쿼리로 중복 값 제거 (대량 데이터에 최적)
50,000행 이상의 데이터 세트를 다룰 때 표준 Excel GUI는 때때로 느리게 작동하거나 멈출 수 있습니다. 파워 쿼리는 '무거운 작업'에 적합한 전문가의 선택입니다.
- 데이터를 선택하고 데이터 > 테이블/범위에서로 이동하세요. 확인을 클릭하여 파워 쿼리 편집기를 엽니다.
-
중복을 확인하고자 하는 열을 선택하세요. (Ctrl을 누르고 여러 열을 선택할 수 있습니다.)
-
열 헤더를 오른쪽 클릭합니다.
- 중복 제거를 선택합니다.
- 새 Excel 시트로 깨끗한 데이터를 다시 가져오려면 홈 탭에서 닫기 및 로드를 클릭하세요.
방법 5: 피벗 테이블을 사용한 고유 값 찾기
피벗 테이블은 종종 청소 도구로 간과되지만, 수천 개의 행을 정리된 고유 목록으로 축소하면서 동시에 각 중복이 몇 번 나타났는지 알려줍니다.
-
데이터 범위를 선택하세요.
- 삽입 > 피벗 테이블로 이동하세요.
- 새 워크시트를 선택하고 확인을 클릭하세요.

-
중복을 제거하려는 필드(e.g., "고객 이메일")를 행 영역으로 드래그하세요.
-
동일한 필드를 값 영역으로 드래그하세요.
- 이제 Excel은 목록의 모든 고유 이메일 주소를 보여주며, 그 옆에 있는 카운트는 원래 파일에서 그 '중복'이 몇 번 발생했는지를 정확히 알려줍니다.
방법 6: 대소문자 구분 중복 처리 (수식 방법)
표준 Excel 도구는 '대소문자를 구분하지 않음'입니다. 이는 Excel이 'APPLE'과 'apple'을 같은 것으로 생각한다는 것을 의미합니다. 대소문자가 정확히 일치할 때만 중복을 식별해야 하는 경우에는 도우미 열이 필요합니다.
- 데이터 옆에 도우미 열을 생성하세요.
-
정확한 일치를 확인하는 수식을 사용하세요: =SUMPRODUCT(--EXACT($A$2:$A$100, A2))>1
- 이는 중복(대소문자를 구분하는 경우)에 대해 TRUE를 반환합니다.

- 도우미 열을 TRUE로 필터링하고 해당 행을 수동으로 삭제합니다.

방법 7: VBA로 중복 제거 (매크로 자동화)
만약 매주 월요일 아침마다 엉망진창인 보고서를 받는 분석가라면, 매주 똑같은 다섯 개의 버튼을 클릭할 필요가 없습니다. 간단한 VBA 스크립트를 통해 '중복 제거' 프로세스를 자동화할 수 있습니다.
-
Alt + F11을 눌러 VBA 편집기를 엽니다.
- 삽입 > 모듈로 이동합니다.
- 다음 코드를 붙여넣습니다:
Sub RemoveAllDuplicates()
Dim ws As Worksheet
Set ws = ActiveSheet
'Assuming your data starts in A1 and goes to Column C
ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
MsgBox "Duplicate removal complete!", vbInformation
End Sub
Sub RemoveAllDuplicates()
Dim ws As Worksheet
Set ws = ActiveSheet
'Assuming your data starts in A1 and goes to Column C
ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
MsgBox "Duplicate removal complete!", vbInformation
End Sub
Option Strict On
Sub RemoveAllDuplicates()
Dim ws As Worksheet
ws = ActiveSheet
'Assuming your data starts in A1 and goes to Column C
ws.Range("A1").CurrentRegion.RemoveDuplicates(Columns:=New Integer() {1, 2, 3}, Header:=xlYes)
MsgBox("Duplicate removal complete!", vbInformation)
End Sub
- F5 키를 눌러 실행하세요. 이 매크로는 자동으로 데이터 경계를 감지하고 세 개의 열 모두에서 중복을 제거합니다.
일반 문제 및 문제 해결
1. '중복 발견되지 않음' (하지만 보입니다!)
이는 거의 항상 숨겨진 공백에 의해 발생합니다. 하나의 셀은 'John'이고 다른 셀은 'John '이라고 쓰여 있다면, Excel은 이를 다르게 봅니다.
- 해결책: 제거 도구를 실행하기 전에 데이터에서 끝의 공백을 제거하기 위해 =TRIM() 함수를 사용하세요.
2. 텍스트로 저장된 숫자
ID 번호가 데이터베이스에서 내보내진 경우, 일부는 '텍스트'로 포맷 되고, 다른 일부는 '숫자'로 포맷될 수 있습니다.
- 해결책: 열을 강조 표시하고 나타나는 작은 경고 아이콘을 클릭한 다음 숫자로 변환을 선택합니다.
3. 병합된 셀
데이터 범위에 병합된 셀이 포함된 경우, Excel은 중복을 제거하지 못합니다.
- 해결책: 전체 시트를 선택하고 홈 탭에서 셀 병합 해제를 클릭한 후 정리를 진행하세요.
4. 비인쇄 문자
때때로 웹에서 복사된 데이터에는 '비중단 공백'(문자 160)이 포함되어 있습니다. 표준 TRIM 함수는 이를 잡아내지 못합니다.
- 해결책: 찾기 및 바꾸기(Ctrl + H)를 사용하세요. Alt 키를 누른 상태에서 '찾을 내용' 상자에 숫자 패드에서 0160을 입력한 다음 모두 바꾸기를 클릭하세요.
개발자를 위한: IronXL을 사용한 프로그래밍 방식의 중복 제거
기업 환경에서 데이터 정리는 사람이 스프레드시트를 열기 전에 자주 이루어집니다. .NET 애플리케이션을 구축하고 있다면 사용자가 수동으로 '중복 제거' 버튼을 클릭하도록 신뢰해서는 안됩니다.
IronXL은 이 프로세스를 완전히 자동화할 수 있도록 해줍니다. 워크북을 로드하고, LINQ를 사용하여 중복 행을 식별한 후, 프로그래밍 방식으로 제거하여 깨끗한 데이터만 데이터베이스나 최종 사용자에게 도달하도록 보장할 수 있습니다.
IronXL을 데이터 정리에 사용하는 이유는 무엇입니까?
- 설치된 Excel 없음: Microsoft Office가 필요 없이 서버에서 파일을 처리합니다.
- 속도: 표준 Excel GUI보다 대규모 스프레드시트를 더 빠르게 처리합니다.
- 정확성: 단순한 행 매칭을 넘어 '중복'을 구성하는 것을 정의하기 위해 복잡한 C# 논리를 사용합니다.
Code Snippet: Delete Duplicate Data in C
다음 예제는 특정 열 값을 기반으로 중복 행을 찾고 제거하는 방법을 보여줍니다.
using IronXL;
using System.Linq;
using System.Collections.Generic;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Use LINQ to identify unique rows based on the 'Email' column (Column B)
var seenEntries = new HashSet<string>();
var rowsToRemove = new List<int>();
for (int i = 1; i < sheet.RowCount; i++)
{
string email = sheet["B" + (i + 1)].Value.ToString();
if (seenEntries.Contains(email))
{
rowsToRemove.Add(i);
}
else
{
seenEntries.Add(email);
}
}
// Remove the flagged duplicate rows (in reverse order to maintain index integrity)
foreach (var rowIndex in rowsToRemove.OrderByDescending(r => r))
{
sheet.Rows[rowIndex].RemoveRow();
}
// Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx");
using IronXL;
using System.Linq;
using System.Collections.Generic;
// Load the workbook
WorkBook workbook = WorkBook.Load("financial_report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Use LINQ to identify unique rows based on the 'Email' column (Column B)
var seenEntries = new HashSet<string>();
var rowsToRemove = new List<int>();
for (int i = 1; i < sheet.RowCount; i++)
{
string email = sheet["B" + (i + 1)].Value.ToString();
if (seenEntries.Contains(email))
{
rowsToRemove.Add(i);
}
else
{
seenEntries.Add(email);
}
}
// Remove the flagged duplicate rows (in reverse order to maintain index integrity)
foreach (var rowIndex in rowsToRemove.OrderByDescending(r => r))
{
sheet.Rows[rowIndex].RemoveRow();
}
// Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx");
Imports IronXL
Imports System.Linq
Imports System.Collections.Generic
' Load the workbook
Dim workbook As WorkBook = WorkBook.Load("financial_report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Use LINQ to identify unique rows based on the 'Email' column (Column B)
Dim seenEntries As New HashSet(Of String)()
Dim rowsToRemove As New List(Of Integer)()
For i As Integer = 1 To sheet.RowCount - 1
Dim email As String = sheet("B" & (i + 1)).Value.ToString()
If seenEntries.Contains(email) Then
rowsToRemove.Add(i)
Else
seenEntries.Add(email)
End If
Next
' Remove the flagged duplicate rows (in reverse order to maintain index integrity)
For Each rowIndex In rowsToRemove.OrderByDescending(Function(r) r)
sheet.Rows(rowIndex).RemoveRow()
Next
' Save the sanitized file
workbook.SaveAs("Clean_financial_report.xlsx")
출력: 원본 워크시트 vs. 중복 제거된 워크시트

방법 비교
|방법|최적 대상|데이터 크기|난이도| |---|---|---|---| |데이터 도구|빠르고 한 번의 청소|작은/중간|초보자| |고급 필터|원래 데이터를 손상 없이 유지|작음|중급| |UNIQUE 함수|동적 라이브 업데이트 리스트|중간|중급| |피벗 테이블|중복 빈도 분석|중간|중급| |Power Query|복잡한 정리 작업 반복|대형/Enterprise|고급| |VBA 매크로|반복적인 로컬 작업|중간|고급| |IronXL (.NET)|자동화된 서버 사이드 클리닝|무제한|개발자|
요약 및 모범 사례
데이터를 정리하는 것은 정확한 보고를 위한 첫 번째 단계입니다. 작업북을 전문적이고 오류 없이 유지하려면:
-
데이터 백업: "중복 제거" 도구를 사용하기 전에 항상 탭을 복사하십시오. 이 도구는 영구적이며 나중에 해당 데이터가 필요하다는 것을 알게 되면 "되돌리기"가 어렵습니다.
-
먼저 표준화: 중복을 찾기 전에 TRIM, PROPER 또는 CLEAN을 사용하여 텍스트가 일관되도록 합니다.
-
삭제하기 전에 검사: 먼저 조건부 서식(셀 규칙 강조 표시)을 사용하여 중복 데이터를 강조 표시하고 Excel이 삭제할 계획이 있는지를 확인합니다.
- 결과 확인: 제거 후에 행 수를 확인하십시오. 100개의 행을 잃을 것으로 예상했으나 1000개의 행을 잃은 경우 즉시 Ctrl + Z를 누르고 도구에서 열 선택을 다시 확인하십시오.
Excel 기술을 다음 수준으로 끌어올릴 준비가 되셨나요? IronXL 체험판을 사용해 보세요. 데이터 분석가든 소프트웨어 엔지니어든 올바른 도구가 모든 차이를 만듭니다. IronXL 제품 페이지를 방문하여 전문가 수준의 코드로 복잡한 스프레드시트 논리를 관리하는 방법을 배우십시오.




