피벗테이블 합계→평균 일괄 변경 실습 가이드
쇼츠 「피벗테이블 합계 평균 일괄 변경」 보충 자료 · 예제 파일을 열어 두고 1번부터 따라 해 보세요.
1명령문 복사0:06
쇼츠 글에 올려 둔 ChangePV_SumtoAvg 매크로 명령문을 처음부터 끝까지 통째로 복사합니다. Sub ChangePV_SumtoAvg()로 시작해 End Sub로 끝나는 부분입니다.
이 매크로는 평균으로 바꿀 필드 이름을 입력받습니다. 그리고 이름이 맞는 값 필드의 계산 방식을 평균으로 바꿉니다.
2매크로 편집기 열기— Alt + F110:09
엑셀에서 Alt + F11을 누르면 매크로 편집기(VBA 편집기)가 열립니다. [개발도구] 탭 → [Visual Basic]을 눌러도 됩니다.
왼쪽 목록에 피벗테이블 시트와 데이터 시트가 보이면, 지금 연 파일의 편집기입니다.
3모듈에 붙여 넣기0:16
편집기에서 [삽입] → [모듈]을 누르면 새 모듈 Module1이 생깁니다. 그 코드 창에 복사한 명령문을 붙여 넣습니다.
오른쪽 위 목록에 ChangePV_SumtoAvg가 보이면 제대로 들어간 것입니다.
4바로 가기 키 등록— Ctrl + Shift + P0:19
매크로에 바로 가기 키를 걸어 두면 다음부터 키 한 번으로 실행됩니다. 엑셀로 돌아와 피벗테이블 안의 셀을 하나 고르고 Alt + F8을 누릅니다. [개발도구] 탭 → [매크로]를 눌러도 됩니다.
매크로 목록에서 ChangePV_SumtoAvg를 고르고 [옵션]을 누릅니다. [바로 가기 키] 칸에는 Ctrl을 뺀 Shift + P만 누릅니다. Ctrl은 이미 붙어 있어요. 다른 편한 키를 써도 됩니다. [확인]을 누른 뒤 매크로 창을 닫습니다.
5필드 이름으로 골라 바꾸기0:37
필드 이름에 든 낱말을 쉼표로 이어 넣으면 그 낱말이 든 값 필드만 평균으로 바뀝니다. 피벗테이블 안 셀을 고른 채 등록한 단축키를 누르면 [필드명 입력] 상자가 뜹니다. 피벗테이블 밖에서 누르면 「피벗테이블이 제대로 선택되지 않았거나…」 알림이 뜹니다.
상자에 수량, 단가를 넣고 [확인]을 누르면 「선택하신 필드의 계산이 평균으로 변경되었습니다.」 알림이 뜹니다. 수량·매입단가·매출단가는 평균이 되고, 이름에 두 낱말이 없는 매입금액은 합계로 남아요.
매크로 없이 바꾸면?
값 칸을 오른쪽 클릭해 [값 요약 기준] → [평균]을 필드마다 한 번씩 골라야 했어요.
6* 로 모두 바꾸기0:48
상자에 * 하나만 넣고 [확인]을 누르면 모든 값 필드가 한 번에 평균으로 바뀝니다. 남아 있던 합계 : 매입금액도 평균 : 매입금액이 됩니다.
원본에 글자가 든 필드는 [개수]로 요약됩니다. 이런 필드를 평균으로 바꾸면 #DIV/0! 오류가 나요.
질문 9
이 책 쇼츠의 댓글과 같은 곳이에요. 여기서 올린 질문은 쇼츠에도 함께 올라가요.
로그인하면 질문을 남길 수 있어요. 로그인
음.. 이 기능은 눈팅으로만...
영상 잘 보았습니다. 감사합니다.
여러번 연구하다가 결국 수작업했는데..- 안녕하세요?
Sub ChangePV_SumtoAVG()에서 같이 오류가 나는데요, 혹시 이 매크로를 사용할 수 없는 조건이 있을까요?
항상 감사합니다.
'컴파일 오류입니다:
적합한 개체가 없으므로 메서드가 잘못되었습니다.'
안녕하세요.
매크로를 실행하기 전, 피벗테이블이 선택되어 있는지 한번 확인해보시길 바랍니다. :)
좋은 강의 감사합니다🙇♂️
엑셀 파일마다 설정해야 하는건가요?
한 번 설정하면 다른 파일에서도 항상 이 옵션을 활용할 수 있도록 할 수는 없나요??
안녕하세요. 오빠두엑셀입니다.
피벗테이블에서 '숫자' 데이터의 집계는 '합계'가 기본 값입니다.
따라서 피벗테이블을 만든 후, 평균으로 집계를 해야 할 경우 사용하시면 됩니다.
감사합니다.
댓글 감사합니다.
궁금한 건, 매번 이 작업을 해야하는지 궁금한 것입니다.
아예 평균을 default로 설정하는 방법은 없나요??
안녕하세요.
오빠두엑셀 전진권입니다.
네, 피벗테이블의 기본 집계 방식은 합계(숫자), 개수(문자)로 고정되어 있습니다.
아쉽게도 다른 집계방식을 기본으로 설정하는 방법은 업습니다. :)
감사합니다.
잘 배웠습니다!
매크로 내용 감사합니다~!- 명령문을 직접 만들어 사용할 수는 없어도, 기존의 명령문을 복사해서 붙여넣기 후 사용해보는 것 만으로도 업무 효율이 팍팍 올라가네요.^^
- 감사합니다
아직 질문이 없어요.