엑셀 수식에서 갯수를 세어야 할 때, SUM 함수를 사용하는 경우를 종종 봅니다.
쉽지만 평소에 잘 잊어버리는 노하우라고 할 수 있습니다.
1. 1과 0만 있다면, SUM 하라
범위에 1 또는 0 만 있는 경우에, 1의 개수를 세려면,
COUNTIF(범위, 1) 하면 됩니다.
그런데, SUM(범위) 를 해도 같은 결과가 나옵니다.
이 사실은 매우 유용합니다.
값이 1과 0 뿐이라면, 1의 갯수는 1을 모두 더하기 한 것과 같습니다.
SUM()이 더 유용하다고 말하는 이유는,
1) SUM()이 COUNTIF()보다 단순하다는 점,
2) SUM()은 COUNTIF() 보다 훨씬 익숙하다는 점 때문입니다.
A열에 1이 3개 있다면,
COUNTIF(범위, 1) = SUM(범위) 입니다.
COUNTIF(A1:A6, 1) 보다는 SUM(A1:A6) 이 훨씬 간단하고 쉽습니다.
2. True 개수를 세는 방법
1을 더하는 경우도 많지만, TRUE 개수를 셀 때도 SUM 함수를 사용하면 편리합니다.
데이터 범위에 1과 0이 아니라, TRUE와 FALSE만 있을 때,
TRUE 개수를 세고 싶은 경우에 SUM 함수가 더 유용합니다.
그런데, SUM 함수만으로는 TRUE와 FALSE를 더할 수 없습니다.
TRUE/FALSE를 숫자로 변환하면 SUM 할 수 있습니다.
1과 0으로 변환해서 모두 더하면 1의 갯수가 됩니다.
TRUE는 1, FALSE는 0에 대응됩니다.
TRUE와 FALSE가 어떤 경우에 1과 0으로 변환될까요?
1) "1을 곱하기" 하면 변환됩니다.
2) -- 연산자를 사용해도 변환됩니다.
2. TRUE/FALSE 값의 사칙연산( +, -, *, / )
TRUE와 FALSE에 사칙연산을 하는 경우에 엑셀이 어떻게 처리하는지 짚고 넘어갑시다.
TRUE + TRUE 를 하면 2를 return 합니다.
TRUE - TRUE 를 하면 0을 return 합니다.
TRUE * FALSE 를 하면 0을 return 합니다.
TRUE / FALSE 를 하면 에러가 납니다. 0으로 나누었기 때문입니다.
아래는, TRUE와 FALSE에 사칙연산( +, -, *, /)을 실행한 결과를 보여줍니다.
TRUE/FALSE에 사칙연산(+, -, *, / )을 하면,
TRUE/FALSE를 1/0으로 변환한 후에 연산한다는 사실을 알 수 있습니다.
TRUE/FALSE 값을 숫자로 변환하지 않고 SUM() 하면 , 실행되지 않습니다.
그래서, TRUE/FALSE를 1/0 으로 변환한 후에야 SUM()을 할 수 있습니다.
3. "곱하기 1" Tip
"곱하기 1" 이란, 1을 곱하는 연산을 의미합니다.
TRUE/FALSE 를 1/0로 변환하는 가장 간단한 방법입니다.
+, -, *, / 아무것이나 해도 숫자로 변환되지만, "곱하기 1"이 가장 간단합니다.
TRUE * 1 은 1이 되고, FALSE * 1 은 0이 되기 때문에, 모두 SUM 하면 , TRUE 개수가 됩니다.
지금 아무 셀에나 =TRUE*1 이렇게 해보세요. 1이 반환될 것입니다.
아래 예에서,
SUM(A1:AS5) 라고 하면, 0 이 나옵니다. TRUE/FALSE는 sum 할 수 없기 때문입니다.
(A1:A5) 에 "곱하기 1"을 하면, TRUE는 1, FALSE는 0 으로 변환됩니다.
그 상태에서 모두 더하면 TRUE 개수와 같아집니다.
4. -- 연산자
TRUE/FALSE 를 1/0로 변환하는 또 다른 방법입니다.
"--" 다음에 TRUE 를 입력하고 엔터를 치면, 1 이 나옵니다.
--(A1:A5) 라고 해도, (A1:A5)*1 과 같은 결과를 가져옵니다.
" *1 " 과 " -- " , 이 연산 TIP은 여러 단계의 조건 과정이 포함된 복잡한 수식에 자주 사용되는 고급 팁입니다.
알아 두시면 유용합니다.
5. FALSE 개수 세기
FALSE 개수 세기는 COUNTIF 또는 SUMPRODUCT 로 하면 됩니다.
B1:F1 범위에 TRUE/FALSE 값이 들어가 있습니다.
COUNTIF 함수로는
COUNTIF($B$1:$F$1, FALSE) 이렇게 하면 됩니다.
SUMPRODUCT 함수도 가능한 이유는 조건식을 만들 수 있기 때문입니다.
SUMPRODUCT( --($B$1:$F$1=FALSE) )
이와 같이 하면 됩니다.
"--" 연산자가 변환 연산자라는 점은 이제 아시겠지요?
'Skill' 카테고리의 다른 글
QUOTIENT, MOD .. : 엑셀 수학함수와 변환함수 (0) | 2023.07.30 |
---|---|
ROUND CEILING FLOOR : 엑셀 숫자 끝자리 설정 함수들 (0) | 2023.07.30 |
IF IFS IFERROR : 엑셀 조건 함수 (0) | 2023.07.29 |
SUMIFS : 복수 조건별 더하기 함수 (0) | 2023.07.29 |
SUMIF : 조건별 더하기 함수와 조건식 만드는 방법 (0) | 2023.07.28 |