책 내용 질문하기
기출문제 2014년 1회1급E형 계산문제 질문이요
도서
[2015] 컴퓨터활용능력 1급 실기
페이지
조회수
291
작성일
2015-08-25
작성자
첨부파일

2번 여기서는 +1 을 뒤에 왜 더해주는지가 이해가 안가네요 ㅜㅜ

match(G3,$B$33:$D$33,1)에서 왜 1을 더해주는지요 ㅜ

3번 나머지 식은 다 이해가 되는데 왜 mid식 다음에 곱하기1을 넣는지를 모르겠어요 ㅜㅜ

5번 사용자 지정함수

Public Function fn본인부담금(나이, 약제비총액)
If 약제비총액 >= 10000 Then

If 나이 >= 65 Then

fn본인부담금 = 약제비총액 * 0.1

ElseIf 약제비총액 >= 10000 Then

If 나이 < 65 Then

fn본인부담금 = 약제비총액 * 0.3

ElseIf 약제비총액 < 10000 Then

fn본인부담금 = 약제비총액 * 0.5

End If

End Function

이런식으로 써도 맞을거 같은데.. 왜 end if 가 없는 구문이라고 뜨는지요?ㅜㅜ

감사합니다.

답변
2015-08-27 07:02:27

1.

IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))

식이나 식 자체의 값이 오류가 나면 오류값을 표시합니다.

I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1) 은 식이 오류가 아니면 이 식을 그대로 계산하여 표시하고

이 값이 오류가 나면 VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 의 값을 반환하는 것이죠.

IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))

VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 에서 vlookup 의 범위 a34:d37 과 macth의 범위 b33:d33 이 다르기 때문입니다. 열이 틀려서 인 것이죠.

vlookup의 범위는 a열부터 4열 이고 match의 범위는 b열 부터 3열 이므로 match에서 나온 결과를 vlookup의 열로 찾게 되면 한줄씩 당겨져서 표시가 됩니다.

그러므로 vlookup의 결과와 같게 표시하기 위해서 +1 을 하는 것입니다.

2.

mid, right, left 함수는 텍스트 함수라서 결과가 숫자 모양이더라도 문자로 나타나게 됩니다.

문자로 나타난 숫자를 숫자로 사용하려면 *1 을 하시면 숫자로 사용하실 수 있으세요.

그래서 *1 을 한 것입니다.

*1 을 한 mid 값이 숫자가 되면 f34에 지정된 숫자와 비교하여 참인지 거짓인지 판단하게 됩니다.

*1 을 하지 않아도 정확한 결과가 나온다면 생략하셔도 됩니다.

3.

Public Function fn본인부담금(나이, 약제비총액)
If 약제비총액 >= 10000 Then

If 나이 >= 65 Then

fn본인부담금 = 약제비총액 * 0.1

ElseIf 약제비총액 >= 10000 Then

If 나이 < 65 Then

fn본인부담금 = 약제비총액 * 0.3

ElseIf 약제비총액 < 10000 Then

fn본인부담금 = 약제비총액 * 0.5

End If

End Function

에서

If 약제비총액 >= 10000 Then

If 나이 >= 65 Then

fn본인부담금 = 약제비총액 * 0.1

ElseIf 약제비총액 >= 10000 Then

를 보면 if 는 두개인데 elseif 가 하나뿐이세요. if 나이 에 해당하는 elseif 나 end if 가 있어야 합니다.

좋은 하루 되세요.

  • *
    2015-08-27 07:02:27

    1.

    IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))

    식이나 식 자체의 값이 오류가 나면 오류값을 표시합니다.

    I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1) 은 식이 오류가 아니면 이 식을 그대로 계산하여 표시하고

    이 값이 오류가 나면 VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 의 값을 반환하는 것이죠.

    IFERROR(I3*VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1), VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1))

    VLOOKUP(I3,$A$34:$D$37,MATCH(G3,$B$33:$D$33,0)+1 에서 vlookup 의 범위 a34:d37 과 macth의 범위 b33:d33 이 다르기 때문입니다. 열이 틀려서 인 것이죠.

    vlookup의 범위는 a열부터 4열 이고 match의 범위는 b열 부터 3열 이므로 match에서 나온 결과를 vlookup의 열로 찾게 되면 한줄씩 당겨져서 표시가 됩니다.

    그러므로 vlookup의 결과와 같게 표시하기 위해서 +1 을 하는 것입니다.

    2.

    mid, right, left 함수는 텍스트 함수라서 결과가 숫자 모양이더라도 문자로 나타나게 됩니다.

    문자로 나타난 숫자를 숫자로 사용하려면 *1 을 하시면 숫자로 사용하실 수 있으세요.

    그래서 *1 을 한 것입니다.

    *1 을 한 mid 값이 숫자가 되면 f34에 지정된 숫자와 비교하여 참인지 거짓인지 판단하게 됩니다.

    *1 을 하지 않아도 정확한 결과가 나온다면 생략하셔도 됩니다.

    3.

    Public Function fn본인부담금(나이, 약제비총액)
    If 약제비총액 >= 10000 Then

    If 나이 >= 65 Then

    fn본인부담금 = 약제비총액 * 0.1

    ElseIf 약제비총액 >= 10000 Then

    If 나이 < 65 Then

    fn본인부담금 = 약제비총액 * 0.3

    ElseIf 약제비총액 < 10000 Then

    fn본인부담금 = 약제비총액 * 0.5

    End If

    End Function

    에서

    If 약제비총액 >= 10000 Then

    If 나이 >= 65 Then

    fn본인부담금 = 약제비총액 * 0.1

    ElseIf 약제비총액 >= 10000 Then

    를 보면 if 는 두개인데 elseif 가 하나뿐이세요. if 나이 에 해당하는 elseif 나 end if 가 있어야 합니다.

    좋은 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.