(1번 문제는 이전 게시물에,3번 문제는 다음 게시물에)
1번. 토익이 800점 이상인 사람 중, 평균학점이 3.5 이상인 사람을 "합격", 아닌 사람은 "불합격"으로 표시
단, 정답은 H3:H14에 표시, IF를 사용할 것.( 풀이 )
2-1번. 토익이 900점 이상이면 = "확실", 899 ~ 800점 사이면 = "유력", 799 ~ 700점 사이면 = 보류, 699점 이하면 ="탈락"
단, 정답은 I3:I14에 표시, SELECT를 사용할 것.
2-2번. 운전면허만 있으면 "보류", 컴활만 있으면 "보류", 둘 다 있으면 "유력", 둘 다 아니면 "탈락"
단, 정답은 J3:J14에 표시, IF를 사용할 것.
3번. 전공이 "경영"이면서 평균학점이 4.0이상이며 컴활이 있으면 "확실", 컴활이 없으면 "유력"
단, 전공이 "경영"이 아닐 경우 "탈락"
단, 평균학점이 4.0 이상이 아닐 경우 "보류"
단, 정답은 K3:K14에 표시, IF와 SELECT를 사용할 것.( 풀이 )
풀이에 앞서,
" select "함수에 대해 조금 Araboja.
생성 방법은 사용자 정의 함수 if와 동일하다.
"사용자 정의 함수를 만들어라"라고 한다면,
모두 동일하게 새로운 모듈을 생성하는 것이 첫 번째이다.
그리고 위와 같이 적어준다.
물론 파란색 글자가 기본 형태다.
빨간색 글자는 문제에 따라 필요한 경우 사용하면 된다.
여기서 재미있는 것은
select는 if와 다르게 문자와 숫자를 구분해서 작성해야 한다.
문자인 경우 case "O"와 같은 형식으로 작성하고,
숫자인 경우 case is >= 80 과 같은 형식으로 작성한다.
그리고 이도저도 아닌,
case와 case is에 충족되지 않는 값이 있다면.
case else
fnB사합격 = "값" 과 같은 형식으로 작성하면 된다.
예를 들어,
컴활이라는 필드명 내 데이터는 대문자 O이다.
(모호한 문자는 문제에서 알려줍니다.)
대문자 O는 " 문자 " 이기 때문에
CASE를 활용하여 작성한다.
특이점은 CASE에는 등호나 부등호를 사용하지 않는다는 점.
반대로 CASE IS의 경우 등호와 부등호를 사용해야 한다.
토익 필드가 " 숫자 " 이기 때문이다.
이제 문제에 대해 접근해보자.
[ 2-1번 문제 풀이 ]
2-1번. 토익이 900점 이상이면 = "확실", 899 ~ 800점 사이면 = "유력", 799 ~ 700점 사이면 = 보류, 699점 이하면 ="탈락"
단, 정답은 I3:I14에 표시, SELECT를 사용할 것.
컴활은 문제를 꼼꼼하게 읽는 것이 중요하다.
먼저 빨강 사각형의 경우
사용해야 할 필드와 조건에 대해 알려주고 있다.
사용할 필드명 = 토익
조건은 900점 이상 / 899 ~ 800 / 799 ~ 700 / 699점 이하
그리고 파랑 사각형은 사용할 함수에 대해 알려주고 있다.
문제에서 요구하는 사항에 대해 모두 파악했으면 모듈을 열어준다.
(Alt +F11 ▶ 상단 메뉴 "삽입" ▶ "모듈" 선택)
위 select 설명과 같이 기본 틀을 작성해 준다.
public fucntion fnB사합격(토익)
select case 토익
case is >= 900
fnB사합격 = "확실"
end select
end function
이렇게 되면 토익이 900점 이상일 경우,
fnB사합격은 "확실"을 표시한다.
그렇다면 다음의 나열되는 800점대, 700점대, 그 이하는 어떻게 작성해야 할까?
생각보다 간단하다.
위 문제의 경우, 두 사진 모두 정답으로 인정된다.
첫 번째 사진을 예시로 설명하면,
if와 마찬가지로 select도 여러 개의 조건을 설정할 수 있다.
다만, 처음에 case로 조건을 주었다면 다음 조건도 case조건이여야 한다.
마찬가지로 case is로 조건을 주었다면 다음 조건도 case is조건이여야 한다.
그리고 또 if와 마찬가지로 select의 조건도 순서대로 진행된다.
가장 먼저 작성한 조건에 >=900을 작성했다면,
다음 조건에 900점 이상의 데이터가 표시되어도
이미 첫 조건에 사용했기 때문에 적용되지 않는다.
위 사진을 예로 들어보면,
첫 번째 조건 ▶ case is >= 900
첫 번째 조건에 대한 결과 ▶ fnB사합격 = "확실"
바로 여! 기! 서!
900 이상의 값은 모두 "확실"로 변경된다.
그렇기 때문에
다음 조건이 900이상을 포함하여도,
이미 900이상의 데이터는 "확실"로 변경되었기 때문에
두번째 조건에는 적용되지 않는다.
마찬가지로 3, 4번째 조건도
앞에서 이미 가져갔기 때문에
범위가 겹치지 않는다.
[ 정리 ]
Public Function fnB사합격(토익)
▶fnB사합격이라는 함수를 만들기 위해 토익의 필드를 사용하겠다.
Select Case 토익
▶토익필드의 데이터를 조건으로 사용하겠다.
Case Is >= 900
fnB사합격 = "확실"
▶900점 이상의 데이터는 모두 "확실"로 변경한다.
Case Is >= 800
fnB사합격 = "유력"
▶900점 이상의 데이터를 제외하고 800점 이상인 데이터를 "유력"으로 변경한다."
Case Is >= 700
fnB사합격 = "보류"
▶900, 800점 이상의 데이터를 제외하고 700점 이상인 데이터를 "보류"으로 변경한다."
Case Is <= 699
fnB사합격 = "탈락"
▶900, 800, 700점 이상의 데이터를 제외하고 699점 이하인 데이터를 "탈락"으로 변경한다."
End Select
▶select 닫아주고
End Function
▶function 닫아주고
모듈을 모두 작성했다면,
1. 정답을 입력할 첫 셀을 클릭
2. 함수 마법사 클릭
3. 사용자 정의 함수 선택
4. fnB사합격 함수를 찾고
5. 토익점수를 함수에 넣어주고
6. 드래그를 통해 채우기 함수 끝.
[ 2-2번 문제 풀이 ]
2-2번. 운전면허만 있으면 "보류", 컴활만 있으면 "보류", 둘 다 있으면 "유력", 둘 다 아니면 "탈락"
단, 정답은 J3:J14에 표시, IF를 사용할 것.
2-2번도 마찬가지다.
문제를 꼼꼼하게 읽는 것이 중요하다.
2-1과 동일한 방법으로
조건, 필드, 함수를 확인하고
Alt +F11 ▶ 모듈을 열어준다.
원리는 2-1번, 그리고 이전 게시물과 동일하다.
[ 정리 ]
public function fnC사합격(운전면허, 컴활) ▶함수 이름과 사용할 필드를 정의
if 운전면허="O" and 컴활="O" then ▶ 만약 운전면허와 컴활이 "O"라면,
fnC사합격= "유력" ▶ fnC사합격은 "유력"으로 표시
elseif 운전면허="O" or 컴활="O" then ▶ 위 if 조건에 충족하지 않는 데이터 중에, 만약 둘 중 하나라도 "O"라면,
fnC사합격 = "보류" ▶ fnC사합격은 "보류"로 표시
else ▶ 그럼에도 불구하고, 위 조건들에 충족하는 데이터가 없다면,
fnC사합격 = "탈락" ▶ fnC사합격은 "탈락"으로 표시
end if ▶ 열었던 if절을 닫아주고
end function ▶열었던 function을 닫아주고
2-2문제가 어렵다고 느껴지는 이유는
if의 두 조건이
하나는 and로 묶었고
하나는 or로 묶었기 때문이다.
하지만
여기까지 읽은 여러분이라면
이미 정답과 원리를 알고 있다.
???
아니라고 이야기한다면,
미안해요.
정말 순.서.대.로 읽고 표현하는 것이 엑셀이다.
[빨강]
가장 먼저 작성한 IF조건에 충족되는 모든 값을 "유력"으로 변경한다.
[초록]
그리고 위 유력으로 변경된 데이터를 제외하고
다음 조건에 충족하는 값을 "보류"로 변경한다.
[파랑]
그런 다음 위 모든 조건에 의해 변경된 데이터를 제외하고
남은 데이터를 "탈락"으로 변경한다.
모듈을 모두 작성했다면,
1. 정답을 입력할 첫 셀을 클릭
2. 함수 마법사 클릭
3. 사용자 정의 함수 선택
4. fnB사합격 함수를 찾고
5. 토익점수를 함수에 넣어주고
6. 드래그를 통해 채우기 함수 끝.
사용자 정의 함수 문제에서
가장 많이 나오는 것은
" if " 함수를 활용하는 것!
그다음 " select "함수를 사용하는 것이 2번째입니다.
저도 문제를 많이 풀어보고
컴활 시험도 많이 봤지만,
select가 1번인가 2번 나왔습니다.
사실 잘 기억나지 않아요 ㅎㅎ
그. 래. 도!
버리기엔 아까운 문제입니다.
무려 6점짜리니까!
모든 함수 문제가 8점입니다.
하나를 포기하기엔,
너무 아까운 점수죠 ㅎㅎ
5개 나오니까 총 30점이고
다른 곳에서 실수했다면
만회하기 가장 좋은 파트가
계산파트니까요.
긴 글 읽어주셔서 감사합니다.
궁금하신 부분,
잘못된 부분,
피드백이 필요한 부분,
아래 댓글
혹은 쪽지로 문의주세요 ㅎㅎ
감사합니다.
'일단 해봅시다 > 컴활 1급 실기' 카테고리의 다른 글
#9. 컴활1급실기 엑셀 꿀팁 및 후기(버릴 문제, 가져갈 문제) (3) | 2020.05.01 |
---|---|
#8-3. 컴활1급실기 사용자정의함수 IF와 SELECT (0) | 2020.05.01 |
#8-1. 컴활1급실기 사용자정의함수 IF와 SELECT (0) | 2020.05.01 |
#7-3. 추가함수 COUNT, COUNTA, COUNTIF, COUNTIFS, DCOUNT, DCOUNTA (0) | 2020.05.01 |
#7-2. 컴활1급실기 계산작업1 (REPT, COUNTIFS, ABS, ROUND, TRUNC 함수) (0) | 2020.05.01 |