시무자동화 & 컴퓨터 활용능력 1급/컴활유형 1회차

유형 5회 오답노트 - 1회차(65/70)

유혁스쿨 2021. 7. 21. 01:21
728x90
반응형

액셀 점수 : 65점 제한시간 안에 다 못품..
틀린문제 :
못푼문제 : [문제]2(계산문제) [문제]4-2 / [문제]4-3(2) - 버리는문제
맞았으나 햇갈린문제 : [문제] 3-1 / [문제]4-3(1),(3)
모르겠는 문제 :


계산문제 중 프로시저의 모듈을 통해 fn함수를 만드는 문제는 점수를 먹고갈만 하니 제발 빨리좀 풀어다오 ㅠㅠㅠㅠㅠ
아직도 푸는속도가 느리다....
주로 분석작업의 시트나 기타작업의 차트에서 시간이 너무 많이 걸리므로
다음번엔 문제4번을 먼저 풀어보자..
1 - 4 - 3 - 2 이렇게..
아니면 1 - 2(사용자지정함수) - 4(매크로,프로시저) - 3 - 2
와 같이 먹을수있는 점수는 최대한 먹고 가보자.

틀린문제


[문제] 4-2
지문 : 셀 값이 양수인 경우 파란색으로 표시, 음수인 경우 빨간색으로 '-'기호 표시

<내답> : [파랑]#,##0;[빨강]-#,##0 / 숫자

<정답> : [파랑]G/표준;[빨강]-G/표준 / 일반

<풀이>
일단 매크로는 맞았는데 서식을 해제하는데서 명확히 틀렸다
기본 서식이 어떤것이였는지를 확인하자...
그리고 ,를 포함한 천의자리라는 언급이 없었기때문에 [파랑]일반;[빨강]-일반 이럴수는 없는것이지 않겠는가?
G/표준 일반이다
때문에 [파랑]G/표준;[빨강]-G/표준 으로 서식을 지정해줘야하고
해제할때는 일반 형식으로 바꿔줘야한다.
이것도 숫자랑 확연히 다른 서식이다.
일반 서식에서 숫자로 서식을 설정하면 좌측으로 살짝 밀린다
확실히...해둘것... 하라는게 아니면 무조건 일반, 숫자로 하라하면 그때 숫자로 하자
예) 표시 형식이 쉼표를 포함한 숫자 서식


모르겠는 문제
[문제] 2-5

지문 : 비율 : 각 범위의 인원수 / 전체 인원수 * 100
<내답> : {=COUNT(FREQUENCY($F$3:$F$29,$L21:$M21)*1)}
<정답> : {=FREQUENCY(F3:F29,M21:M25)/COUNT(F3:F29)*100}
<풀이>
FREQUENCY함수는 세로배열 형태의 범위의 도수분포를 구하는 함수로서
예를들어 0~200 / 201~400 / 401~600 이렇게 나누어진 '도수'를 통해 세로배열의 '분포' <개수> 를 계산한다.
FREQUENCY(도수분포를 구할 값의 범위 , 도수분포 기준 셀) 이다.
문제에서 비율은 각 범위의 인원수 / 전체인원수 * 100 이라고 친절히 나와있는데
나는 등신같이; 배열수식을 혼합해서 계산하고있었다;;;
FREQUENCY 함수를 통해 나온 값이 각 범위의 인원수 이고 COUNT를 통해 전체 인원수를 구해서 비율의 공식대로 풀어야한다.
여기서 주의해야할 점은 FREQUENCY는 앞서 말했듯 세로배열의 분포 개수를 계산하기 때문에 각 도수의 최대값을 기준(200,400,600,~,~) 셀 범위로 지정해야한다.
추가적으로 가장 유의할점은... 왜이렇게 해야하는지 잘 모르겠지만... 수식을 입력할때 단일행으로 구하고 끌어서 입력하지 않고 N21:N26 영역을 지정한 후 배열수식을 적용해줘야한다; 왜이런거지? 모르겠다 ㅠㅠ


헷갈린 문제


[문제] 3-1 시트문제
<풀이>
그림에 행 영역에 지역이 2개가 들어가있는데 여기서 좀 해멨다
풀긴 풀었는데, 묶여있는 지역별로 그룹을 지정해줘야했다.

원본상태는 수직으로 고양시 수원시 안양시 용인시 파주시 광주광역시 울산광역시 인천광역시 부산광역시 서울특별시 가 지역에 한번에 묶여있었는데 이것을 지역 2에서 기타시군, 기타광역시, 서울/부산 으로 각각 나눠주기 위해서는 "그룹"을 지정해줘야했다

고양시 수원시 안양시 용인시 파주시 다섯개를 선택하여 그룹지정
광주광역시 울산광역시 인천광역시 세개를 선택하여 그룹지정
부산광역시 서울특별시 두개를 선택하여 그룹지정 한 후에
행 영역의 지역 2 에서 각각의 그룹의 이름을 기타시군, 기타광역시, 서울/부산 으로 올바르게 변경시켜준다.

[문제] 4-3 (1)
지문 : '구분'을 표시하는 옵션 버튼 중 '국내도서(opt국내)'가 기본적으로 선택되도록 프로시저를 작성

<정답> : opt국내.value=True

<풀이>
하마터면 틀릴번했다.
개체보기에 들어가서 False로 선택되어있는 value속성을 true로 바꾸니 옵션체크가 되는것을 확인할수 있었다.
지문에서 제시한 옵션을 기본값으로 선택되게 하기 위해서는 value속성을 사용해서 "컨트롤.value=True" 잊지말자!

[문제] 4-3 (3)
지문 : 현재 날짜와 시간을 표시한 메시지를 표시한 후 폼을 종료하는 프로시저 작성

<오답> : MsgBox(Now,,"폼을 종료합니다.") / MsgBox(Now(),,"폼을 종료합니다.") / MsgBox(=Now(),,"폼을 종료합니다.")

<정답> : MsgBox Now , , "폼을 종료합니다."

<풀이>
이것도 하마터면 틀릴번했다.
메시지박스에 날짜 함수를 적용할 때는 (괄호) 를 생략하고 작성해야 한다.
(괄호) 안의 Promt 인자값에 함수를 넣으면 식이 틀렸다거나 =을 넣으라고 연신 오류를 남발하므로
"메시지박스에 날짜 함수를 적용할 때는 (괄호) 를 생략하고 작성" 을 꼭 기억하자!



액세스 점수 : 70점
틀린문제 : [문제]1 - (2)?,(5) / [문제]2 -(2) / [문제]3 - 2 / [문제]4- 2,4



[문제]2 -(2)
지문 : <강좌목록> 테이블의 '정원' 필드를 기준으로 내림차순 정렬되도록 테이블 속성을 설정하시오.

<오답> : 데이터시트보기 - 필드버튼 -후 숫자기준 내림차순정렬 =>속성시트의 정렬기준에 [강좌목록].[정원] DESC로 설정됨

<정답> : 속서- 정렬기준 : 정원 DESC

<풀이>
이거 좀 애매하다.
SQL 문법상으로는 정원 필드는 강좌목록에 속해있기 때문에 강좌목록.정원 DESC 의 답은 맞는거같은데
해설에서는 그냥 정렬기준 : 정원 DESC이다.
문제 지문상에서는 강좌목록 테이블의 정원 필드를 기준으로 라고 했으니... 강좌목록 테이블을 열고 정원필드를 지정하라는 의미가 될 수도 있지만 SQL문법상으로 저 지문의 뜻은 강좌목록.정원 이 맞으므로 이 답이 틀린건 아니다.
다만 내가 직접 정렬기준에 입력하는 방법은 지금 처음 알게되었으니 숙지하도록하자.

[문제]2 -(5)
지문 : <회원>테이블의 '이메일' 필드에는 "@" 문자가 반드시 포함되도록 유효성 검사 규칙을 설정하고 '반드시 @를 포함하여 입력하시오.'의 유효성 검사 텍스트를 설정하시오.
오답: 유효성 검사 규칙 : like "*@*"
정답: 유효성 검사 규칙 : like "*@*" / 유효성 검사 텍스트 : 반드시 @를 포함하여 입력하시오.
<풀이>
유효성 검사 규칙은 맞았으나 지문을 끝까지 안읽어서 틀렸다.
' 반드시 @를 포함하여 입력하시오.' 의 유효성 검사 텍스트를 설정하시오.
이렇게 유효성 검사 텍스트를 설정하라는 말은 유효성 규칙에 어긋났을 시 해당 문구가 오류창으로 뜨도록 설정하는것으로 알고있어야 하며 필드속성 - 일반 - 유효성검사텍스트 : ' 반드시 @를 포함하여 입력하시오.' 와 같이 설정해준다.

[문제]3 - 2
지문 : RecordSource를 이용하여 txt찾기 컨트롤에 찾고자 하는 '강좌명'의 일부를 입력한 후 버튼을 누르면 기능을 수행하는 이벤트 프로시저 구현

<오답> : Me.RecordSource = "Select * from 강좌목록 where 강좌명 = '" & txt찾기 & "'"

<정답> : Me.RecordSource = "Select * from 강좌목록 where 강좌명 = '*" & txt찾기 & "*'"
혹은 Me.RecordSource = "Select * from 강좌목록 where 강좌명 like '*" & txt찾기 & "*'"

<풀이>
너무나도 아쉽게 틀렸다. 지문을 좀더 꼼꼼히 읽기바란다.
'강좌명'의 일부를 입력한 후 라고 나와있으므로 앞 뒤로 *을 붙혀준다
이때 *을 붙히는 방법은 '" &컨트롤명&"' 의 홑따옴표와 쌍따옴표 사이에 *을 넣어줘야한다. '*" &컨트롤명&"*' 이렇게
또 실수를 할 수 있는곳이 있는데 RecordSource에서 SELECT문은 시작 전부터 종료까지의 문장을 "쌍따옴표" 로 묶어줘야한다"SELECT&FROM테이블명 WHERE절" 이런식으로 말이다.


[문제]4- 2
지문 : <수강신청> 테이블에 존재하지 않는 <회원> 테이블의 자료 중 '이름','주소','전화번호','이메일' 필드만을 조회

<오답> : '이름','주소','전화번호','이메일' 후 더이상 작업진행 못함.

<정답> :
1. '이름','주소','전화번호','이메일' 필드 추가
2. 관계 - 조인속성선 더블클릭 - 2: '회원'에서는 모든 레코드를 포함하고 '수강신청'에서는 조인된 필드가 일치하는 레코드만 포함
3. 강자코드 선택 후 조건에 Is null

<풀이> : "'수강신청' 테이블에 존재하지 않는 '회원 '테이블의 자료"라 함은 '회원'에서는 모든 레코드를 포함하고 '수강신청'에서는 조인된 필드가 일치하는 레코드만 포함 하도록 설정해 줘야 한다.
그 이후 강좌코드 필드를 추가한 후 표시 체크박스를 해제하고 조건에 Is Null을 입력해준다.

이때 답안에는 강좌코드 라고 나와있는데 수강신청 테이블에 존재하지 않는 이라는 지문이므로 강좌코드 외에도 회원코드나 수강신청일 출석일 중 하나를 필드로 선택하여 Is Null 조건을 입력해도 상관없다.
이것은 앞서 조인된 필드가 일치하는 레코드만 포함하도록 설 정했기 때문에 다른 회원번호~출석일까지 4개의 필드를 모두 체크해서 확인해 본 결과 해당 필드들이 모두 빈칸으로 표시된다.
빈칸으로 표시된것을 기준으로 하면 되므로 강좌코드 이외의 수강신청 테이블의 다른 필드로 해도 상관없음.




[문제]4- 4
지문 : <강좌정보체크>쿼리에서 '라인댄스'가 들어있는 강좌명을 모두 '줌바댄스'로 수정하는 <강좌명변경> 업데이트 쿼리 작성

<오답> : '회원번호','이름','강좌코드','강좌명','개강일','월수강료','정원','수강신청일','출석일' 모두 선택하고
''강좌명' 속성의 [업데이트] : "줌바댄스" / [조건] : "라인댄스" 로 입력

<정답> : '강좌명' 필드만 추가한 후 '강좌명' 속성의 [업데이트] : "줌바댄스" / [조건] : "*라인댄스*" 로 입력

<풀이> : 문제상의 그림은 강좌정보체크 쿼리를 강좌명 변경이라는 쿼리를 업데이트 쿼리로 만들고 쿼리를 업데이트 한 후 보여주는 그림이다.
해당 그림은 강좌명변경 쿼리가아니라 업데이트 된 강좌정보체크 쿼리의 그림이다..
실수한이유는 저게 강좌명변경 쿼리인줄알고 필드 추가를 회원번호부터 출석일까지 모두 추가하고 강좌명 필드에 업데이트와 조건을 지정했다.
하지만 이건 틀린건아니다. 다만 비효율적인것 뿐...
왜냐하면 어차피 강좌명필드만 특정 조건에 의해 업데이트할거면 강좌명필드만 추가하고 거기서 조건과 업데이트를 입력해주면 되는거였다.
내가 틀린부분은 "라인댄스"가 아니라 "*라인댄스*" 였기 때문에 틀린것이다.
지문을 제대로 읽어보면 '라인댄스'가 들어있는 강좌명을 바꾸라고 나와있기 때문에 '라인댄스' 라는 단어의 앞 뒤에 뭐든 들어올 수 있도록 자체 서식을 *로 적용하여 입력했어야 했다.
"라인댄스"가 아니라 "*라인댄스*" 이렇게 말이다.
3행이 바뀌어야 정답인데 2행만 바뀌었기 때문에 오답처리... ㅠㅠ

728x90
반응형