locked
2차원 요약집계표 만들기

    일반 토론

  • 보다 자세한 설명 및 예제 파일은 다음 내용을 참고하세요.

    http://www.iExceller.com/MyXls/Lectures/CrossTab_table.xls
    ---------------------------------------------------------------

    이번에는 크로스탭 테이블을 만들어 보겠습니다.    
    '크로스탭 테이블'이라고 하니까 '그건 또 뭔데...' 하시겠지요?    
    아래의 두 테이블을 보시기 바랍니다.    
        
    <표 1>은 어느 화장품 매장의 일자별 유형별 판매수량 데이터이고,    
    <표 2>는 <표 1>을 바탕으로 작성된 요약 집계표임을 알 수 있습니다.    
        
    <표 1>    <표 2>
             
    날짜 유형  수량   구 분 스킨 로션 크림 에센스 합 계
    10월 1일 스킨  9   4월 1일 0 0 0 0 0
    10월 1일 로션  17   4월 2일 0 0 0 0 0
    10월 1일 에센스  5   4월 4일 0 0 0 0 0
    10월 1일 크림  16   4월 5일 0 0 0 0 0
    10월 2일 로션  6   4월 6일 0 0 0 0 0
    10월 2일 크림  16   합 계 38 57 58 70 223
    10월 2일 에센스  -        
    10월 4일 스킨  5        
    10월 4일 로션  10        
    10월 5일 에센스  25        
    10월 5일 스킨  22        
    10월 5일 로션  21        
    10월 5일 에센스  22        
    10월 6일 스킨  2        
    10월 6일 로션  3
    10월 6일 크림  26
    10월 6일 에센스  18
      
      
    여기서 <표 2>와 같은 형태, 즉 데이터를 2차원 배열 형태로 요약한 테이블을 '크로스탭 테이블(Crosstab Table)'이라고 부릅니다. 어떻게 하면 원본 데이터를 이용하여 <표 2>와 같은 크로스탭 테이블을 손쉽게 만들 수 있을까요? 두 가지 방법이 언뜻 떠오르는군요. 예? 여러분의 생각과도 정확하게 일치 하신다구요?(이런~~)  
      
      
    1. 피벗 테이블로 만들기  
      
    우선, 우리가 잘 알고 있는 피벗 테이블을 이용하면 간단하게 크로스탭 테이블을 만들 수 있습니다. 피벗 테이블의 레이아웃을 어떻게 지정하는 지에 대해서는 아래의 예제 파일을 살펴보세요. 그런데 피벗 테이블을 이용하여 크로스탭 테이블을 만들면… 짐작하시겠지만 데이터가 변경되면 피벗 테이블을 그때마다 다시 만들어야 한다는 단점이 있습니다. 
     
     
    http://www.iExceller.com/MyXls/Lectures/CrossTab_table.xls


    2. 배열 수식을 사용하여 만들기 
     
    따라서 이런 경우에는 다음과 같이 배열 수식을 이용하는 것이 편리합니다.

     =SUM(IF($F19&G$18=$B$19:$B$35&$C$19:$C$35,$D$19:$D$35))

    사용된 수식은 아주 간단합니다. & 연산자를 사용하여 날짜와 유형값을 연결한 다음, 이것을 B열과 C열의 값들을 & 연산자와 연결된 결과와 비교하여 같을 경우 '수량' 값을 가져오는 것입니다. 물론 배열 수식이므로 수식을 입력한 다음 Ctrl+Shift+Enter 키를 함께 눌러 마무리 해 주셔야 합니다. 참고로, 표의 타이틀 부분, 즉 날짜나 유형 중에서 중복되지 않는 유일한 값들만 따로 추려내려면, '고급 필터' 기능을 이용하시면 간단하게 해결이 되겠습니다. 

    2006년 10월 12일 목요일 오전 1:52