rand(life)
1일1함수 (14) COUNTA 함수 : 비어있지 않은 셀의 개수 구하기 본문
오늘은 COUNTA함수입니다. COUNT함수는 숫자가 들어있는 셀의 개수만을 구했다면, COUNTA함수는 숫자, 텍스트 뿐만 아니라 논리값(TRUE,FALSE)이나 오류메시지조차도 세어줍니다.
인수 목록에서 공백이 아닌 셀과 값의 개수를 계산합니다. COUNTA를 사용하면 범위나 배열에서 데이터가 들어 있는 셀의 개수를 계산할 수 있습니다.
구문
COUNTA(value1,value2,...)
value1, value2, ... 개수를 계산할 값을 나타내는 인수로, 1개에서 255개까지 사용할 수 있습니다.
주의
- 오류 값과 빈 텍스트("")를 포함하여 모든 형식의 정보를 값으로 사용할 수 있습니다. 빈 셀은 값에 포함되지 않습니다.
- 인수가 배열 또는 참조이면 해당 배열이나 참조의 값만 사용되고 배열 또는 참조의 빈 셀과 텍스트 값은 무시됩니다.
- 논리값, 텍스트 또는 오류 값의 개수를 계산할 필요가 없는 경우에는 COUNT 함수를 사용하십시오.
전체 학생수를 표시해야하는 문서를 자주 작성해야하는데 그때마다 전체 학생 이름이 나열된 시트를 찾아가서 확인하면 귀찮겠지요?
엑셀러가 귀찮음을 느낀다는 것이 발전하고 있다는 증거입니다. 전혀 귀찮아하지 않고 부지런히 작업할 수도 있습니다만, 그렇다면 발전이 없습니다.
각설하고, 2008년 매달마다 전체학생수의 변화를 나타내는 표를 작성해야한다고 합시다. 시트의 이름은 200803, 200804, ~, 200812 처럼 연도와 달의 숫자로 주었다고 합시다.
위의 그림처럼 200803 시트부터 200812 시트까지 작성되었다고 할때, 매달 전체 학생수의 변화를 나타내는 합계시트를 다음과 같이 작성했습니다.
3월의 전체 학생수에 해당하는 수식은 위의 그림과 같습니다.
=COUNTA( | 다음 범위에서 공백이 아닌 모든 셀의 개수를 세어라 |
'200803'! | 200803 이라는 시트의 |
$D:$D) | D열처음부터 끝까지 범위에서 |
-1 | 그리고 최종값에서 1을 빼어라 |
마지막에 1을 빼주는 이유는 뭘까요? 1을 빼주지 않으면, 제목행인 1행까지도 세어버리기 때문에, 실제 학생수보다 하나 더 많게 되기 때문입니다.
그리고, D:D처럼 하면 D열의 처음부터 끝까지를 지정해줄 수 있습니다만, 모든 함수에서 다 적용되는 것은 아닙니다.
자, 아무튼, 3월에 저 수식을 입력하고, 오른쪽으로 죽 끌어서 채우면? 놀랍게도, 모든 월에 학생수가 똑같습니다! 즉, 200803이라는 시트이름이 끌어채우기를 한다고 해서 200804, 200805 로 자동으로 바뀌지는 않는다는 것입니다. 이것을 해결하기 위해서는 INDIRECT라는 함수를 써야합니다만, 그것은 다음 기회에 하기로하고, 일단은 수작업으로 200803을 200804, 200805처럼 일일이 고쳐줍시다.
에이, 그럼 처음부터 시트를 하나씩 뒤져가면서 학생수를 확인하는 것보다 늦잖아?
예, 그렇습니다. 하지만, 이번 경우만 늦습니다. 내년부터는 그렇지 않습니다.
2009년이 되면, 이 통합문서(XLS)전체를 다른 이름(예를들어, 2009학생수.XLS)로 저장한 후, 200803시트부터 제목줄만 남기고 나머지 행을 다 지웁니다. 그리고 2009년 3월의 학생에 해당하는 자료를 붙여넣기 합니다. 그리고 최종적으로 시트의 200803이라는 탭을 오른쪽 클릭 - 이름바꾸기를 클릭하여 시트의 이름을 200903으로 바꾸어 줍니다.
그리고 난 후 총합계를 내는 시트로 돌아가보면 원래 200803시트를 가리키게 되어있던 수식이 자동으로 200903으로 바뀌어 있는 것을 볼 수 있습니다.
처음엔 조금 불편하더라도, 수식으로 설정해두면 그 이후 반복되는 작업들을 한결 간편하게 할 수 있습니다.
2009/04/12 - [컴퓨터/엑셀] - 1일1함수 (13) COUNT함수 : 숫자가 들어있는 셀의 수를 세자.
2009/04/05 - [컴퓨터/엑셀] - 1일1함수 (11) COUNTIF 함수