1권 307페이지에 4번 문제입니다.
=SUM(IF((RIGHT($A$20:$A$39,2)=E10)*IFERROR((FIND("판매",$A$20:$A$39)=1),FALSE),$H$20:$H$39))
답은 이건데, 문제에서 IFERROR 함수를 쓰라고 해서 쓰는 것은 알겠습니다.
근데 =SUM(IF((RIGHT($A$20:$A$39,2)=E10)*(FIND("판매",$A$20:$A$39)=1),$H$20:$H$39)) 왜 이렇게 하면
결과가 똑같이 안 나오는지 궁금해요!
FIND("판매",$A$20:$A$39)=1 이걸 IF함수에서 조건으로 주면, 뜻이 범위에서 "판매"를 찾고 시작값이 1이다가 참이면 TRUE값인 1반환 이게 아닌가요?
그래서 조건2와 조건1 둘 다 참이면, 1*1해서 전체조건이 참이니까 합 구할 범위에서 합이 구해져야한다고 생각했어요..............ㅠㅠ
IFERROR을 꼭 써야하니까 문제에서 조건으로 줬을 거 같은데 왜 없이는 식이 성립되지 않죠..?
iferror 로 오류를 확인 하는 것이므로 이것이 없이는 정확한 결과가 나오지 않습니다.
find 함수를 이용하여 "판매"를 찾아 그 위치를 표시하는데,
해당 셀에 "판매"가 있다면 그 시작 위치가 결과값으로 나왔겠죠?
그 위치값으로 가장 작은 값은 "정보"가 첫번째로 나오는 1이므로 1보다 크거나 같다면 "판매"라는 글자가 있는 것이 됩니다.
그러므로 '>=1'을 해준 것입니다. 그런데 만약 "판매"라는 글자가 없을 때는 find 함수는 오류가 발생합니다.
그러므로 iferrorr 함수를 이용하여 오류가 발생하는지 체크를 하는 것입니다.
오류가 발생했다면 이것은 "판매"라는 글자가 없는 것이고, 이것은 조건을 만족하지 않은 것이므로 'false'를 넣는 것입니다.
>=1 을 생략해도 정확한 결과가 나온다면 생략하셔도 됩니다.
좋은 하루 되세요.
-
*2018-01-30 22:23:32
iferror 로 오류를 확인 하는 것이므로 이것이 없이는 정확한 결과가 나오지 않습니다.
find 함수를 이용하여 "판매"를 찾아 그 위치를 표시하는데,
해당 셀에 "판매"가 있다면 그 시작 위치가 결과값으로 나왔겠죠?
그 위치값으로 가장 작은 값은 "정보"가 첫번째로 나오는 1이므로 1보다 크거나 같다면 "판매"라는 글자가 있는 것이 됩니다.
그러므로 '>=1'을 해준 것입니다. 그런데 만약 "판매"라는 글자가 없을 때는 find 함수는 오류가 발생합니다.
그러므로 iferrorr 함수를 이용하여 오류가 발생하는지 체크를 하는 것입니다.
오류가 발생했다면 이것은 "판매"라는 글자가 없는 것이고, 이것은 조건을 만족하지 않은 것이므로 'false'를 넣는 것입니다.
>=1 을 생략해도 정확한 결과가 나온다면 생략하셔도 됩니다.
좋은 하루 되세요.