책 내용 질문하기
식 질문이요.
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
430
조회수
91
작성일
2011-06-12
작성자
첨부파일

엑셀실전 모의 c

계산작업 3번문제에서.

답은 아래것이구요.

G3*lookup(F3, $A$17:$B$20, 2) + if(or(F3>=10, D3="과장"), 5%, 0)

저는 이렇게 작성을 했는데, ㅠㅠ 답이 안나와요.

=IF(OR($F3>=10,$D3="과장"),$G3*VLOOKUP($F3,$A17:$B20,2)*0.5,$G3*VLOOKUP($F3,$A17:$B20,2))

이거랑 답인 식이랑 뭐가 다른가요?

441 page

계산작업 3번 답이요..

=MAX(($B$12:$B$27=$A3,F$12:F$27))-AVERAGE(($B$12:$B$27=$A3,F$12:F$27))

이렇게 하면 왜 안되나요? ..

또 답을보면 max부분에서 * 이게 and라는 의미 잖아요.

근데 average부분에서 여기도 * 이용하면 될것 같은데 여기서는 왜 if를 사용 했나요?

답변
2011-06-12 20:55:33

=IF(OR($F3>=10,$D3="과장"),$G3*(VLOOKUP($F3,$A$17:$B$20,2)+0.05),$G3*VLOOKUP($F3,$A$17:$B$20,2))

$G3*(VLOOKUP($F3,$A$17:$B$20,2)+0.05)

에서 vlookup에 괄호를 넣어 vlookup에서 구한값에 0.05 를 먼저 더하게 하시면 됩니다.

0.5 는 50% 이기때문에 0.5가 아니라 0.05 이구요. * 하시면 안되고 + 하셔야 합니다.

그리고 범위 a17:b20 은 절대참조로 지정 하셔야 합니다.

1편 엑셀 113 페이지 설명입니다.

평균값이 186,503이 나왔어요.
if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 =AVERAGE(550000.1650000,4000000,165000,770000) 와 =AVERAGE(550000.1650000,4000000,165000,770000,0...)의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

좀 쉽게 설명 하자면

average(if(조건,반활할값))

으로 사용하면 조건에 맞으면 반환할 값을 나타내게 됩니다. 그리고 조건에 맞지 않으면 null 아무것도 가지지 않은 값이 나타난다는 것이죠.

만약 조건에 맞는 값중에 10,20,30,40,50 인 값이 있다면

average(10,20,,30,40,,50,,) 과 같이 null값이 생기게 됩니다. 조건에 맞으면 10,20 과 같은 값을 반환하게 되고, 조건이 맞지 않으면

빈 공백 , , 즉 아무것도 입력되지 않는 것이죠.

이렇게 하시면 10+20+30+40+50 을 해서 평균을 내면 됩니다. 그럼 평균은 30이 되게 되죠.

그런데

average((조건1)*(반환할값))

과 같이 쓰게 되면

조건이 참이면 1, 아니면 0이 되어

조건에 맞는 값이 10,20,30,40,50 이고 조건에 맞지 않는 값도 위에 처럼 있다고 하면

1 * 10 = 10

1 * 20 = 20

과 같이 되는데

조건이 거짓인것은

0 * 14 = 0

0 * 43 = 0

과 같이 0이 나오게 됩니다.

이렇게 되면

average(10,20,0,30,40,0,50,0,0) 이 되게 되고

이것을 다 더한값 150에 더한값의 개수인 9를 나눠 줘야 하기때문에

평균이 16.67 이 나오게 되는 것입니다.

평균이 확 줄었죠?

이렇게 0값이 들어오게 되면 평균이 이상하게 구해지게 되므로 if문이 꼭 필요하다는 설명을 하고 있는것입니다.

이와 비슷한 예로

min을 들어보면

위와 같이 조건이 참일때 반환하고 거짓일때는 아무것도 반환하지 않으면

min(10,20,,30,40,,50,,) 에서 최소값은 10이 됩니다.

그런데

if를 쓰지 않은 min값은

min(10,20,0,30,40,0,50,0,0) 되어 0이 최소값이 되는 것이죠.

구하고자 하는 값과 달라지게 되는 것입니다. min은 항상 0밖에 안나오게 되죠.

이런 이유로 min, median, small등도 if와 같이 사용하셔야 합니다.

좋은 하루 되세요.

"
  • *
    2011-06-12 20:55:33

    =IF(OR($F3>=10,$D3="과장"),$G3*(VLOOKUP($F3,$A$17:$B$20,2)+0.05),$G3*VLOOKUP($F3,$A$17:$B$20,2))

    $G3*(VLOOKUP($F3,$A$17:$B$20,2)+0.05)

    에서 vlookup에 괄호를 넣어 vlookup에서 구한값에 0.05 를 먼저 더하게 하시면 됩니다.

    0.5 는 50% 이기때문에 0.5가 아니라 0.05 이구요. * 하시면 안되고 + 하셔야 합니다.

    그리고 범위 a17:b20 은 절대참조로 지정 하셔야 합니다.

    1편 엑셀 113 페이지 설명입니다.

    평균값이 186,503이 나왔어요.
    if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 =AVERAGE(550000.1650000,4000000,165000,770000) 와 =AVERAGE(550000.1650000,4000000,165000,770000,0...)의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

    좀 쉽게 설명 하자면

    average(if(조건,반활할값))

    으로 사용하면 조건에 맞으면 반환할 값을 나타내게 됩니다. 그리고 조건에 맞지 않으면 null 아무것도 가지지 않은 값이 나타난다는 것이죠.

    만약 조건에 맞는 값중에 10,20,30,40,50 인 값이 있다면

    average(10,20,,30,40,,50,,) 과 같이 null값이 생기게 됩니다. 조건에 맞으면 10,20 과 같은 값을 반환하게 되고, 조건이 맞지 않으면

    빈 공백 , , 즉 아무것도 입력되지 않는 것이죠.

    이렇게 하시면 10+20+30+40+50 을 해서 평균을 내면 됩니다. 그럼 평균은 30이 되게 되죠.

    그런데

    average((조건1)*(반환할값))

    과 같이 쓰게 되면

    조건이 참이면 1, 아니면 0이 되어

    조건에 맞는 값이 10,20,30,40,50 이고 조건에 맞지 않는 값도 위에 처럼 있다고 하면

    1 * 10 = 10

    1 * 20 = 20

    과 같이 되는데

    조건이 거짓인것은

    0 * 14 = 0

    0 * 43 = 0

    과 같이 0이 나오게 됩니다.

    이렇게 되면

    average(10,20,0,30,40,0,50,0,0) 이 되게 되고

    이것을 다 더한값 150에 더한값의 개수인 9를 나눠 줘야 하기때문에

    평균이 16.67 이 나오게 되는 것입니다.

    평균이 확 줄었죠?

    이렇게 0값이 들어오게 되면 평균이 이상하게 구해지게 되므로 if문이 꼭 필요하다는 설명을 하고 있는것입니다.

    이와 비슷한 예로

    min을 들어보면

    위와 같이 조건이 참일때 반환하고 거짓일때는 아무것도 반환하지 않으면

    min(10,20,,30,40,,50,,) 에서 최소값은 10이 됩니다.

    그런데

    if를 쓰지 않은 min값은

    min(10,20,0,30,40,0,50,0,0) 되어 0이 최소값이 되는 것이죠.

    구하고자 하는 값과 달라지게 되는 것입니다. min은 항상 0밖에 안나오게 되죠.

    이런 이유로 min, median, small등도 if와 같이 사용하셔야 합니다.

    좋은 하루 되세요.

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