다음 중 환자번호[C2:C5]를 이용하여 성별[D2:D5]을 표시하기 … | [컴퓨터활용능력 2급 필기] 20년 2회차 기출문제 상세 페이지
1[컴퓨터활용능력 2급 필기] 20년 2회차
다음 중 환자번호[C2:C5]를 이용하여 성별[D2:D5]을 표시하기 위해 [D2] 셀에 입력할 수식으로 옳지 않은 것은? (단, 환자번호의 4번째 문자가'M'이면 '남', 'F'이면 '여' 임)
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 번호 | 이름 | 환자번호 | 성별 |
| 2 | 1 | 박상훈 | 01-M0001 | |
| 3 | 2 | 서윤희 | 07-F1002 | |
| 4 | 3 | 김소민 | 02-F5111 | |
| 5 | 4 | 이진 | 03-M0224 | |
| 6 | ||||
| 7 | 코드 | 성별 | ||
| 8 | M | 남 | ||
| 9 | F | 여 |
1
=IF(MID(C2, 4, 1)="M", "남", "여")
2
=INDEX($A$8:$B$9, MATCH(MID(C2, 4, 1), $A$8:$A$9, 0), 2)
3
=VLOOKUP(MID(C2, 4, 1), $A$8:$B$9, 2, FALSE)
4
=IFERROR(IF(SEARCH(C2, "M"), "남"), "여")
해설
환자번호는 01-M0001, 07-F1002, 02-F5111, 03-M0224 형태로, 하이픈 다음인 4번째 문자가 M 또는 F다. 따라서 MID(C2, 4, 1)로 그 한 글자를 떼어내는 것이 출발점이고, A8:B9에는 M→남, F→여 라는 코드표가 따로 준비돼 있다.
MID로 뽑은 값을 IF로 직접 비교해 '남'/'여'를 내는 방법, 코드표에서 MATCH로 행 위치를 찾아 INDEX로 2열 값을 꺼내는 방법, 같은 코드표를 VLOOKUP의 정확히 일치(FALSE)로 조회하는 방법은 모두 [D2]에 '남'을 올바르게 표시한다.
반면 =IFERROR(IF(SEARCH(C2, "M"), "남"), "여")는 잘못된 식이다. SEARCH는 SEARCH(찾을 텍스트, 대상 텍스트) 순서인데 이 식은 인수가 뒤바뀌어 '01-M0001'을 'M' 안에서 찾으라는 뜻이 된다. 찾을 문자열이 대상보다 길어 항상 오류가 나고, IFERROR가 그 오류를 받아 어떤 환자번호든 '여'만 반환한다. 게다가 4번째 문자만 보는 것이 아니라 문자열 전체를 대상으로 삼는다는 점에서도 조건을 만족하지 못한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.