VB(A)

명단 출석 체크 추출 및 참가자 명단 파악

당근쨈 2019. 1. 24. 10:49

https://cafe.naver.com/excelmaster/159162에 올라온 질문입니다.

왼쪽의 표에 있는 명단을 가지고

각 사람이 출석한 횟수, 1번이라도 출석한 사람 현황 파악하는 것이 질문의 요지입니다.


사실, 이런 표구성으로는 어떤 통계든 뽑아내기가 힘들기에

처음부터 표구성을 잘 하는 것이 관건이기도 합니다.


파워쿼리를 이용하면 금방 끝나는 작업이며

이번에는 매크로로는 모든 명단을 한 줄로 정렬하여 피벗으로 해결하였습니다.


Sub Macro()
 
    Dim i As Integer
    
    Columns("H:K").Clear    '기존 자료 삭제
    Range("H1"= "취합"    'H1열에 제목 삽입
    
    With Range("A1").CurrentRegion  '모든 명단을 한 줄로 세우는 작업
        
        For i = 1 To .Columns.Count
            .Offset(1).Resize(.Rows.Count - 1).Columns(i).Copy Cells(Rows.Count, "H").End(3)(2)
        Next
        
    End With
    
    MakePivot
    
End Sub
 
 
Sub MakePivot()
 
    '한줄로 나열된 명단을 피벗테이블로 추출
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        Range("H1").CurrentRegion, Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:=Range("J1"), TableName:="피벗 테이블1", DefaultVersion:= _
        xlPivotTableVersion12
 
    With ActiveSheet.PivotTables("피벗 테이블1")
        
        .AddDataField ActiveSheet.PivotTables( _
                    "피벗 테이블1").PivotFields("취합"), "개수 : 취합", xlCount
        
        With .PivotFields("취합")
            .Orientation = xlRowField
            .Position = 1
        End With
        
    End With
    
End Sub
    
    
 
 
cs


명단_횟수 추출.xlsm