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

엑셀에서 GETPIVOTDATA 함수가 예상치 못한 결과를 반환할 때

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

엑셀의 피벗 테이블을 활용하면 대규모 데이터를 구조적으로 요약할 수 있고, 다양한 관점에서 데이터를 분석하기가 쉬워집니다. 이런 편의성에 더해, 특정 필드나 항목값을 자동으로 추출해 계산을 할 수 있도록 제공되는 대표적인 함수가 바로 GETPIVOTDATA입니다. 일반적으로는 피벗 테이블 내 특정 셀을 클릭하면 자동으로 함수가 생성되어 값을 가져오는데, 실무에서는 이 과정에서 예기치 못한 결과가 뜨거나 오류가 반환되는 일을 종종 접하게 됩니다.

예컨대 필드명과 항목명이 일치하지 않거나, 피벗 테이블 구성이 바뀌었는데 함수를 수정하지 않은 경우, 원치 않은 값이 표시되거나 0이 반환되는 등 각종 문제가 생길 수 있습니다. 또한 언어 설정이나 지역 설정으로 인해 인수 구분자(쉼표, 세미콜론)가 달라지거나, 문자가 필요 이상으로 들어가면서 함수가 정확히 작동하지 않는 상황도 발생합니다. 이런 오류들은 피벗 테이블과 GETPIVOTDATA가 상호 작용하는 과정을 잘 이해하고, 적절히 설정을 맞춰주면 대부분 해결이 가능합니다.

이 글에서는 GETPIVOTDATA 함수가 잘못된 결과를 가져올 때 주된 원인이 무엇이며, 이를 어떻게 해결하고 예방할 수 있는지 체계적으로 살펴보겠습니다. 여기에 더해, 실무에서 자주 나오는 궁금증이나 문의 사항을 FAQ 형태로 정리하여 업무 효율을 높이는 데 도움을 주고자 합니다. 특히 피벗 테이블을 자주 변경하거나, 여러 구성원과 함께 파일을 공유할 때 발생하기 쉬운 문제들을 주의 깊게 다룰 것입니다.

오류 발생 원인 또는 이유

GETPIVOTDATA 함수가 기대와 다른 결과를 뱉어내는 배경에는 여러 가지 복합적인 요인이 작용합니다. 단순 타이핑 실수부터 피벗 테이블 구조 변경, 그룹화 옵션 차이 등 상대적으로 자주 일어나는 문제들이 여기에 해당합니다. 예를 들어, 특정 필드명의 철자를 잘못 기재했다거나, 공백 없이 붙여 쓰여야 할 항목명을 중간에 띄어쓰기를 해버린 경우, 함수 입장에서는 해당 필드나 항목을 찾지 못해 오류가 발생합니다. 피벗 테이블 필드명은 “매출액”이라고 설정해두었는데, 수식 인수에서는 “매출 금액”처럼 일부 단어를 빼먹거나 바꿔 입력하는 상황이 대표적입니다.

또한 피벗 테이블 자체가 다른 시트로 이동·복제되거나, 원본 범위가 변경되면서 기존에 GETPIVOTDATA가 참조하던 이름 또는 위치 정보가 달라지는 경우도 흔히 볼 수 있습니다. 피벗 테이블을 복사·붙여넣기하거나, 여러 시트를 합치는 과정에서 파일 구조가 크게 바뀌면, 예전 버전에서 만들어둔 함수들이 더 이상 유효하지 않게 되기 때문입니다. 여기서 사용자가 이를 인지하지 못하면, 아무런 내용이 없는 0이나 잘못된 값을 받아보게 됩니다.

그리고 그룹화 옵션이 변경되어 발생하는 사례도 무시할 수 없습니다. 피벗 테이블에서 날짜 필드를 월별로 그룹화했을 때는 “1월, 2월, 3월” 등의 항목이 생성되지만, 이를 분기별로 바꾸면 “1분기, 2분기”와 같은 다른 항목이 생깁니다. 즉, 기존 GETPIVOTDATA가 월별 항목명을 참조하고 있었다면, 분기 그룹화로 바뀐 뒤에는 더 이상 그 항목이 존재하지 않아 올바른 값이 추출되지 않습니다.

아래 표는 GETPIVOTDATA 함수가 예상치 못한 결과를 반환하게 되는 대표적인 원인과 간단한 사례를 정리한 것입니다.

원인 사례 예시
필드명이나 항목명 불일치 피벗 테이블에서 “매출액” 필드를 사용 중인데, 함수 인수에서는 “매출 금액”으로 입력
피벗 테이블 범위 변경 피벗 테이블을 다른 워크시트로 이동했으나, 함수를 업데이트하지 않아 참조 오류가 발생
그룹화 옵션 변경 월별 → 분기별 그룹화로 전환돼 기존에 존재하던 항목이 사라져 함수가 0을 반환
인수 구분자나 인용 부호 문제 로케일 설정으로 쉼표 대신 세미콜론 등을 써야 하는데 그렇지 않아 오류 발생
피벗 테이블 외부 범위 참조 실수로 다른 범위를 클릭해 자동 생성된 함수가 피벗 테이블이 아닌 셀을 참조

GETPIVOTDATA 함수가 작동하는 기본 원리는, 피벗 테이블의 이름, 필드명, 항목명을 엑셀이 내부적으로 인식하고 해당 조건에 맞는 요약 값을 찾아 반환하는 구조입니다. 여기서 어느 하나라도 맞지 않으면, #REF!나 #NAME? 등의 오류를 일으키거나 의도와 다른 결과를 보여줄 수 있습니다. 따라서 에러가 뜰 때에는 먼저 피벗 테이블이 정상적으로 존재하는지, 필드명과 항목명이 일치하는지를 꼼꼼하게 점검하는 것이 좋습니다.

반응형

해결방법

피벗 테이블로부터 데이터를 정확히 가져오기 위해 GETPIVOTDATA를 사용하는 것은 매우 편리합니다. 그러나 구조가 조금이라도 바뀌면 문제를 일으키기 쉽기 때문에, 다음 세 가지 이상의 대표적인 해결책을 고려해볼 수 있습니다.

  1. 필드명과 항목명 일치 여부 재점검
    수식 인수 안에 있는 필드명 및 항목명이, 현재 피벗 테이블에 설정된 실제 이름과 완벽히 동일한지 확인합니다. 공백이 필요하면 넣고, 불필요하면 제거해야 하며, 대소문자 차이는 보통 무시되지만 지역화된 버전에서는 언어가 달라지는 경우도 있으므로 주의가 필요합니다. 특히 어떤 셀을 클릭해 자동으로 생성된 함수를 참고하면 오타를 줄일 수 있습니다. 오랫동안 여러 사람이 함께 편집한 파일이라면, 누군가 피벗 테이블 필드명을 바꾸었을 수도 있으니 수시로 비교가 필요합니다.
  2. 피벗 테이블 범위와 그룹화 상태 확인
    피벗 테이블이 다른 시트나 파일로 이동되거나 원본 데이터 범위가 늘어나는 식으로 구조가 변경되었을 때, GETPIVOTDATA에서 참조하는 첫 번째 인수가 바뀌었는지 살펴봐야 합니다. 또한 날짜나 숫자 필드를 특정 기준으로 그룹화했다가 다시 해제했을 경우, 기존 항목이 존재하지 않을 수 있습니다. 이런 상황에서는 수식을 다시 입력해보고, 실질적으로 가져오려는 항목이 아직 남아 있는지를 직접 눈으로 확인하는 작업이 필수적입니다.
  3. 자동 생성 옵션 해제 후 직접 작성
    엑셀 옵션에서 “피벗 테이블에서 셀 클릭 시 GETPIVOTDATA 생성” 기능을 꺼놓으면, 셀을 클릭해도 일반 셀 참조(A1 등)만 입력됩니다. 이후 정말 필요한 부분에 대해서만 =GETPIVOTDATA() 함수를 수동으로 작성해 인수를 지정할 수 있습니다. 이렇게 하면 과도하게 복잡한 GETPIVOTDATA 수식이 자동 생성되는 것을 방지하고, 자신이 원하는 피벗 테이블 정보를 명확하게 지정할 수 있어 오류를 줄일 수 있습니다.
해결방법 적용 상황
필드/항목명 재점검 오탈자, 공백 문제, 잘못된 번역 등으로 인한 불일치가 의심될 때
피벗 테이블 범위/그룹화 확인 시트 이동, 범위 확장, 원본 데이터 변동, 날짜 그룹 해제 등의 상황에서
자동 생성 옵션 해제 및 수동 작성 복잡한 함수 자동 입력을 피하고, 직접 제어하고 싶을 때

만약 위 방법들을 시도해도 특정 항목이나 데이터에서만 이상한 값이 나온다면, 해당 항목이 실제로 피벗 테이블에서 제외 또는 숨김 처리되지는 않았는지, 혹은 내부적으로 필터가 걸려 있지는 않은지 같이 세밀한 부분도 확인해야 합니다. 또한 피벗 테이블이 아닌 다른 범위를 함수가 참조하고 있는지는 “이름 상자”나 “피벗 테이블 분석” 옵션 등을 통해 추가 점검할 수 있습니다.

 

팁과 예방방법 등

GETPIVOTDATA 함수는 많은 장점을 제공하지만, 피벗 테이블 구조가 잦은 간격으로 변경되는 환경에서는 의도치 않은 오류가 일어날 가능성이 있습니다. 다음 팁과 예방책 세 가지 이상을 소개합니다.

  1. 피벗 테이블 필드명 표준화
    여러 시트나 여러 파일에서 동일한 원본 데이터를 분석한다면, 필드명(열 제목)이 통일되어 있어야 GETPIVOTDATA도 안정적으로 작동합니다. 어떤 시트에서는 “고객명”, 다른 시트에서는 “고객 이름” 등으로 제각각 표기하면, 자동 생성된 함수 인수가 달라져서 혼선이 생길 수 있습니다. 팀 단위로 작업할 때는 필드명, 항목명, 그룹화 기준 등에 대한 사전 협의를 거쳐 관리하는 것이 바람직합니다.
  2. 주기적인 테이블 업데이트와 범위 관리
    원본 데이터가 자주 바뀌는 환경에서는 피벗 테이블을 갱신할 때마다 새로 고침(Refresh)을 습관화해야 합니다. 데이터가 추가되거나 삭제되었는데 반영이 안 되면 항목이 달라질 수 있고, 그로 인해 GETPIVOTDATA가 예전 정보에 머물러 있을 수 있습니다. 또한 표 기능을 사용해 자동으로 범위를 확장하거나, VBA 매크로를 통해 정기 업데이트 스케줄을 짜는 것도 효과적입니다. 이렇게 하면 함수를 재작성해야 하는 빈도가 현저히 줄어듭니다.
  3. 대안 함수(SUMIFS 등)와의 비교
    피벗 테이블을 동적으로 바꿔가며 여러 분석을 하는 상황이 아니라면, 오히려 SUMIFS, COUNTIFS 같은 함수로 원본 데이터를 직접 집계하는 편이 안정적인 때가 있습니다. GETPIVOTDATA는 피벗 테이블 구조를 참조해야 하므로, 테이블을 변경할 때마다 함수를 다시 맞춰줘야 하지만, 원본 데이터를 바로 참조하는 집계 함수들은 그럴 필요가 없습니다. 각 상황에 맞춰 어떤 방식이 더 관리하기 쉬운지 고민해보는 것도 좋습니다.
예방방법 효과
필드명 표준화 팀 단위 협업 시 혼동 감소, 자동 생성 함수 인수 일치율 향상
주기적 갱신 및 범위 관리 데이터 변동을 피벗 테이블에 즉시 반영, 항목 누락이나 잘못된 0 값 방지
대안 함수 활용 SUMIFS 등으로 직접 계산 시 피벗 구조 변경 영향을 최소화

이처럼 간단한 원칙을 지키고, 피벗 테이블을 만들 때부터 혼선을 줄일 수 있는 구조를 고민해두면, GETPIVOTDATA로 인한 에러를 사전에 방지할 수 있습니다. 특정 상황에서는 이 함수를 쓰지 않는 편이 오히려 편리할 수 있다는 점을 기억해두면 업무에 따라 유연하게 대응할 수 있게 됩니다.

 

FAQ

아래는 GETPIVOTDATA 함수가 의도와 다르게 작동할 때 실무에서 자주 묻는 질문들입니다.

  1. Q1. 자동으로 생성된 GETPIVOTDATA가 너무 길고 복잡해요. 간단히 해결하려면?
    A1. 엑셀 옵션에서 “피벗 테이블에서 셀 클릭 시 GETPIVOTDATA 생성” 기능을 해제하세요. 그러면 피벗 테이블 셀을 클릭해도 A1 형태의 셀 참조만 입력됩니다. 필요 시에만 =GETPIVOTDATA()를 직접 작성해 쓰는 방식으로 전환해, 오히려 함수 관리를 쉽게 만들 수도 있습니다.
  2. Q2. 일부 항목에서만 0이 나오는데, 실제 데이터는 존재합니다.
    A2. 피벗 테이블 필터나 그룹화 옵션으로 인해 해당 항목이 숨겨졌거나, 원본 데이터에 반영되지 않은 상태일 수 있습니다. 피벗 테이블 옵션에서 “모든 항목 표시”를 확인하고, 원본 데이터 범위를 새로 고침해 제대로 반영된 뒤에 GETPIVOTDATA를 확인해보는 것이 좋습니다.
  3. Q3. 다른 시트로 피벗 테이블을 복사했는데, GETPIVOTDATA는 갱신이 안 되고 오류가 납니다.
    A3. 새로 복사된 피벗 테이블 이름이나 범위가 이전과 다를 수 있습니다. GETPIVOTDATA 첫 번째 인수(피벗 테이블 참조 범위)를 확인해, 현재 시트의 피벗 테이블 범위와 동일하게 맞춰주어야 합니다. 복사 후에는 자동으로 인수가 바뀌지 않으므로 수동 업데이트가 필수입니다.
  4. Q4. #NAME? 에러가 발생하는데, 왜 그런 걸까요?
    A4. 대개 함수 이름이 잘못되었거나, 필드·항목명을 아예 엑셀이 인식하지 못하고 있는 경우입니다. 함수 철자를 다시 확인하고, 인수 부분에서 필드명에 오타가 없는지 살펴봐야 합니다. 지역 설정에 따라 예: “금액”을 “Amount”로 써야 하는 환경이라면, 그 차이를 인지해줘야 합니다.
  5. Q5. GETPIVOTDATA 인수에 여러 조건을 동시에 적용하고 싶습니다. 어떻게 하나요?
    A5. GETPIVOTDATA 함수는 “=GETPIVOTDATA(데이터필드, 피벗테이블셀, "필드1", "항목1", "필드2", "항목2" …)”처럼 여러 쌍의 필드·항목을 연달아 지정할 수 있습니다. 단, 이때 구분 기호(쉼표, 세미콜론)는 사용자 PC의 지역 설정을 따라가므로, 제대로 구분 문자가 맞는지 반드시 확인해야 합니다.

 

위 FAQ를 참조하면, GETPIVOTDATA 함수 관련 오류가 발생했을 때 어떤 단계를 먼저 점검해야 할지 쉽게 파악할 수 있습니다. 필드명이나 항목명이 달라졌는지, 피벗 테이블이 숨겨진 상태가 아닌지, 혹은 그룹화 옵션이 수정되었는지 등을 하나씩 확인하며 접근해보면 대부분의 문제가 빠르게 해결됩니다.

반응형