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 가 없는 구문이라고 뜨는지요?ㅜㅜ
감사합니다.
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 ThenIf 나이 >= 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 가 있어야 합니다.
좋은 하루 되세요.