====== 작마연 엑셀 테이블의 관리 요령 기록 ====== 이 문서에서는 작마연(마작 동호회)의 마작 경기 기록 시스템의 엑셀 문서 작성에 대한 기록을 저장합니다. DB를 직접적으로 운영할 능력이 부족한 작마연에서는 바로 DB를 사용하게끔 하는 것보다는, 보다 직관적인 방법인 '엑셀'을 사용하는 것으로 시스템을 차츰 수동에서 자동으로 전환하는 전략을 취하기로 했다. 그러나 기본적인 데이터를 저장하는 포맷은 얼추 만들어두어야 하므로 본 문서는 가장 기초가 되는 자료의 테이블을 디자인하는 것부터 시작하고자 한다. ===== 테이블 디자인하기 ===== 경기 결과를 기록하는 테이블은 크게 2가지로 나눈다. 첫째는 경기 자체에 대한 정보를 기록하는 테이블, 둘째는 각 경기별 랭킹, 플레이어, 점수를 기록하는 테이블이다. 각 테이블을 일컬어 **Result 테이블**, **Score 테이블**이라고 한다. ==== Result 테이블 ==== Result 테이블은 크게 4개의 필드로 구분한다. 각 필드는 다음과 같다. - Key: 각 레코드의 Primary key - RoomNumber: 각 경기가 치루어진 방 이름. 보통 'C2174'로 고정될 것이긴 하지만, 차후를 위해 기재하도록 한다. 방 이름은 보통 5글자로 정해진다. 길게 지을 필요가 없다. - Time: 경기가 종료된 시각을 기록한다. 연월일시분으로 기록한다. - Rule: 경기의 규칙을 기록한다. 이것은 로그 파일의 내용 그대로를 기록하는 것으로 한다. ==== Score 테이블 ==== Score 테이블은 크게 5개의 필드로 구분한다. - Key: 각 레코드의 Primary Key - ResultKey: Result 테이블의 키 값이다. Result 테이블과 Join을 위해 필요하다. - Id: '천봉(tenhou)'의 아이디. 천봉 사이트의 아이디 규칙에 따라 적절히 제한한다. - Rank: 한 게임에서 플레이어의 순위. 정수형 자료. 1~4의 범위를 가진다. - Score: 플레이어의 점수. 실수형 자료. ===== 엑셀에서 두 테이블을 JOIN 하기 ===== 이 파일은 예제입니다. {{:research:작마연_db.xlsx|}} Result 테이블에는 2건의 레코드가 있습니다. A1:D3까지 선택한 후 이름을 'Result'라고 지어줍니다. [[research:jakmayonexcel#이름_영역_관리하기 | 이름 영역 관리하기 참고]] Score 테이블에는 8건의 레코드가 잇습니다. A1:E9까지 선택한 후 이름을 'Score'라고 지어 줍니다. 새 엑셀 파일을 엽니다. 새 엑셀 파일에서 '데이터' 탭 중 '외부 테이터 가져오기' 항목의 '기타원본' 아이콘을 클릭합니다. 드롭다운 메뉴 중 'Microsoft Query'를 선택합니다. 이 때 '쿼리를 만들거나 편집할 때 쿼리 마법사 사용'에 체크하세요. '데이터 원본 선택' 창에서 'Excel Files *'를 선택하고 '확인' 버튼을 누릅니다. 이어 나오는 '통합 문서 선택' 창에서 '작마연 DB.xlsx' 파일을 선택하여 확인 버튼을 누릅니다. 쿼리 마법사가 나옵니다. '사용할 수 있는 테이블과 열'에서 다음을 선택한 다음 '>' 버튼을 눌러 각 열을 '쿼리에 포함된 열'로 이동시킵니다. * Result * RoomNumber * Time * Rule * Score * Id * Rank * Score 테이블을 다 선택했으면 '다음'을 눌러 진행합니다. '쿼리에서 테이브를 조인할 수 없으므로 [쿼리 마법사]를 사용할 수 없습니다. 필드를 테이블간의 조인으로 끌아서 수동으로 테이블을 조인해야 합니다'라는 메시지가 나옵니다. '확인' 버튼을 눌러 진행합니다. Result 테이블의 Key를 클릭한 후, Score의 ResultKey 쪽으로 드래그합니다. 그러면 Key와 ResultKey가 서로 선으로 이어집니다. 레코드 -정렬 메뉴를 클릭하여 'Result.Time', 그리고 'Score.Rank'를 각각 오름차순으로 정렬에 추가시킵니다. 파일-'Microsoft Excel로 데이터 되돌리기' 를 선택해 데이터를 엑셀로 가져옵니다. 한 번 위 과정을 거쳐 작성한 시트는 '모두 새로 고침' 버튼을 눌러 갱신 가능합니다. 이 때 주의할 점이 있습니다. 자료가 추가된 경우 이름 영역에 추가된 자료까지 포함되었는지 반드시 확인하세요. ===== 이름 영역 관리하기 ===== 엑셀에서 특정한 영역을 묶어 '이름 영역'으로 관리할 수 있습니다. 셀을 드래그하여 적절한 영역을 선택한 후 '이름 상자'(A열 바로 위, 수식 입력창 바로 좌측에 위치하며 보통 커서가 있는 셀의 주소를 표시하는 곳)에 적절하게 이름을 입력할 수 있습니다. 이렇게 영역에 이름을 지어주게 되면, 그 시트에서 해당 영역은 그 이름으로 접근할 수 있게 됩니다. 이것은 Excel의 데이터에 쿼리를 보낼 때 매우 중요합니다. 그런데 주의할 점이 있습니다. 레코드가 영역 아래에 추가된다 할지라도 이름 영역이 추가된 분량만큼 자동으로 늘어나지 않습니다. 그러므로 Ctrl+F3을 눌러 '이름 관리자' 창을 통해 각 이름 영역을 적절히 조절해야 합니다.