엑셀 조건에 맞는 데이터의 합을 구하기 - SUMIF

프로그래밍/개발도구, 프로그램 2019. 12. 18. 22:54
반응형

데이터 중에서 원하는 조건에 맞는 데이터의 합만을 구하기 위해서 사용할 수 있는 함수로 SUMIF 함수가 있습니다. 이름 그대로 SUM(합)과 IF(조건)이 합쳐진 함수 입니다.



1. 함수 구조


SUMIF 함수를 다음과 같은 세개의 인자를 가집니다.


=SUMIF(

      range

    , criteria

    , [sum_range]

)


- range : 조건을 적용하려는 범위 입니다.

- criteria : 데이터를 선택하기 위한 조건 입니다.

- sum_range : 조건에 맞는 합계를 구하기 위한 범위 입니다. 이 인자는 선택 사항으로

지정하지 않으면 range 범위의 값을 계산에 사용합니다.



2. 사용예


일자별 출하실적에서 품종별 판매금액을 구합니다.



함수의 첫 번째 인자로 조건을 적용하는 범위를 지정합니다. 이 예에서는 품종별로 합계를 구하려고 하므로 표에서 품종열을 선택합니다.


함수의 두 번째 인자는 개별 품종이 되겠습니다. 이 예에서는 "신고"와 "원황"이 되겠습니다.


함수의 세 번째 인자는 합계를 구할 열이므로 금액 열입니다.


결과는 다음과 같습니다.




3. 더 많은 조건들


앞의 예에서는 일치하는 조건 사용해 보았는데, 이는 실제로 "=신고", "=원황" 과 동일한 조건입니다. SUMIF 함수의 조건에는 부등호, 와일드 카드 등을 사용할 수 있습니다.



3.1 부등호 사용하기


부등호는 숫자가 아닌 문자열에 대해서도 사용할 수 있습니다. 문자열에 사용시 가나다순, 알파벳 순으로 처리됩니다.


- =SUMIF(B3:B7, ">5") : 범위의 값이 5보다 크면 합합니다.

- =SUMIF(B3:B7, "<5") : 범위의 값이 5보다 작으면 합합니다.

- =SUMIF(B3:B7, "=5") : 범위의 값이 5이면 합합니다(이퀄은 생략할 수 있습니다).

- =SUMIF(B3:B7, "<>5") : 범위의 값이 5와 다르면 합합니다.

- =SUMIF(B3:B7, ">=5") : 범위의 값이 5보다 크거가 같으면 합합니다.

- =SUMIF(B3:B7, "<=5") : 범위의 값이 5보다 작거나 같으면 합합니다.



3.2 와일드카드 사용하기


와일드카드는 문자열의 일부분이 일치하는 경우를 처리하기 위해서 사용합니다.


- * : 어떤 문자가 와도 일치합니다.

- ? : 특정위치의 단일 문자가 일함을 나타냅니다.


사용예를 보겠습니다.


- =SUMIF(B3:B7, "*원황") : 문자열이 "원황"로 끝나면 일치합니다.

- =SUMIF(B3:B7, "*원황*") : "원황"라는 문자열이 포함되어 있으면 일치합니다.

- =SUMIF(B3:B7, "?????") : 문자열이 다섯글자로 되어 있으면 일치합니다.

- =SUMIF(B3:B7, "?원황") : 문자열이 세 글자로 되어 있고 뒤의 두자는 "원황"이면 일치합니다.


부등호와 와일드카드를 섞어서 사용할수도 있습니다.


와일드카드 문자인 *, ?를 일반 문자로 사용하기 위해서는 앞에 틸다(~)를 붙이면 됩니다.


- =SUMIF(B3:B7, "~*") : 문자열이 아스터리스크("*")이면 일치합니다.



3.3 셀 참조와 같이 사용하기


이제까지는 조건이 직접 값을 입력해서 사용했지만, 다른 셀에 있는 값을 사용할수도 있습니다.


- =SUMIF(B3:B7, "="&E2) : E2셀의 값과 같으면 일치합니다.

- =SUMIF(B3:B7, "*"&E2"*") : E2셀의 값을 포함하면 일치합니다.



3.4 빈 셀 또는 비어 있지 않은 셀의 합을 구하기


- =SUMIF(B3:B7, "=") : 공백이 완전히 아무것도 포함하지 않을 셀(수식도 없고, 함수에 의해 길이가 0인 문자열을 반환하는 경우도 아닌)을 말할 경우 "="를 사용합니다.

- =SUMIF(B3:B7, "") : 길이가 0인 문자열을 포함하는 경우 사용합니다.

- =SUMIF(B3:B7, "<>") : 비어 있지 않은 셀을 합합니다.

반응형

댓글을 달아 주세요