어떤 자료든 분석을 위해서는 일차적으로 요구되는 양식에 따른 집계를 해야한다.
이때 통계 처리용 프로그램이 별도로 있다면 좀더 손 쉽겠지만, 집계 정도는 액세스도
문제 없다.
이에 일전에 다뤄던 에어컨 조사 자료를 액세스로 집계해보자.
자 그럼 원시자료 테이블은...
테이블 봐서 알겠지만, 재주가 허접 그자체라 이후 내용이 별 도움이 될지 모르겠다.
엑셀에 보면 피벗테이블 이라는게 있는데, 액세스에도 이와 유사한 기능이 있다.
크로스탭 쿼리라고...
그런데 뭔가가 어설프다.
특히 "전체" 즉 열 합계가 없다.
그래서 좀더 품을 팔면...
오우 이런...
"전체"를 삽입하긴 했는데, 항목의 정렬 방식이 원하는 형식이 아니다.
정렬 방식은 이후 처리하는 것으로 넘기고 자료를 좀더 보자.
"유", "무" 정보가 빈도를 나타내고 있는데, 비율을 알기위해서는 다시 계산해야하는
번거로움이 있다.
그래서 "유", "무" 정보를 비율 정보로 조정하면...
이제 어느 정도 모양새가 갖춰진 기분이다.
지금까지는 층구분에 따른 에어컨 유무를 집계하는 1 대 1 크로스탭 였다면,
에어컨 유무를 층구분이 아닌 면적으로 보고싶을 때도 있을 것이고 선호층으로 보고싶을
때도 있을 것이다.
즉 크로스탭에 다수에 항목을 동시에 삽입해서 볼 수 있는 다 대 1 크로스탭이 요구된다는 것.
이때 앞서 반영하지 못한 정렬 기능까지 추가한다면...
(참고로 정렬 방식은, 원하는 양식을 먼저 밑그림을 그리고나서 행에 고유번호를 등록했다.
그리고 통합 쿼리와 조인하는 방식을 적용해봤다.)
분류 열에 중복되는 정보를 엑셀에서 처럼 셀병합 했으면 좋겠지만,
재주가 거기까지는 미치지 못하기에 이정도 쯤에서 만족해야겠다.
TRANSFORM Round(nz(Count(선별)/사례수,0),3) AS 비율
SELECT temp.분류, temp.항목, Count(temp.선별) AS 사례수
FROM [select 분류, 항목, 선별 from (
select "전체" as 분류, "" as 항목, 에어컨 as 선별 from Data union all
select "동" as 분류, 동 as 항목, 에어컨 as 선별 from Data union all
select "층구분" as 분류, 층구분 as 항목, 에어컨 as 선별 from Data union all
select "선호층" as 분류, 선호층 as 항목, 에어컨 as 선별 from Data union all
select "층" as 분류, 층&"층" as 항목, 에어컨 as 선별 from Data union all
select "면적" as 분류, 면적 as 항목, 에어컨 as 선별 from Data union all
select "위치" as 분류, 위치 as 항목, 에어컨 as 선별 from Data
)]. AS temp LEFT JOIN ord ON (temp.항목 = ord.항목) AND (temp.분류 = ord.분류)
WHERE (((temp.항목) Is Not Null))
GROUP BY ord.order_no, temp.분류, temp.항목
ORDER BY ord.order_no
PIVOT temp.선별 In ("유","무");
물론 VBA가 능숙하다면 엑셀에서도 손 쉽게 집계 가능하겠는데...
VBA는 담 쌓고 지내는 분야라 고수님에 조언을 바란다.
db1.mdb


댓글을 달아 주세요