티스토리 뷰

엑셀 DCOUNTA 함수는 데이터베이스 범위에서 조건을 만족하는 선택된 레코드( 행 )에서 원하는 필드의 개수를 구하는 함수이다. 보다 단순히는 데이터베이스 구조를 사용하는 조건부 COUNTA 함수이다.

바로 이전에 배웠던 DCOUNT 함수가 수치 셀의 개수만을 세는 함수라면 DCOUNTA 함수는 모든 비공백 셀의 개수를 계산한다. DCOUNTA 함수는 공백이 아니라면 숫자 셀이든 텍스트 문자열 셀이든 모든 셀의 개수를 센다는 것이다. 함수명에서는 영문 하나의 차이지만 이런 다른 점이 있다. 엑셀은 COUNT 함수와 COUNTA 함수가 이렇게 나뉜다. 숫자를 세는 함수와 공백 아닌 모든 셀을 세는 함수로..

DCOUNTA 함수를 배우며 두 함수의 차이를 살펴보자.

엑셀 데이터베이스 함수 기초 용어 :
http://secstart.tistory.com/742

엑셀 DCOUNTA 함수 기본 설명

설명 : 엑셀 DCOUNTA 함수는 데이터베이스 범위에서 조건을 만족하는 레코드( 행 )를 찾고 원하는 필드( 열 )의 공백 아닌 셀의 수를 구한다.
구문 : DCOUNTA( database, [field], criteria )
인수 :
    database : 데이터베이스 범위. 최상위 행은 필드명
    [field] : 옵션. 비공백 셀 개수를 구할 필드명 ( 참조, 순서, 텍스트 ). 생략시 조건 일치 레코드 수 반환.
    criteria : 레코드 선택을 위한 조건 범위 ( 필드명 아래 조건, 다중 조건 가능 )

노트1 : 다중 필드 조건 설정시 필드명은 동일 행에 위치
    - 조건이 동일 행이라면 AND 연산( 논리곱 )
    - 조건이 다른 행이라면 OR 연산( 논리합 )
노트2 : 데이터베이스 함수( DCOUNTA 등 )는 영문 대소문자 비구분.
노트3 : 조건 표현식에는 와일드카드( wildcards ) 사용 가능. ( ? : 단일 문자, * : 문자열 )로 처리

참고1 : 와일드카드 문자를 검색할 때는 물결( ~ : 틸트 )문자를 앞에 삽입. 예로 ~* 는 * 을 검색.

엑셀 DCOUNTA 함수 사용 예제

추석 특별 상여금을 데이터베이스로 정하고 DCOUNTA 함수를 배워보자.

[그림1] 엑셀 DCOUNTA 함수로 조건 일치 비공백 셀 수 계산하기[그림1] 엑셀 DCOUNTA 함수로 조건 일치 비공백 셀 수 계산하기



사용 예제1 : =DCOUNTA( A4:C11, A4, A14:B16 )
사용 결과1 : 3

추석 특별 상여금 테이블을 데이터베이스 범위로 설정한다. 여기서 A14:B16 의 조건( '부서' 필드가 '직판팀' 이고 '고과점수' 가 5를 초과하거나, '부서' 가 '대리점팀' 이고 '고과점수' 가 5를 초과 )을 만족하는 레코드를 선택하고 A4 ( '이름' 필드 )에서 공백 아닌 셀의 수를 계산한다. 두 개의 AND 조건을 만족하는 결과는 3 이다.

참고2 : DCOUNTA 함수의 주의 사항
엑셀 DCOUNTA 함수는 COUNTA 함수의 기능을 하는 데이터베이스 함수이다. 숫자 셀의 수만을 세는 DCOUNT 함수와는 다르다는 것이다. 이 함수는 비공백인 모든 데이터 형식의 셀을 개수에 포함한다. 예제1 에서 DCOUNT 함수가 사용되었다면 결과는 0 일 것이다. A4 ( '이름' ) 필드에는 숫자 값이 없기 때문이다.

엑셀 DCOUNT 함수로 수치 필드 개수 구하기 :
http://secstart.tistory.com/745

사용 예제2 : =DCOUNTA( A4:F11, 2, D14:F16 )
사용 결과2 : 4

A4:F11 의 데이터베이스 인수 범위에서 D14:F16 의 조건( '특별상여율' 필드가 200% 이상이거나 수당이 400만 미만이고 300만을 초과 )을 만족하는 레코드( 행 )를 선택하고 두 번째 필드( 2 )인 '부서' 필드( 열 )의 개수를 구한다. 이때 공백 셀은 계산에서 제외된다.

따라서, 조건을 만족하여 계산에 포함되는 B9 셀의 '부서' 필드값을 '대리점팀' 에서 공백으로 바꾼다면 결과는 3가 될 것이다. DCOUNTA 함수는 공백 셀은 계산에 포함하지 않기 때문이다.

참고3 : 엑셀 데이터베이스 함수와 고급 필터의 조건 우선 순위
조건 설정시 AND 연산과 OR 연산이 하나의 조건 범위에 포함되어 있다면 어느 조건이 먼저 실행되는가? ( 노트1 ) 엑셀 AND 연산은 논리곱이라 하고 OR 연산은 논리합이라 부른다. 논리 연산이지만 곱과 합의 연산은 이 우선 순위가 높다. 따라서 AND 연산이 먼저 실행된다.

예로, 예제2의 조건도 AND 연산인 두 '수당' 조건이 먼저 비교되고 이후 OR 연산인 다른 행의 '특별상여율' 이 비교된다. 예제1도 이와 같이 해석하면 조건 해석이 쉬워질 것이다. 고급 필터의 조건도 동일한 우선 순위로 해석된다.


DCOUNTA 함수는 이렇게 DCOUNT 함수와 다르다. 비공백을 세는 함수 vs 수치를 세는 함수 = DCOUNTA vs DCOUNT = COUNTA vs COUNT 이다. 이 두 함수들은 서로 관련지어 해석해 보면 두 함수 모두의 이해에 도움이 될 것이다. 참고로 컴퓨터활용능력 출제 기준에 포함된 엑셀 함수들이기도 하다.

[기출 풀이] 컴활 2급 실기 2006년 4회 A형 기출문제 풀이 - 계산작업 :
http://secstart.tistory.com/190

[함수] 컴활 2급 실기 엑셀 DCOUNTA 함수 - 컴활 2급 기출 풀이 :
http://secstart.tistory.com/117

[함수 요약] 컴활 실기 대비 데이터베이스 함수 요약 정리 :
http://secstart.tistory.com/175

마늘빵.


댓글