본문 바로가기
컴퓨터/엑셀관련

sumif, sumifs : 조건에 맞는 칸만 더하는 함수

by adnoctum 2010. 10. 27.

   주어진 조건을 만족하는 행의 특정 열의 값들을 더하고 싶다면 sumif 나 sumifs 함수를 이용하면 된다. 조건이 하나이면 sumif, 여러 조건을 동시에 만족해야 한다면 sumifs 를 사용하면 된다.

우선 sumif 부터 보면, 사용법은 다음과 같다.

=sumif([조건구간], '조건', [더할 구간])


[조건구간]에서 '조건'에 부합하는 칸들을 찾아서 더한다. 만약 [더할 구간]이 지정되면 [조건구간] 중 '조건'에 맞는 행에서 [더할구간]의 열을 찾아서 더하게 된다.



위의 경우처럼, 만약 '조건'을 30 이하로 하면, 조건에 맞는 칸에 해당하는 행의 더할 구간의 값을 찾아서 더하게 되므로, 더해지는 값은 붉은 색으로 쓰인 값들이다. 실제 사용 예를 보면 다음과 같다.


실제 사용된 수식은 다음과 같다.

=SUMIF($A$2:$A$26,E2,$C$2:$C$26)


=SUMIF($A$2:$A$26,E2,$C$2:$C$26) : $A$2:$A$26 은 조건 구간이다. 이 구간에서 특정 값에 해당하는 행만 선택할 것이다.
=SUMIF($A$2:$A$26,E2,$C$2:$C$26) : E2 는 조건이다. 즉, 조건 구간에서 E2와 '같은 값'을 같는 행만 선택할 것이다. 만약 부등호를 조건을 사용할 경우 ">" 과 같이 써 주면 되며, 쎌의 값보다 클 때는 ">"&E2 와 같이 & 뒤에 참조할 쎌을 지정하고, 지정된 값과 비교를 할 경우 ">30" 처럼 해주면 된다.
=SUMIF($A$2:$A$26,E2,$C$2:$C$26) : $C$2:$C$26 은 더할 구간이다. 조건 구간 중 조건에 맞는 행을 찾아서 이 열에 있는 값을 더할 것이다.

위에서, 드래그를 할 때 어느 조직의 암인지에 해당하는 E 열의 값을 참조하고, 조건 구간이나 더할 구간은 고정되어 있기 때문에 $ 를 추가했다.


이와 비슷한 sumifs 를 보자. sumifs 는 여러 조건을 동시에 만족시키는 행에 해당하는 지정된 열을 더할 때 사용된다. 형식은 sumif 와 약간 다른데, 다음과 같다.

=SUMIFS([더할 구간], [조건 구간1], [조건1], [조건 구간2], [조건 2], ...)

즉, 우선 더할 구간을 지정한 후, 조건 구간과 조건의 쌍을 지정한다. 주어진 조건 구간에 대한 조건을 모두 만족시키는 행을 찾아서, 그 행의 더할 구간 열을 더하게 된다. 실제 사용 예는 다음과 같다.




실제로 사용된 수식은 다음과 같다.

=SUMIFS($C$2:$C$26,$A$2:$A$26,E3,$C$2:$C$26,">=0.30", $C$2:$C$26,"<0.60")


=SUMIFS($C$2:$C$26,$A$2:$A$26,E3,$C$2:$C$26,">=0.30", $C$2:$C$26,"<0.60") : 더할 구간이다.
=SUMIFS($C$2:$C$26,$A$2:$A$26,E3,$C$2:$C$26,">=0.30", $C$2:$C$26,"<0.60") : 조건 구간 1과 조건 1 이다. A2:A26 행 중 E3의 값과 같은 행 중에서,
=SUMIFS($C$2:$C$26,$A$2:$A$26,E3,$C$2:$C$26,">=0.30", $C$2:$C$26,"<0.60") : 조건 구간 2와 조건 2 이다. C2:C26 에 있는 행 중 값이 0.30 이상인 행 중에서,
=SUMIFS($C$2:$C$26,$A$2:$A$26,E3,$C$2:$C$26,">=0.30", $C$2:$C$26,"<0.60") : 조건 구간 3과 조건 3 이다. C2:C26 에 있는 행 중 값이 0.60 미만 인 행을 선택한다.

즉, 지정된 질병(E3)에 대하여, pi0_estimated 값이 0.30 이상, 0.60 미만인 행들을 찾아서, pi0_estimated 값을 모두 더하는 작업을 하고 있다. 물론 조건 구간1 과 2, 3 은 모두 달라도 되는데 이 예에서는 같게 사용되었다.



이 밖에도 같은 방법으로 평균을 구할 때는 averageif 나 averageifs 를 사용하면 된다.