엑셀 조건에 맞는 데이터의 합을 구하기 - 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, "<>") : 비어 있지 않은 셀을 합합니다.

반응형

댓글을 달아 주세요

  • Deborah 2020.02.10 16:11 신고  댓글주소  수정/삭제  댓글쓰기

    엑셀 관련 글 올려 주셨네요 실무에 많은 도움이 될겁니다. 감사히 잘 봤네요.

  • 두들 2020.10.09 21:05  댓글주소  수정/삭제  댓글쓰기

    정보 감사합니다

  • Deborah 2021.01.04 19:08 신고  댓글주소  수정/삭제  댓글쓰기

    새해 복 많이 받으세요. 많이 바쁘신가 봅니다. 요즘 통 글이 안 올라 와서 이렇게 방문 했어요.
    늘 건강 하시길 바라고 있습니다. 늘 응원합니다.

    • pentode 2021.01.23 22:17 신고  댓글주소  수정/삭제

      네. 걱정해 주셔서 감사합니다. 익숙치 않은 농사일을 하려니 다른곳에 신경을 쓰지 못했었습니다.

      올해만 지나면 이제 시간이 좀 날 것 같네요. 다시 블로그도 조금씩 하려고 합니다.

      Deborah님도 새해 복 많이 받으세요.^^

  • 블랙홀 2021.09.04 15:58  댓글주소  수정/삭제  댓글쓰기

    3.3 셀 참조와 같이 사용하기
    이제까지는 조건이 직접 값을 입력해서 사용했지만, 다른 셀에 있는 값을 사용할수도 있습니다.
    - =SUMIF(B3:B7, "="&E2) : E2셀의 값과 같으면 일치합니다.
    - =SUMIF(B3:B7, "*"&E2"*") : E2셀의 값을 포함하면 일치합니다.

    안녕하세요. 위와 같이 알려주신 부분에서 아래의 같이 적용을 했는데 수식에 문제가 있다고 나오는데
    무었이 문제인지 조언 부탁드립니다

    =SUMIF($D$2:$D$23583,"*"&G2"*",$E$2:$E$23583)

    • pentode 2021.09.05 22:14 신고  댓글주소  수정/삭제

      안녕하세요. 본문에 오류가 있었습니다.

      =SUMIF($D$2:$D$23583,"*"&G2&"*",$E$2:$E$23583)

      셀 참조 부분이 "*"&G2&"*" 처럼 뒤에도 &가 들어 가야 합니다.

      오타로 인해 잘못된 정보를 알려드려 죄송합니다. 하시는 일 잘 되시길 바라겠습니다.

  • 오민영 2021.09.08 14:49  댓글주소  수정/삭제  댓글쓰기

    pentode님 블로그에서 실마리를 찾았고 결국에 해결돼서 기분이 좋습니다. 정말 감사드립니다.^^