엑셀 움직이는 애니메이션 차트 만들기, 마스터 코드 제공!

다양한 엑셀 차트 제작 기법과 매크로 코드를 활용하여 날짜별 데이터가 변하는 애니메이션 차트 만들기

# 피벗테이블 # 차트 # VBA

작성자 :
오빠두엑셀
최종 수정일 : 2022. 11. 01. 03:19
URL 복사
메모 남기기 : (12)

엑셀 움직이는 애니메이션 차트 만들기, 매크로 완전 정복!

엑셀 애니메이션 차트 목차 바로가기
영상 강의

큰 화면으로 보기

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [차트강의] 엑셀 움직이는 애니메이션 차트 만들기
    예제파일
  • [관련자료] 국가별 코로나19 현황 애니메이션 차트
    무료서식

.

라이브 강의 전체영상도 함께 확인해보세요!

위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.


강의에 사용된 차트 애니메이션 매크로 코드

Sub COVID19_ChartAnimation()
 
Dim i As Long: Dim j As Long
Dim sDate As Date
Dim eDate As Date
 
On Error GoTo EH:
 
sDate = DateValue(Range("시작날짜").Value)  '<- 시작날짜가 적힌 셀 주소를 입력하세요
eDate = DateValue(Range("종료날짜").Value)  '<- 종료날짜가 적힌 셀 주소를 입력하세요
 
For i = 0 To eDate - sDate
    DoEvents
    With ActiveSheet.PivotTables(1).PivotFields("필드명")  '<- 피벗테이블의 날짜 필드명을 입력하세요.
        .ClearAllFilters
        .CurrentPage = sDate + i
    End With
    For j = 1 To 50000000: j = j + 1: Next
    DoEvents
Next
 
Exit Sub
 
EH:
MsgBox "날짜가 올바르게 입력되었는지 확인해주세요."
 
End Sub

국가별 코로나 발생현황 분석 보고서 만들기

이번 강의에서는 국가별 코로나 발생현황을 피벗테이블로 분석하고 기본 차트를 만든 후, 엑셀 매크로를 활용하여 차트 애니메이션을 구현하는 방법에 대해 단계별로 알아보겠습니다.

  1. 코로나19 백신 접종현황 피벗테이블 만들기 : 예제파일을 실행 후 [Raw] 시트로 이동합니다. 원본 데이터에서 임의 셀을 선택 한 후, [삽입] - [피벗테이블] 버튼을 클릭하면 '피벗테이블 만들기' 대화상자가 실행됩니다. 대화상자에서 '기존 워크시트'를 선택 후, '피벗' 시트의 K3셀에 피벗테이블을 생성합니다.

    엑셀 차트 애니메이션 피벗테이블
    데이터 선택 - 삽입 - 피벗테이블을 클릭 후, '피벗' 시트의 K5셀에 피벗테이블을 추가합니다.
  2. 아래 표와 같이 피벗테이블의 각 영역으로 필드를 이동합니다. 피벗테이블이 완성되면 필터에서 날짜를 클릭해서 특정 날짜의 국가별 코로나19 백신 접종현황을 확인할 수 있습니다.
    영역 필드
    필터 date
    location
    1차접종률, 2차접종률

    피벗테이블 필드 추가
    피벗테이블의 각 영역으로 필드를 이동합니다.
  3. 계산필드 추가하기 : 이번 강의에서 추가할 차트는 '누적막대' 차트이므로, "1차-2차 접종률(기본)" 과 "2차 접종률(누적)" 형태로 데이터가 준비되어야 합니다. 따라서 피벗테이블에 계산필드를 추가하겠습니다. 피벗테이블을 선택 후 [피벗테이블 분석] - [계산 필드]로 이동합니다.

    피벗테이블 계산필드 추가
    피벗테이블에 계산필드를 추가합니다.
  4. 계산필드 삽입 대화상자가 나오면, 이름은 "차이", 수식은 아래 수식을 입력 후 [확인] 버튼을 클릭합니다. 그러면 '차이'라는 계산필드가 피벗테이블에 추가됩니다.
    =IF('1차접종률'=0,0,'1차접종률'-'2차접종률')
    피벗테이블 계산필드 삽입
    1차접종률 - 2차접종률을 계산하는 계산필드를 추가합니다.
    오빠두Tip : 피벗테이블의 계산필드에는 간단한 함수를 사용할 수도 있습니다.
  5. 피벗테이블 정렬하기 : 이제 피벗테이블을 정렬해서 보고서를 보기 좋게 가공하겠습니다. 피벗테이블의 행 레이블 필터를 클릭 - '기타 정렬 옵션'으로 이동합니다. 정렬 대화상자가 나오면 '내림차순 기준'으로 '합계: 1차 접종률'을 선택한 후 [확인] 버튼을 클릭하면 1차 접종률이 높은 국가 순서로 피벗테이블이 정렬됩니다.

    피벗테이블 내림차순 정렬
    1차접종률이 높은 순서대로 피벗테이블을 정렬하여 보고서를 완성합니다.

코로나 백신 접종현황 기본 차트 만들기

전 단계에서 만든 피벗테이블 보고서 데이터를 참고하여 국가별 코로나19 백신 접종현황 기본차트를 만들어보겠습니다.

  1. 차트용 데이터 만들기 : 시트의 B4셀, C4셀, D4셀 안에 피벗테이블 상위 15개 국가 데이터를 하나씩 입력합니다. 피벗테이블의 각 첫번째 항목을 등호로 불러온 후 수식을 아래로 자동채우기합니다. 만약 피벗테이블의 값을 클릭했을 때 =GETPIVOTDATA 함수가 나올 경우, 피벗테이블 설정을 변경하면 셀주소가 참조되도록 손쉽게 변경할 수 있습니다.
    셀주소 피벗테이블 데이터
    B4셀 국가명
    C4셀 2차접종률
    D4셀 차이 (1차-2차 접종률)
  2. 기본 차트 만들기 : 데이터가 준비되었으면 머리글을 포함하여 값이 입력된 B3:D18 범위를 선택 후 [삽입] - [추천 차트]를 클릭합니다. 차트 삽입 대화상자가 나오면 '모든 차트' 탭을 클릭한 후 가로막대형 그래프에서 '누적 가로막대형' 그래프를 삽입합니다.

    엑셀 누적 가로막대 차트 만들기
    차트용 데이터 범위를 선택 후, 누적가로막대형 그래프를 추가합니다.
  3. 차트 제목과 가로축을 제거한 후, 세로축을 우클릭 - '축 서식'으로 이동합니다. 축 서식 패널이 실행되면 '축 위치'에서 [항목을 거꾸로]를 체크하면 세로축이 원본데이터와 동일한 순서로 정렬되면서 기본 차트가 완성됩니다.
    엑셀 누적 가로막대 차트 세로축 정렬
    차트를 간소화 한 후, 세로축 우클릭 - 축 서식에서 '항목을 거꾸로'를 클릭하여세로축을 재정렬합니다.
    오빠두Tip : 차트를 시각화하는 방법에 대한 자세한 설명은 영상강의를 참고해주세요.

누적가로막대 차트에 합계 레이블 표시하기

누적가로(세로)막대의 경우 데이터레이블을 막대 중간에만 표시할 수 있어서, 막대 위로 합계를 표시하려면 다른 트릭을 사용해야 합니다. 이번 강의에서는 누적가로막대차트 위로 합계 값을 표시하는 방법을 알아보겠습니다.

  1. 더미데이터 추가하기 : '피벗' 시트의 E4:E18 범위에 더미데이터로 0을 추가합니다.

    엑셀 차트 더미데이터
    더미데이터로 0을 추가합니다.
  2. 차트를 클릭하면 차트에 사용된 데이터 범위가 시트에 표시됩니다. 마우스 커서를 차트 원본 데이터 범위의 모서리로 이동 후, 오른쪽으로 드래그해서 차트 원본데이터로 '더미' 데이터를 포함합니다.
    엑셀 차트 데이터 범위 확장
    차트를 선택 후, 차트 데이터 범위에 더미데이터를 포함합니다.
    오빠두Tip : 원본데이터로 '더미'가 추가되었지만, 더미의 값이 0 이므로 차트 모양은 변하지 않습니다.
  3. 데이터 레이블 추가하기 : 차트를 선택하면 오른쪽에 [+] 버튼이 표시됩니다. [+] 버튼 클릭 - [데이터 레이블]을 선택하면 데이터레이블이 표시됩니다. 데이터 레이블 중 더미 데이터로 추가된 '0'만 남겨두고 나머지 레이블은 우클릭 - 삭제로 지우거나 키보드 Delete 키를 눌러 제거합니다.
  4. 더미 데이터레이블을 우클릭 후 '데이터 레이블 서식'으로 이동합니다. 데이터 레이블 서식 패널이 나오면, 레이블 위치를 '축에 가깝게'로 변경합니다. 레이블 위치가 이동하면서 누적막대 그래프의 끝으로 이동하는 것을 볼 수 있습니다.

    차트 레이블 축에 가깝게
    더미데이터의 레이블 위치를 축에 가깝게로 변경합니다.
  5. 데이터 레이블 값 변경하기 : 이제 마지막 단계로, 데이터 레이블의 표시값으로 '합계'로 바꿔주겠습니다. '피벗' 시트의 F4셀을 선택 후, "=SUM(C4:D4)" 를 입력해서 데이터의 '2차 접종률'과 '1차 접종률'의 합계를 계산합니다. 이후 수식을 아래로 자동채우기 합니다.

    엑셀 코로나 차트 합계
    합계 값을 계산합니다.
  6. 차트의 더미 데이터레이블을 우클릭 - 데이터 레이블 서식을 클릭하면, 레이블 내용으로 [셀 값]이 있습니다. 셀 값을 선택한 후, 방금전에 계산했던 '합계' 범위를 데이터레이블 범위로 선택 후 [확인] 버튼을 클릭합니다. 그리고 기존에 선택되어 있던 '값'과 '지시선 표시'를 체크 해제합니다.

    엑셀 차트 레이블 셀 값 설정
    더미 데이터레이블의 레이블 내용으로 '셀 값'을 선택 후 범위를 지정합니다.
  7. 누적가로막대 차트 위로 합계 레이블이 표시되었습니다.

    누적 막대 그래프 합계 표시
    합계 값이 누적 막대 그래프의 레이블로 표시됩니다.

차트 애니메이션 매크로 추가하기

이제 마지막 단계로 버튼을 클릭하면 선택한 기간의 데이터가 순차적으로 표시되는 차트 애니메이션 매크로를 추가해보겠습니다.

오빠두Tip : 피벗테이블의 기본 필터 외에 슬라이서를 추가하고 꾸미는 방법은 영상강의에서 자세히 설명해드렸습니다.
  1. 매크로 추가하기 : [개발도구] 탭 - [Visual Basic] 버튼을 클릭하거나 단축키 Alt + F11 키를 눌러 매크로편집기를 실행합니다. 매크로 편집기가 실행되면 [삽입] - [모듈]을 클릭해서 새로운 모듈을 추가합니다.
    매크로 모듈 삽입
    매크로 편집기를 실행 후, 새로운 모듈을 추가합니다.
    오빠두Tip : 만약 상단에 개발도구탭이 안 보일 경우, 리본메뉴를 우클릭 - 리본메뉴 설정에서 개발도구 탭을 추가합니다.
  2. 추가한 모듈 안에 애니메니션 매크로 코드를 복사/붙여넣기 합니다.

    엑셀 차트 애니메이션 매크로 삽입
    차트 애니메이션 매크로 전체 코드를 모듈안에 붙여넣기 합니다.
  3. 매크로 수정하기 : 예제파일에서 시작날짜가 입력된 셀은 I3셀, 종료날짜는 I4셀이므로 시작날짜와 종료날짜를 각각 I3, I4로 변경합니다. 그리고 피벗테이블의 필드명은 "date"로 변경합니다.
    차트 애니메이션 매크로 수정
    매크로 코드의 시작날짜, 종료날짜, 필드명을 각각 변경합니다.
    오빠두Tip : 코드에서 각 항목을 빠르게 더블클릭하면 해당 항목만 빠르게 선택할 수 있습니다.
  4. 버튼에 매크로 등록하기 : 이제 예제파일의 피벗시트로 돌아온 후, 중간에 있는 '애니메이션' 버튼을 우클릭 - [매크로 지정] 으로 이동하면 방금전에 추가했던 "COVID19_ChartAnimation" 매크로가 있습니다. 매크로를 선택 후 [확인] 버튼을 눌러 버튼에 매크로를 지정합니다.

    애니메이션 매크로 등록
    애니메이션 버튼을 우클릭 - 매크로 지정에서 추가한 매크로를 지정합니다.
  5. 이제 시작일은 2021/10/1, 종료일은 2021/10/15 를 입력 후 [애니메이션] 버튼을 클릭하면 입력한 기간의 데이터가 순차적으로 표시되는 차트 애니메이션이 실행됩니다.
    차트 애니메이션 완성GIF
    이제 시작일과 종료일을 입력 후 버튼을 클릭하면 애니메이션이 실행됩니다
4.9 9 투표
게시글평점
12 댓글
Inline Feedbacks
모든 댓글 보기
12
0
여러분의 생각을 댓글로 남겨주세요.x