전형적인 배열수식이라 생각했는데,
조건1 : 동일한 부서
조건2 : "판매"가 포함된
조건2를 IFERROR, FIND함수로 표현하는게 이해가 안됩니다.
IFERROR(find("판매", $A$20:$A39)>=1, FALSE)인 경우,
"판매"가 포함안된 행에 관해서는 false를 뱉는데
그렇다면 If문의 전건(앞부분)의 진리값 전체가 FALSE가 되지않나요?
이 경우에 sum(if((조건1) * (FALSE) , 계산범위 )) 배열함수는 무엇을 계산하는지 모르겠습니다.
안녕하세요.
find 함수는 지정된 범위에서 "판매"가 있는지를 찾아, 있다면 "판매"가 있는 위치를 결과값으로 반환합니다.
find 함수의 결과값이 1 이상이라는 것은 지정된 범위에 "판매"가 있다는 의미이므로
find 함수의 결과를 1 이상인지를 비교하는 것입니다.
IFERROR(find("판매", $A$20:$A39)>=1, FALSE)
IFERROR("판매"가 있는지 판단, 오류시 FALSE 반환)
=SUM(IF( (RIGHT($A$20:$A$39,2)=E10) * IFERROR(FIND("판매",$A$20:$A$39)>=1,FALSE), $H$20:$H$39 ))
=SUM(IF( (조건1) * 오류일 경우 FALSE 반환 ), 합계를 구할 범위))
오류일 경우 FALSE를 반환하면 IF조건이 FALSE가 되므로 합계 범위에 포함되지 않습니다.
문제가 부서에 "판매"가 포함된 사원에 대해 팀별 기본급의 합계를 구하는 것입니다.
"판매"가 포함되지 않는다면, 합계 대상에서 자동 제외됩니다.
좋은 하루 보내세요.
-
관리자2018-12-04 23:17:05
안녕하세요.
find 함수는 지정된 범위에서 "판매"가 있는지를 찾아, 있다면 "판매"가 있는 위치를 결과값으로 반환합니다.
find 함수의 결과값이 1 이상이라는 것은 지정된 범위에 "판매"가 있다는 의미이므로
find 함수의 결과를 1 이상인지를 비교하는 것입니다.IFERROR(find("판매", $A$20:$A39)>=1, FALSE)
IFERROR("판매"가 있는지 판단, 오류시 FALSE 반환)
=SUM(IF( (RIGHT($A$20:$A$39,2)=E10) * IFERROR(FIND("판매",$A$20:$A$39)>=1,FALSE), $H$20:$H$39 ))
=SUM(IF( (조건1) * 오류일 경우 FALSE 반환 ), 합계를 구할 범위))
오류일 경우 FALSE를 반환하면 IF조건이 FALSE가 되므로 합계 범위에 포함되지 않습니다.
문제가 부서에 "판매"가 포함된 사원에 대해 팀별 기본급의 합계를 구하는 것입니다.
"판매"가 포함되지 않는다면, 합계 대상에서 자동 제외됩니다.
좋은 하루 보내세요.