근무팀별로 기본급이 가장 큰값과 기본급의 평균의 차이를 계산하는문제
답은 average( if ( 근무팀조건 , 기본급 ) ) 인데 저는 문제에서( max,average,daverage,if,or )중에서 선택이라길래 if 대신 다음 사진처럼 * 을 사용하였습니다
논리상으로 차이를잘 모르겠는데 average 결과값이 다른이유를 알 수 있을까요?
안녕하세요.
Average 함수는 조건을 넣을 때, 꼭 IF 함수를 이용해 주셔야 합니다.
조건이 거짓일 경우 if를 사용하면 false를 반환하고, if를 사용하지 않으면 0을 반환하게 됩니다.
Average 함수는 평균을 구하는 함수로 인수에 0 이 포함되면 결과가 달라지기 때문에
if를 사용하여 거짓인 경우 false가 반환되도록 해야 합니다.
아래 설명을 참고해 주세요.
평균값이 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 값을 포함하지 않고 나누는 것의 차이가 되겠죠.
MAX 함수는 조건을 넣을 때, if를 사용해도 되고 사용하지 않아도 상관없습니다. 인수 0에 영향을 받지 않기 때문입니다.
0 이 반환되어 값에 영향을 주는 average, min, median, small 함수 등은 반드시 if 문과 함께 사용해야 합니다.
좋은 하루 보내세요.
-
관리자2021-03-19 22:17:32
안녕하세요.
Average 함수는 조건을 넣을 때, 꼭 IF 함수를 이용해 주셔야 합니다.
조건이 거짓일 경우 if를 사용하면 false를 반환하고, if를 사용하지 않으면 0을 반환하게 됩니다.
Average 함수는 평균을 구하는 함수로 인수에 0 이 포함되면 결과가 달라지기 때문에
if를 사용하여 거짓인 경우 false가 반환되도록 해야 합니다.
아래 설명을 참고해 주세요.
평균값이 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 값을 포함하지 않고 나누는 것의 차이가 되겠죠.
MAX 함수는 조건을 넣을 때, if를 사용해도 되고 사용하지 않아도 상관없습니다. 인수 0에 영향을 받지 않기 때문입니다.
0 이 반환되어 값에 영향을 주는 average, min, median, small 함수 등은 반드시 if 문과 함께 사용해야 합니다.
좋은 하루 보내세요.