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

유형 3회 오답노트 (40/74)

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

최신기출유형 3회
엑셀 - 시간안에 못풀었으나 순서는 1342로 풀었으며 득점은 40점
문제를 좀더 꼼꼼히 읽어볼것. 아쉽게 틀린게 많음. 쪼금만 더 풀어보면 계산문제 까지 도달할 수 있을 것 같다. 아직 차트에서 헤멘다!
틀린문제 : 문제 2번 계산작업 전체. 문제1-1,문제1-3, 문제 3-2, 문제 4-3(1),(2)

[문제]1-1
오답 : =AND(MID($A3,2,1)="2",$D3>=SMALL($D$3:$D$25,10))
정답 : =AND(MID($A3,2,1)="2",$D3<=SMALL($D$3:$D$25,10))
<풀이>
D3셀이 D3:D25영역의 하위 10위 이내이면 true를 반환한다고 했다는 말 즉, 하위 10위 이내 = 10위 보다 작은값을 말하는것.
우선 SMALL($D$3:$D$25,10))의 값은 70점이고 이 값은 D3:D25범위 내에서 하위 10위의 값이다. 가장 작은값부터 10번째로 작은값이라는뜻.
그러므로 10번째로 작은수인 70 부터 - 가장 작은수 이내 인 값이 하위 10위 이내 이므로 부등호는 D3의 값이 70보다 같거나 작게 가 맞다.
만약 상위 10위라고 했으면 상위 10위 점수보다 같거나 크게가 된다.

[문제]1-3
오답 : 표 2만 출력됨. 우측상단 시간, 행/열 머릿글 포함 모두 맞춤
정답 : 표 1과 함께 출력되야함.
<풀이>  
인쇄영역 추가를 해줬어야 한다. 실수한 이유는 표1이 아마 기본 인쇄영역이였던것 같은데.. 급하게 푸는 바람에 지문을 끝까지 읽지 않고, 원본파일이 표 1을 처음부터 인쇄영역으로 지정되어있던 것도 모르고
한번 지정했다가 내가 실수했나? 하고 인쇄영역을 아에 해제했던거같다.
인쇄영역 해제는 상관이 없었겠지, 애초에 덮어씌운거 부터가 실수였던것 같다.
다음부턴 끝까지 읽고 풀자... 
+ps) 인쇄영역 미리보기 단축키는 Ctrl + F2 버튼!

[문제]3-2
몰라 왜틀렸어 이거ㅡㅡ 맞게 햇는데 답이 이상해서 중간에 고침; 맞은거나 다름없음... 허나 냉정하겐 시간내엔 틀린거임;

문제 4-3(1)
오답 : txt판매시간 = "time()" / cmb지점명.additem = "값1" ~ 값5까지 5번입력
정답 : txt판매시간 = time / cmb지점명.additem "값1" ~ 값5까지 5번입력
<풀이>
프로시저에서 함수값을 폼의 목록에 저장할때는 값에 쌍따옴표를 씌우지않고 =등호나 ( )를 생략한다. 
(예를들어 time()함수는 "time()"도 아니고 time()도 아니고 오로지 time 이라고만 작성!) 


[문제]4-3(2)
버리는문제.

 


계산문제

 

[문제] 2-2

오답 : =COUNTIFS($A$3:$A$22,"*" & $A27 & "*",F$3:F$22,F$3:F$22>=90)

혹은 : =COUNTIFS($A$3:$A$22,"*" & $A27 & "*",F$3:F$22,"9*") -----뻘짓 겁나함;

정답 : =COUNTIFS($A$3:$A$22,"?" & $A27 & "*",F$3:F$22,">=90")

<풀이>

COUNTIFS 함수는 범위 내에서 조건에 맞는 셀을 정하는것인데 Criteria_range는 조건을 검사할 범위이며, Criteria는 숫자, 식, 텍스트 형식으로 된 조건이다.

여기서 내가 해맨 이유는... ">=90" 이렇게 써야하는데 F$3:F$22>=90 혹은 "9*" 이지랄로 썼다가 틀렸다..

조건식을 쌍따옴표로 씌워서 작성해야하는지는 몰랐다... 기억이안났다;;;;; 짜증난다그래서; 다음엔 이거 안틀리겠지 으휴열받아.

추가적으로 ?라고 해야하나 *이라고해도 상관없다 왜냐하면 구분코드의 알파벳부분의 앞자리가 규칙적으로 하나만 오기 때문이다. ㅋㅋ만약에 하나만오니까 ?를 해야하는거 아님? 이라고하면 하나만오는것 자체를 인식하고있으니 *이라고 해도 상관없다고 반박하면 된다. 인지차이다.

(구분코드의 알파벳 앞의 글자 수가 각 코드마다 규칙적인 갯수가 아니라면 무조건 *을써줘야 하지만 규칙적이면 ?를쓰든 *을쓰든 상관없다)

 

와일드 카드(만능문자) : 문자 속성
*, ?
* - 모든 글자수
? - 한 글자

 

 

 

[문제] 2-4

정답 : {=FREQUENCY(C$3:C$22,$A32:$A36)}

<풀이>

frequency함수는 배열수식으로 사용하는 함수다. ( - 문제 끝까지 읽어 제발)

매개변수는 값 범위 내에서 값이 발생하는 빈도를 계산하고, 숫자의 세로 배열을 구해준다. 

data_array : 빈도를 계산할 값 집합의 참조 또는 배열

bins_array : 값을 분류할 구간 값

즉, 학생의 성적 범위, 구간별 성적 으로 지정해준다.

 

여기서 주의할점은 각 셀별로 입력하고 배열수식을 적용하면 절대 안된다!

빈도를 계산하고 숫자의 세로 배열을 구해준다고 설명되있는것을 잘 보면 힌트다.

각 셀 별이 아닌 적용할 셀을 범위로 지정해준 후 수식을 입력하고 Ctrl Shift Enter로 배열수식을 적용해줘야만한다.

 

[문제] 2-5

틀린 이유 : 자꾸 다중IF문을 IF로만 입력한다.... 여타 프로그래밍 언어와 같이 프로시저의 다중IF문또한 ElseIF 구문을 사용해줘야한다 (Else IF - X / ElseIF - O)

+) 만약 ElseIF를 안쓰고 IF다음 IF를 또쓰면 변수선언 하라는 오류가뜬다

 


액세스 74점 - 시간안에 다 못품

틀린문제 : [문제] 4-2번

못푼문제 : [문제]3-1 (5)번, [문제]3-2번, [문제]4-3, [문제]4-4 

크로스탭쿼리 복습해보기..;

 

 

[문제]3-1 (5)번

오답 :  "판매: " & Count(*) & "건" / "판매: " &  =Count(*) & "건" / "판매: " & "=Count(*)" & "건" ====> 등등 뻘짓 겁나함;

정답 : ="판매: " & Count(*) & "건"

풀이 

보이는 바와 같이...  함수값 앞에 서식을 지정하려면 = 부등호를 앞으로 빼 주고 ="텍스트" & 함수 & "텍스트" 와 같이 지정해줘야한다.. 잊지않겠지뭐;(이걸내가안해봤는데어케알아 뻑치네)

 

[문제] 3-2

 

오답 : Me.Filter = "상품코드 = '" & txt조회 & "'"

정답 : Me.RecordSource = "Select * From 판매현황 Where 상품코드 = '" & txt조회 &'"

풀이 

프로시저를 통해 조회를 했던 문법은 Filter/FilterOn 이였다. 하지만 문제에서 RecordSource 속성을 이용하라고 나와있다.

우선 Filter와 RecordSource의 차이는 크게 두가지가있다.

Filter속성은 단순히 해당 조건에 만족하는 레코드만 표시하고 나머지는 숨겨주는 속성이다.

RecordSource속성은 해당 조건에 만족하는 레코드만 '테이블'에서 가져와 레코드원본을 재지정한다.

다시말해 RecordSource는 Filter와 레코드원본을 지정하는 것인데 이때 조건을 주어서 필터처럼 효과를 줄수 있다.

또한 지난번 유형2 문제에서는 폼의 레코드 원본이 테이블이였지만, 이번 문제에서는 레코드 원본이 쿼리이다.

그래서 조건식에 쿼리가 추가되는것을 유추할수 있다.

 

[문제]4-2 - 테이블만들기쿼리

 

만들어진 테이블은 1월부터 4월까지 월별로 수량의 합계를 조회하는 형식으로 출력이 된다.

나는 이게 어떻게 저렇게 출력되나에 대해서 엄청 고민했고 우선은 날짜 원본이 yyyy-mm-dd 이렇게 기본형식이 되어있어 속성시트의 형식에 m\월 이라고 지정해줬다.

그리고 1월 2월 3월 4월 각각 어떻게 지정하는지를 엄청 고민했지만 뻘짓만했다;

내가 한 뻘짓은 조건절에 계속 between 1 and 4 라던지 between "1월" and "4월" 이라던지 between #2020-01-01# and #2020-04-01# 이라던지 이따위 뻘짓만 하고있었다;

 

정답 : 월별판매: Month([판매일자]) & "월"

 

<풀이>

형식에서 바꿔줄게 아니라 판매일자 필드 자체를 Month()함수를 사용하여 Month([판매일자]) 이렇게 해줘야한다. 

이게 무슨차이냐 형식에서 바꿔주면 해당 날짜들을 그냥 단순히 m월 로 출력만 해주는 기능이라 월 단위로 묶이지 않아 1월중에도 일 별로 합계 값이 각각 나뉘어서 출력이된다.

예를들면 현재 날짜 형식은 yyyy-mm-dd이 기본값이고 형식에 m월 이라고 지정한다면

1월 4일 = 510 /  1월 5일= 460 / 1월 6일 = 545  3개가

각각 따로 1월 = 510 / 1월 = 460 / 1월 = 545 이렇게 3번 출력이되는거다

반면에 필드값 자체를 Month([판매일자]) 이렇게 함수를 사용하여 묶어버리면 필드값이 월 단위로 묶여서  합계가 계산되는것.

 

추가로 이 문제는 테이블 만들기 쿼리다; 문제좀 끝까지 읽자

테이블 만들기 순서는 쿼리를 완성시키고 나서 절대 먼저 저장하지말고 상단의 테이블만들기 버튼을 클릭해주고 테이블 이름을 '월별수량합계'로 입력하고 확인버튼을 누른 후 그때 쿼리를 저장해야한다. 쿼리 이름도 테이블과 같이 '월별수량합계' 라고 저장

그리고 해설에나온대로 하자면 좌측 쿼리 목록에서 월별판매수량 쿼리를 우측마우스 - 열기 를 해주는데 이때 실행된 쿼리는 종료되어 있어야 한다.

만약 디자인보기 상태에서 저장만 되있다면 실행 느낌표 버튼을 클릭해도 크게 상관없다.

!!!하지만!!! 절대!!! 쿼리를 먼저 저장하고 테이블만들기를 진행하면 안된다! 그렇게 하면 테이블은 쿼리에맞게 올바르게 만들어지지만 해당 쿼리가 삭제된다;;; (어이없음 왜이래?)

728x90
반응형