책 내용 질문하기
상설시험 엑셀 2문제, 엑세스 3문제 질문드립니다.
도서
[2014] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
0
조회수
1122
작성일
2015-04-23
작성자
첨부파일

엑셀 첫 번째 문제는 피벗 테이블 문제입니다. (10점)

데이터베이스에서 불러오는 필드 중 "2012년", "2013년" 필드가 있으면 이 두 필드를 합쳐서 "2012/2013년 누계" 하나의 필드로 만드는 문제입니다. 일단 문제에서 2012, 2013년 필드를 불러오라고 했으므로 불러온 상태에서 조작을 해야된다고 생각은 하는데, 그룹화 문제인지 계산필드 문제인지 아니면 따로 합치는 기능이 있는건지 모르겠습니다.

엑셀 두 번째 문제는 계산 문제입니다. (6점)

hlookup함수를 이용해서 일치된 값을 표에서 찾는 문제였습니다. 설명하기 힘드니 식을 적어드리겠습니다.

=HLOOKUP( RIGHT(C5,1), $O$2:$P$8, 2, FALSE)

임의로 작성한 식인데 해석하면 C5의 오른쪽 첫 번째 문자를 추출하여 지정된 범위의 2열에 있는 값을 표시하는 문제였습니다. 하지만 범위의 1열 값은 숫자로 되어있어서 제대로 값을 추출하려면

=HLOOKUP( VALUE(RIGHT(C5,1)), $O$2:$P$8, 2, FALSE)

이렇게 value 함수를 써야합니다, 하지만 문제 제한사항으로 value함수를 쓰지 않고 숫자로 변형하여 값을 표시하라고 하더군요. 결국 틀렸습니다.

엑세스 첫 번째 문제는 보고서 출력문제입니다. (5점)

이벤트 프로시저로 작성하면 대략 이렇습니다. 예시는 기본 모의고사 7회로 작성하였습니다.

DoCmd.OpenReport "사원관리출력", acViewPreview, , "month(입사일자)=" & Month(txt입사일자)

즉, 입사일자 필드의 월(month)과 txt입사일자 컨트롤의 월(month)이 동일한 레코드만 출력하라는 건데요

이것과 똑같은 내용을 매크로로 작성하는 문제였습니다. 이벤트 프로시저로는 작성하겠는데 매크로로 나오니까 못 풀겠더라구요..ㅠ

매크로에서 openreport 매크로함수를 실행하고 조건문으로

month([입사일자])=[forms]![사원정보입력]!month([txt입사일자])

month([입사일자])=month([forms]![사원정보입력]![txt입사일자])

month([입사일자])=[forms]![사원정보입력]![month([txt입사일자])]

이것저것 많이 해봤는데 다 안되더군요

엑세스 두 번째 문제는 크로스탭 쿼리 문제입니다. (8점)

이 또한 예시는 기본 모의고사 7회로 작성하였습니다. 자잘한 조건들이 있었지만 그냥 쉬운것들이였고 제가 해결하지 못했던 부분은

부서사원정보 테이블을 이용해서 부서명을 행으로, 부서코드를 열로, 승진시험점수의 최대값을 값으로 지정하는것인데 그 중 부서코드 마지막 1자리가 "1" 또는 "2"로 끝나는 것만 표시하는겁니다.

기본적으로 부서코드 조건을 right([부서코드], 1)= "1" or right([부서코드], 1)= "2" 로 작성하면 쉽게 풀리지만, 문제는 이 부서코드부서 사원정보 테이블을 연결하는 필드라는 겁니다. 따라서 저렇게 일반적으로 조건을 작성하면 "지정된 '부서코드' 필드는 SQL 문의 FROM 절에 나열된 테이블을 둘 이상 참조합니다." 이런 오류문구가 생기더라구요.

그래서 select from 문으로 테이블을 딱 지정해줘야하나 싶어서

in(select right([부서코드],1)="1" from 부서)

뭐 이런식으로 해보고 따로 필드를 생성해서 조건필드로 만들어도 봤지만 안되더라구요.

엑세스 세 번째 문제는 일반 쿼리 문제입니다. (6점)

쿼리 구문에서 100000이상 200000미만의 값만 표시하라는 조건이 있었습니다. 제한 사항으로는 between함수를 사용해서 문제를 풀라더군요. between함수를 사용해서

between 100000 and 200000

이렇게 작성하면 >=100000 and <=200000 와 같기 때문에 "미만" 이라는 조건과 맞지 않았습니다.

between 100000 and <200000 이렇게 하면 값이 안나오고 몇 가지 변형을 해 봤는데 다 안되길래

between 100000 and 199999 결국 이렇게 적고 나왔습니다.

설명을 최대한 알아보기 쉽게 한다고 했는데 보기 편할지 모르겠습니다.

답변 부탁드립니다.

답변
2015-04-30 09:58:24

안녕하세요.

1)
단순히 두 필드의 합계를 표시하는 것이라면 계산필드를 이용하면 되지만
누계, 즉 누적된 값을 산출하는 것은 좀 더 확인해 봐야 할 것 같습니다.

2)
=HLOOKUP(RIGHT(C5,1)*1, $O$2:$P$8, 2, FALSE)
숫자로 인식해야 하는 부분에 *1을 하면 됩니다.

3)
Month([입사일자])=Month([Forms]![사원정보입력]![txt입사일자])
혹 정상적인 결과가 산출되지 않으면 작업하신 파일을 첨부해 주세요. 원인을 찾아 답변드릴께요.

4)
둘 이상을 참조할 때는 테이블명을 포함해서 필드명을 작성해야 합니다. 테이블과 부서명은 마침표(.)로 연결하여 다음과 같이 작성할 수 있습니다.
in(select right([사원정보.부서코드],1)="1" From 부서)

5)
between 100000 and 199999 로 하면 됩니다.

오늘도 즐거운 하루 되세요.

"
  • *
    2015-04-30 09:58:24

    안녕하세요.

    1)
    단순히 두 필드의 합계를 표시하는 것이라면 계산필드를 이용하면 되지만
    누계, 즉 누적된 값을 산출하는 것은 좀 더 확인해 봐야 할 것 같습니다.

    2)
    =HLOOKUP(RIGHT(C5,1)*1, $O$2:$P$8, 2, FALSE)
    숫자로 인식해야 하는 부분에 *1을 하면 됩니다.

    3)
    Month([입사일자])=Month([Forms]![사원정보입력]![txt입사일자])
    혹 정상적인 결과가 산출되지 않으면 작업하신 파일을 첨부해 주세요. 원인을 찾아 답변드릴께요.

    4)
    둘 이상을 참조할 때는 테이블명을 포함해서 필드명을 작성해야 합니다. 테이블과 부서명은 마침표(.)로 연결하여 다음과 같이 작성할 수 있습니다.
    in(select right([사원정보.부서코드],1)="1" From 부서)

    5)
    between 100000 and 199999 로 하면 됩니다.

    오늘도 즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.