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

유형 4회 오답노트 - 1회차(40/69)

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

액셀 제한시간 - 40점;; 시간내에 너무 못품... 어려움

시간제한 없이 계산문제 제외하고 65점

계산문제 포함하여 

 

틀린문제 : [문제]4-3 (1) / [문제]4-3 (2) 버리는문제

시간안에 못푼문제 : [문제]2 / [문제]3-1 / [문제] 3-2

제한시간 초과 못푼문제 : [문제] 2-4 / [문제] 2-5 배열수식두문제 ㅡㅡ

 

[문제]4-3 (1)

오답 : txt대출일.RowSource = date

정답 : txt대출일 = date

<풀이>

날짜 혹은 시간 등의 함수를 저장하는 식은 [필드명 = 함수] 와 같이 작성한다 

제발 잊지말기!!!!!! 이거만 썼어도 7점이다 이 새끼야! 어으 분하다

 

[문제] 2-4

오답 : {=MAXA(IF(LEFT(B4,1)=$M5,$B$4:$B$28),$H$4:$H$28)}

정답 : {=MAXA(IF(LEFT($B$4:$B$28,1)=M5,$H$4:$H$8))}

<풀이>

배열수식인데 조금 햇갈린것같다. 처음엔 LEFT함수에 답안과 똑같이 범위를 지정해주긴 했다;

근데 뒤의 조건과 범위를 지정해주는데서 햇갈렸다..

MAXA라는 함수를 처음 접했기 때문에 오답을 저렇게 작성한 이유는 LEFT함수 자체가 하나의값과 비교해주는 함수이기 때문에 배열함수로는 사용해 본 적이 없어서 단일 셀로 지정해주고 값을 비교한다음 그 다음에 해당 셀의 전체 범위를 지정해준것이다.

따라서 LEFT든 RIGHT든 어퍼컷으든 훅이든 (ㅈㅅ) 배열수식은 무조건 조건식에는 함수가 들어오더라도 범위를 지정해주자.

또한 IF와 함께 사용되는 배열수식은 *가 아닌 ,이며 AVERAGE, LARGE, SMALL, MAX, MAXA 등등은 첫 인자값에 조건을, 두번째 인자값에는 범위를 지정해주자... 이거 되게 헷갈림 주의해야함!

IF문일때 값을 구할 범위는 무조건 IF문 소괄호 안!!!!

 

 

[문제] 2-5

오답 : {=INDEX($C$4:$C$28,MATCH((LEFT($D$4:$D$28,2)="87")*$F$4:$F$28=MAX($F$4:$F$28),$C$4:$C$28),2)}

정답 : {=INDEX(C4:C28,MATCH(MAX((LEFT(D4:D28,2)="87")*F4:F28),(LEFT(D4:D28,2)="87)*F4:F28,0))}

<풀이>

이 문제는 따지고보면 어려운문제는 아닌데 너무 많은 함수를 사용하기도 하고 반복해서 풀어본 문제가 별로 없어서 생소해서 틀린거같다.

MATCH함수와 MAX함수를 사용한 범위가 모두 아쉽다.

일단 INDEX,MATCH,MAX함수는 행 혹은 열에서 값을 찾을때 사용하며 해당 배열함수 공식은

{=INDEX(범위,MATCH(MAX((조건)*최대값을 구할 범위),(조건)*(최대값을 구할 범위,0),k)} 이다.

좀 복잡하다. 안에서부터 파보면

 

우선 MAX함수에 대한 배열수식의 공식은 기본적으로 MAX((조건)*최대값을 구할 범위) 이다

 

또 INDEX,MATCH 함수의 배열수식 공식은 INDEX(범위,MATCH(찾을값,찾을값을포함한 범위,0)) 이다.

 

MAX((조건)*최대값을 구할 범위),(조건)*(최대값을 구할 범위,0)) =찾을값,찾을값을포함한 범위,0 인 셈이다..;;

 

MAX로 구한 값이 MATCH 함수에서 찾을값이 되고 다시 찾을값을 포함한 범위는 MAX함수의 조건 * 최대값을 구할 범위가 된다.

 

좀.. 음.. 많이.. 복잡하다.

공식을 보면서 풀어보고 이해하자

 

반복하는거 외엔 답이없다

 

다시 풀어보면 MAX안에 조건을 넣어야 하며 이 조건은 LEFT함수로 구한값과 임의의 숫자를 비교해줘야한다.

문제 상에서는 주민등록번호가 87인 회원의 구매건수 최대값을 구해야 하므로

조건은 범위가 주민등록번호의 왼쪽 두자리가 97이 되어야하며 이 식은 (LEFT(D4:D28,2)="87")이며

최대값을 구할 범위는 구매건수의 범위 (F4:F28) 가 된다.

따라서 MAX( (LEFT(D4:D28,2)="87") * (F4:F28)  가 최대값을 구하는 식이고

여기서 이 (조건식 * 범위)인 (LEFT(D4:D28,2)="87") * (F4:F28)  는 MATCH함수에서 한번 더 사용한다.

MATCH(  MAX( (LEFT(D4:D28,2)="87") * (F4:F28)   ,(LEFT(D4:D28,1)="87") * (F4:F28)

 

이렇게 말이다.

 

그 다음 INDEX로 한번 더 씌워주고 INDEX를통해 값을 구할 해당 값이 있는 범위를 첫 인수로 지정해주고 다음 인수로 MATCH(  MAX( (LEFT(D4:D28,2)="87") * (F4:F28)  )   ,(LEFT(D4:D28,2)="87") * (F4:F28) ) 값을 지정해주면 된다. 

따라서 식은 

INDEX(C4:C28 , MATCH(  MAX( (LEFT(D4:D28,2)="87") * (F4:F28)  )   ,(LEFT(D4:D28,2)="87") * (F4:F28) )  , 0)

으로 완성된다.

(범위들을 다 절대값으로 묶어도 됨)



액세스 - 69점

시간안에 거의다품. 틀린이유는 거진 실수, 혹은 거의 다 완성했는데 부분점수가 없어서 모르는 서식지정 등등 때문... 등등 한끝차이

조금만 더 노력하자!

틀린문제 : 문제 2-2 / 문제 3-2 / 문제 4-2 / 문제 4-3 / 문제 4-4

[문제] 2-2
정답 : cmb과목 속성시트 - 형식 - 열 개수 : 2
<풀이>
컨트롤에 콤보 상자를 설정할 때는 바인드랑은 전혀 상관없이 열 개수를 콤보상자에 나열될 필드의 개수대로 설정해 줘야한다.

[문제] 3-2
정답 
If MsgBox("폼을 닫으시겠습니까?", vbYesNoCancel, "폼 닫기") = vbYes Then
DoCmd.Close
End If

<풀이>
MsgBox 어렵지 않다!!
MsgBox는 MsgBox( 까지 타이핑하면 순서대로 뭐가 나올지 출력해주는데 다음과 같다
MsgBox(Prompt,[Button As VbMsgBoxStyle = vbOKOnly], [Title], [HelpFile], [Context]) As VbMsgBoxResult
MsgBox(내용,[버튼 과 메시지박스 스타일 = 기본값 : 확인], 제목, F1 도움말파일, 도움말파일 필수항목) As VbMsgBoxResult

이때 하나하나 입력할때마다 ,(쉼표)로 끊어주고 )괄호가 닫혔을때는 As를 입력하고 띄어쓰기 한번 해주면 목록이 뜨는데 뭘 요구하는 값인지는 잘 모르겠다.

문제상에서 예,아니오,취소 버튼이 있는 msgbox에서 예를 클릭했을때 폼을 닫아주도록 프로시저를 구현하라고 나와있다.
이때 메시지 박스에대한 작성은 MsgBox("폼을 닫으시겠습니까?", vbYesNoCancel, "폼 닫기") 이렇게 된다.
vbYesNoCancel이 바로 예 아니오 취소 버튼을 메시지박스에 띄워준다
그리고 If문으로 예를눌렀을때 종료를시켜줄 문장을 작성해야하는데 vbYesNoCancel중에 vbYes가 예 이다. vbNo로 하면 아니오 혹은 vbCancel은 취소버튼 이겠지? ㅇㅋ??
따라서 if문에 MsgBox("",vbYesNoCancel,"") = vbYes then 이렇게 작성해 준 후 (메시지박스의 버튼이 Yes가 눌렸다면)
이제는 해당 폼을 닫을 차례이다. 닫는 속성은 DoCmd.Close 이다.

메시지박스 자체를 변수에 미리 담아놓은 후 해당 변수와 vbYes를 비교해주는것도 가능하다. (즉, 메시지박스는 변수에 저장이 가능)

Dim a = MsgBox("폼을 닫으시겠습니까?", vbYesNoCancel, "폼 닫기") <- 이때 Dim은 지역변수를 뜻하며 생략가능... 
If a = vbYes Then
DoCmd.Close
End If

+) MsgBox는 순서만 맞게 쓴다면 괄호 생략도 가능하지만 이렇게 변수에넣는다거나 혹은 If문으로 참거짓을 판별할때는 무조건 생략불가!!!


https://ttend.tistory.com/668
참조..

[문제] 4-2 
오답 : & "학년" /@ & "학년" 등등 뻘짓함
정답 : #" 학년" 혹은 0" 학년"
<풀이>
그냥 & "학년" 해버리면 텍스트가 좌측으로 쏠린다.
텍스트를 우측 정렬 하기 위해서는 앞자리가 숫자라면 #혹은 0 문자라면 @를 사용하여 0"문자" 혹은 #"문자" 혹은 @"문자" 와 같이 지정한다.
 #은 유효하지 않은 값 0을 생략 / 0은 유효하지 않은 값 0 표시 


[문제] 4-3
틀린이유 : 문제 끝까지 안읽음 -_-; 테이블 만들기 쿼리임; 다 만들었는데 테이블 만들기를 안함;;

[문제] 4-4
정답 : #" 명" 혹은 0" 명"

틀릴 문제가 아닌데 틀렸음;
세로로 출력해주는 값들은 행/ 가로로 출력되는 값들은 열 이라고 배웠다.
 그리고 형식은 #" 명" 혹은 0" 명"

728x90
반응형