책 내용 질문하기
계산작업
도서
2017 시나공 컴퓨터활용능력 1급 실기(엑셀,액세스 2007사용자용)
페이지
452
조회수
46
작성일
2017-10-09
작성자
탈퇴*원
첨부파일

1. 정답 함수식이 이해가 안됩니다

=SUM(IF($B$12:$B$27=A3)*(($E$12:$E$27="2호봉")+($E$12:$E$27="3호봉")),1)) & "명"

에서 IF절구문에서 TRUE값에서 1이 되들어가는건가요??

2. 함수식 이해가 어려워요..

3. 함수식중에서 MAX값에서는 왜 IF절을 쓰지 않고, AVERAGE값에서는 IF절을 쓰나요? AVERAGE값에서도

MAX식 처럼 *로 연결하면 안되나요?

4. 기타급여값이 식대+교통비+차량보조금 합인데 이 값을 모듈식에서 적어줘야하는 것 아닌가요?

원래 이런 경우는 모듈에서는 기본식을 입력하고 나중에 모듈에서 나와서 수기로 SUM(G12:I12)을 해주어야하나요?

5. 함수식 이해가 어려워요..

답변
2017-10-13 22:43:24

1.

sum(if(조건,1))

if문을 때어놓고 보면 조건이 참이면 1을 반영한다 라는 뜻이 됩니다.

조건이 참이면 1을 조건이 거짓이면 아무것도 나타내지 않으므로

=sum(1,1,,1,,1,,,1)

과 같은 값이 나올 것이고 이 값들을 모두 더해서 5라는 개수를 나타내게 되죠.

즉 조건에 맞는 것의 개수를 세는 방법이 되는 것입니다.

2.

if 를 사용하지 않으면 정확한 결과가 나오지 않습니다.

평균값이 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(0,550000,0,0,1650000,0,0...)의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

=AVERAGE(550000,1650000,4000000,165000,770000) 와 =AVERAGE(0,550000,0,0,1650000,0,0...) 차이 라고 했는데

첫번째 것은 5650000/5 가 되어 결과가 1130000 되고

두번째 것은 220000/7 이 되어 31428.57143 이 나옵니다.

즉 0 값도 포함하여 나누는 것과 0 값을 포함하지 않고 나누는 것의 차이가 되겠죠.

3. 두번째 지시사항에

▶ 급여 총액은 기본급과 기타급여의 합으로 계산(단, 기타급여는 식대,교통비,차량보조금의 합)

이라고 되어 있습니다. 여기서 기타급여가 식대,교통비,차량보조금의 합이라는 것을 확인 하고

사용하셔야 합니다.

프로시저로

public funtion fn급여총액(기본급,기타급여)

fn급여총액=기본급 + 기타급여

end funtion

을 입력하여 사용자 정의 함수를 만들고

J12 셀에

=fn급여총액(f12,sum(g12:i12))

로 입력하시면 됩니다.

좋은 하루 되세요.

  • *
    2017-10-13 22:43:24

    1.

    sum(if(조건,1))

    if문을 때어놓고 보면 조건이 참이면 1을 반영한다 라는 뜻이 됩니다.

    조건이 참이면 1을 조건이 거짓이면 아무것도 나타내지 않으므로

    =sum(1,1,,1,,1,,,1)

    과 같은 값이 나올 것이고 이 값들을 모두 더해서 5라는 개수를 나타내게 되죠.

    즉 조건에 맞는 것의 개수를 세는 방법이 되는 것입니다.

    2.

    if 를 사용하지 않으면 정확한 결과가 나오지 않습니다.

    평균값이 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(0,550000,0,0,1650000,0,0...)의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.

    =AVERAGE(550000,1650000,4000000,165000,770000) 와 =AVERAGE(0,550000,0,0,1650000,0,0...) 차이 라고 했는데

    첫번째 것은 5650000/5 가 되어 결과가 1130000 되고

    두번째 것은 220000/7 이 되어 31428.57143 이 나옵니다.

    즉 0 값도 포함하여 나누는 것과 0 값을 포함하지 않고 나누는 것의 차이가 되겠죠.

    3. 두번째 지시사항에

    ▶ 급여 총액은 기본급과 기타급여의 합으로 계산(단, 기타급여는 식대,교통비,차량보조금의 합)

    이라고 되어 있습니다. 여기서 기타급여가 식대,교통비,차량보조금의 합이라는 것을 확인 하고

    사용하셔야 합니다.

    프로시저로

    public funtion fn급여총액(기본급,기타급여)

    fn급여총액=기본급 + 기타급여

    end funtion

    을 입력하여 사용자 정의 함수를 만들고

    J12 셀에

    =fn급여총액(f12,sum(g12:i12))

    로 입력하시면 됩니다.

    좋은 하루 되세요.

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