안녕하세요?
2가지 이상의 조건의 다중조건에 대한 합이나 갯수를 구하는 함수의 강좌입니다.
일반적으로 다중조건이라 하면 배열수식을 사용하는것이 보통입니다.
(물론 일반 내장함수로 해결이 가능한 경우도 있습니다. 이는 강좌를 진행하며
설명하기로 합니다.)
아직 일반 내장함수도 강좌를 진행할 것이 너무나도 많은데 벌써 배열수식 강좌를
진행한다는것이 좀 이른감이 없진 않지만 질문의 대부분이 이와 관련된 질문이기에
일찍 진행토록 하겠습니다.
먼저 다중조건과 관련된 합을 구하는 방법입니다.
먼저 아래와 같이 날짜, 팀별, 담당자별로 실적을 입력한 표가 있다고 가정합니다.
이 표에서 1월 영업1팀의 실적의 합계를 구하고자 합니다.
그럼 먼저 2가지 조건인것을 알 수 있는데...
첫번째 조건은 [A4:A23] 셀에서 1월이어야 하고 두번째 조건은 [B4:B23]셀에서 '영업2팀'이어야
합니다.
해답을 먼저 공개하자면...
=SUMPRODUCT((MONTH(A4:A23)=1)*(B4:B23="영업1팀")*(D4:D23))
로 입력하면 됩니다.
혹은...
=SUM((MONTH(A4:A23)=1)*(B4:B23="영업1팀")*(D4:D23))
로 입력후 Ctrl + Shift 키를 동시에 누른채로 Enter키를 누르면 됩니다.
후자와 같이 입력을 하면 입력수식의 양끝에 중괄호({ })가 생기면서 입력이 완성되는데
이와 같은 형태의 수식을 배열수식이라고 합니다.
전자의 경우 Ctrl + Shift + Enter로 입력을 하진 않았지만 엑셀에서 기본 내장함수처럼 제공되어
지는 대표적인 배열수식입니다.
후자처럼 SUM함수의 배열수식 입력시 Ctrl + Shift + Enter 로 입력하는 번거로움을 해소하고자
만들어진 함수라고 이해하면 이해가 쉽겠죠...
위와 같이 배열수식을 사용하면 일반 내장함수로 해결할 수 없는 답을 도출해 낼 수 있는데
배열수식은 아름다운 장미와도 같아서 장점도 있지만 단점도 있습니다.
장점은 이미 말씀드렸듯이 일반 내장함수로 해결하지 못하는 결과를 쉽게 도출해 낼 수 있다는 것이고
단점은 조건이 많으면 많을 수록, 데이터량이 크면 클수록 시스템에 부하를 많이 주므로 연산속도가
느려진다는 것입니다. 그러므로 한 시트에 배열수식을 많이 사용하면 할 수록 데이터 하나만 고쳤을
때도 오랜시간 연산으로 인해 기다려야 한다는 것입니다.
또 한가지 사용시 주의할점은 각각의 배열의 크기가 같아야 한다는 것입니다.
위의 예에서 보면 첫번째 조건의 배열의 크기가 [A4:A23]셀 범위로 20개행이고 두번째 배열의 크기가
[B4:B23]셀 범위로 20개행입니다. 물론 합산할 범위역시 [D4:D23]셀 범위로 20개 행입니다. 이렇게 두개의 배열의 크기를 동일하게 해야 한다는 것입니다.
만약 각 조건의 배열의 크기가 같지 않다면 #N/A 오류를 반환하게 됩니다.
이번엔 2010년도 영업2팀의 실적의 합을 산출해 보겠습니다.
이역시 먼저 답을 알려드리고 진행하겠습니다.
=SUMPRODUCT((YEAR(A4:A23)=2010)*(B4:B23="영업2팀")*(D4:D23))
로 입력하면 됩니다.
물론 이러한 경우는 일반 내장함수로도 해결이 가능한 부분인데...
=SUMIFS(D4:D23,A4:A23,">=2010-01-01",A4:A23,"<=2010-12-31",B4:B23,"영업2팀")
로 입력하면 됩니다.
위의 경우와 같이 일반 내장함수로도 해결이 가능하다면 이미 말씀드렸던 배열수식의 단점때문에
일반 내장함수를 이용하시는게 더 추천해 드리고 싶은 방법입니다.
너무 많은 내용을 한강좌에 진행하면 보시는분들이 피곤할듯 해서 이쯤에서 마무리 합니다.
다음 강좌에서는 또 다른 조건, 또 AND의 조건이 아닌 OR의 조건에 관한 원리등을 진행하도록
하겠습니다.
그럼 또...!
첫댓글 감사합니다.
감사힙니다.
좋은자료 감사합니다.
감사합니다
감사합니다.엑셀초보 유용합니다^^
감사합니다