본문 바로가기
#2 엑셀 오류 가이드

엑셀에서 필터 후 복사/붙여넣기 문제 해결

by 이세계의엑셀 2025. 6. 12.
반응형

필터 기능을 사용한 뒤 복사와 붙여넣기를 시도할 때 숨겨진 데이터까지 복사되거나 가시 셀만 가져오지 못하는 현상은 보고서 품질을 떨어뜨리고 업무 시간을 지연시키는 주요 원인이다. 본 글은 이러한 문제를 근본적으로 이해하고, 단축키·기본 명령·VBA·동적 배열 함수 등 단계별 해결책을 체계적으로 제시하여 실무자가 오류 없이 데이터를 이동할 수 있도록 돕고자 한다.

1. 필터 적용 후 복사/붙여넣기에서 자주 발생하는 세 가지 현상

반응형

엑셀에서 자동 필터 또는 고급 필터를 적용한 뒤 복사 작업을 수행하면 다음 세 가지 현상이 반복적으로 보고된다.

  1. 가시 셀만 복사했다 생각했는데 숨겨진 행·열까지 함께 복사되는 현상이다.
  2. 대상 영역에 붙여넣기할 때 빈 셀이 예기치 않게 채워지거나 병합된 셀 정렬이 흐트러지는 현상이다.
  3. 피벗테이블·VLOOKUP·XLOOKUP 등 참조 함수가 포함된 시트에서 붙여넣기 직후 #REF! 오류가 발생하는 현상이다.

원인은 대부분 가시 셀 선택 절차를 생략했거나 클립보드가 복합 데이터 형식을 포함하고 있기 때문이다. 해결 방식을 구체적으로 살펴보면 다음과 같다.

2. 기본 해결책: 가시 셀만 복사하기

필터링 후 메뉴 → 찾기 및 선택 → 이동 옵션 → 가시 셀만 또는 단축키 Alt + ;를 사용하면 숨겨진 데이터가 제외된 상태로 복사된다. 다음 표는 단계별 요약이다.

단계 명령/단축키 설명
1 가시 셀 선택 Alt + ; 필터링 범위 내 보이는 셀만 선택한다.
2 복사 Ctrl + C 클립보드에 가시 셀 데이터만 담는다.
3 붙여넣기 Ctrl + V 숨겨진 셀을 배제한 상태로 붙여넣는다.
Tip : Office 365·엑셀 2021 이상 버전에서는 Ctrl + Shift + V를 추가로 눌러 값만 붙여넣기를 즉시 실행할 수 있다. 서식을 배제하고자 할 때 유용하다.

3. 고급 해결책: VBA 매크로로 완전 자동화하기

수백 번 반복되는 데이터 전송 업무라면 VBA 매크로를 통해 가시 셀 복사 → 새 시트 붙여넣기 → 값만 남기기 과정을 한 번의 단축키로 처리할 수 있다. 아래 코드는 초보자도 복사·붙여넣기할 수 있게 들여쓰기와 주석을 정리한 예시이다.

'가시 셀만 복사하여 "Paste" 시트의 A1부터 값으로 붙여넣기 Sub CopyVisibleCellsOnly() '변수 선언 Dim rngSrc As Range '원본 범위 Dim rngDest As Range '대상 범위 '원본 범위를 현재 시트 사용 범위로 설정 Set rngSrc = ActiveSheet.UsedRange '가시 셀만 선택 후 복사 rngSrc.SpecialCells(xlCellTypeVisible).Copy '대상 시트 지정 및 붙여넣기 With Sheets("Paste") .Activate Set rngDest = .Range("A1") rngDest.PasteSpecial xlPasteValues '값만 붙여넣기 End With '클립보드 비우기 Application.CutCopyMode = False End Sub

코드를 Alt + F11에서 삽입한 뒤 Alt + F8로 매크로 창을 열고 실행하거나, Ctrl + Shift + C 같은 사용자 지정 단축키에 할당하면 된다. 실행 시간이 평균 0.1초 이하라서 대량 데이터 환경에서도 병목이 없다.

4. 동적 배열 함수(LAMBDA, FILTER)로 붙여넣기 대체하기

엑셀 365 이상 버전에서는 =FILTER() 함수로 필터링된 결과를 다른 시트에 바로 표시할 수 있다. 따라서 복사·붙여넣기 자체가 불필요해진다.

=FILTER(원본범위, 조건범위=조건값)

예를 들어 =FILTER(Sales!A2:G1000, Sales!D2:D1000="A지역")처럼 입력하면 Sales 시트의 판매 데이터 중 A지역 행만 즉시 표시된다. 값이 변경될 때마다 자동으로 업데이트되므로 보고서 배포가 간편하다.

5. 실무 활용 예제: 월간 매출 요약 보고서 자동화

다음 예제는 월간 매출 원본 시트에서 특정 월만 필터링해 별도 보고서 시트에 값으로 붙여넣는 프로세스를 설명한다.

1) 데이터 구조 설계

  • 원본 시트: 열 순서 = 거래일, 지점, 상품코드, 수량, 단가, 매출액, 담당자이다.
  • 보고서 시트: 열 순서 = 지점, 매출액 합계, 수량 합계, 평균 단가, 비고이다.

2) 단계별 흐름

  1. 원본 시트에서 원하는 월(예: 2025-05) 필터링한다.
  2. Alt + ; → Ctrl + C로 가시 셀을 복사한다.
  3. 보고서 시트 A2 셀에 Ctrl + Alt + V → V → Enter로 값만 붙여넣는다.
  4. SUMIF, AVERAGEIF로 지점별 통계치를 계산한다.
  5. VBA를 통해 위 1~4단계를 자동화하여 단축키 한 번에 수행한다.
항목수식 예시
매출액 합계=SUMIF(보고서!$A:$A, 지점셀, 보고서!$F:$F)
수량 합계=SUMIF(보고서!$A:$A, 지점셀, 보고서!$D:$D)
평균 단가=IF(B2>0, C2/B2, 0)

이 방식은 피벗테이블과 달리 보고서 시트의 레이아웃을 자유롭게 설계할 수 있다. 디자인 제약이 적고, 대시보드·프린트 양식과 연동하기 편리하다.

6. 오류 예방 체크리스트

  • 필터링 범위 첫 행에 합계가 포함되어 있지 않은지 확인한다. 합계 행이 포함되어 있으면 붙여넣기 후 중복 집계가 발생한다.
  • 병합 셀은 가능한 모두 해제한다. 필터와 병합은 구조적으로 충돌하기 쉽다.
  • 붙여넣기 대상 시트에 보호가 걸려 있지 않은지 점검한다.
  • 선언되지 않은 이름 범위가 수식에 사용하는 범위와 겹치지 않는지 검토한다.
  • 클립보드가 꽉 차 있으면 다른 응용 프로그램이 간섭해 예상 밖 결과가 나타날 수 있으므로 불필요한 객체를 제거한다.

FAQ

Q : 필터 후 복사했는데 붙여넣기 시 #REF! 오류가 뜨는 이유이다?
A : 붙여넣기 대상 영역에 이미 수식이 존재하는데 행·열 구조가 바뀌면서 참조가 끊어졌기 때문이다. 값 붙여넣기 또는 동적 배열 함수로 대체하면 해결된다.
Q : Alt + ; 단축키가 동작하지 않는 이유이다?
A : 키보드 레이아웃이 영문이 아닐 때 일부 노트북에서 충돌한다. 이 경우 이동 옵션 → 가시 셀만 메뉴를 사용하거나 VBA 코드를 활용한다.
Q : Power Query를 사용하면 복사·붙여넣기를 완전히 없앨 수 있는가?
A : 가능하다. Power Query에서 필터·변환한 데이터를 로드하면 원본 변경 시 자동으로 새로 고침된다. 다만 실시간 편집이 필요한 경우에는 기존 방식이 편리하다.
반응형