본문 바로가기
카테고리 없음

fn함수

by DOUBLE_PLANET 2017. 2. 10.
728x90
반응형

fn함수는 무조건 나오는 문제다.

아아..


7회 기출문제

fn비고는 청구방법을 인수로 받아 비고를 계산하는 함수.

비고는 청구방법이 E-mail이면 4% 할인, 핸드폰이면 2% 할인, 그 외는 빈칸을 표시하는 문제.


Public Function fn비고(청구방법)


if 청구방법 = "E-mail" Then

fn비고 = "4% 할ㄹ인"

Elseif 청구방법 = "핸드폰" Then

fn비고 = "2% 할인"

Else

     fn비고 = " "

End If


End Function


어때요,쉽죠?

이거 한담에 끝이 아니구


K3 에 함수 삽입 > 사용자 지정 > fn비고 선택 후 확인

청구방법이 I열이니까 I3



=and(RIGHT($E3,1)="M",$F3="일반")


8번

fn판매액은 판매량 이 문장은 과감히 제끼라 뭐 필요가 없는듯.

판매액은 판매량 X 가격, 판매량 5개 이상 5%, 그렇지않으면 3%

Public Function fn판매액(판매량, 가격)

    If 판매량 >= 5 Then

        fn판매액 = 판매량 * 가격 * 0.95

    Else

        fn판매액 = 판매량 * 가격 * 0.97

    End If

End Function



VLOOKUP과 MATCH를 조져보자.

인화구분과 사이즈에 해당하는 단가를 

J26:M31 영역에서 찾아 H4:H23에 표시하자


=VLOOKUP(F4,$J$27:$M$31,MATCH(E4,$J$26:$M$26,0),0)

F4는 사이즈내용

J27~M31은 이름빼고 내용만

MATCH

E4는 인화구분내용

J26~M26은 단가표 이름

0은 정확한 수치


MATCH부터 분석해보자.

인화구분 내용 중 일반을 찾아놓는 것이다. 

예시를 들자면 총을 쏘는게 아니고 반만 조준해놓는거다.

그다음에 VLOOKUP.

일반을 찾았으니 사이즈를 찾는거다 3*4 

3*4를 J27~M31 사이에서 아까 조준해놓은 일반과

합쳐서 찾은 다음에 쏘는것(값을 찾는것)이다.


그럼 답 나옴. 


VLOOKUP(F4,$J$27:$M$31,MATCH(E4,$J$26:$M$26,0),0)


그러면 왜 사이즈가 인화구분보다 먼저 나오는 것인가? 그것은

VLOOKUP 함수가 VERTICAL(세로) 이기 때문이다.

HLOOKUP 은 HORIZON(가로)

그러니까,


HLOOKUP의 또다른 문제를 보자.

=HLOOKUP(E3,$B$35:$D$37,MATCH(F3,("$A$36:$A$37")-1)+1


표1의 학년과 강의과목과 표2의 할인율표를 이용하여

G3:G32영역에 학년과 강의과목에 따른 수강료 할인율을 계산.


E3은 학ㅇ년 내용

B35~D37은 역시 표의 그것.

F3은 강의과목의 내용

A36~A37은 영어.기타


여기서 우리가 확인할 수 있는건.

VERTICAL은 가로로.

HORIZON은 세로로. 반대로 가는 현상이다 내가 해석을 잘못한것일수도 있지만 

뭐 이렇게라도 머리에 넣으면 그만인거다.





다른 fn함수

Public Function fn배송료(결제금액, 배송방법)


    If 배송방법 = "택배" Then

        If 결제금액 < 30000 Then

            fn배송료 = 3000

        Else

            fn배송료 = 0

    End If

    

    ElseIf 배송방법 = "퀵" Then

          fn배송료 = 12000

    ElseIf 배송방법 = "직접수령" Then

          fn배송료 = 0

    End If

  

    

End Function


여기의 핵심은 If와 Elseif 인데

If 와 End If 가 끝나고

Elseif 가 두개 나란히 나오는데 끝나는건 End If 로 깔끔히 마무리된다는 것을 알 수 있다.




728x90
반응형

댓글