지난 엑셀 포스팅에서 문자 카운트 함수 COUNTIF 대해서 알려드렸는데 많은 분들께서 색깔 셀 카운트 방법에 대해 알려달라는 댓글이 많았습니다.
엑셀에는 많은 함수들이 있지만, 색깔이 채우기 되어 있는 셀을 계산하는 함수는 잘 안보이는데요!
이번 글에서는 엑셀 색깔이 채우기 되어있는 셀 개수 합계 구하는 방법에 대해 알아보도록 하겠습니다.
엑셀 색깔 셀 카운트 VBA 활용
결론부터 말씀드리자면 엑셀 셀에 색깔이 들어간 개수를 계산하는 함수는 없습니다.
함수 대신 엑셀 추가 기능인 VBA(Visual Basic of Applications)를 이용해서 10초만에 해결해보려고 합니다.
VBA라는 기능에 대해 간단하게 설명드리자면 일종의 컴퓨터에게 맞춤형 작업을 시키는 도구입니다.
즉, 엑셀에 없는 기능을 현재 나의 상황에 맞게 “이렇게, 저렇게 해라!” 라고 수정해서 사용할 수 있도록 해둔 것이죠!
셀 색깔 카운트 함수 만들기
먼저 엑셀 프로그램을 실행한 후 아래의 사진처럼 Alt + F11을 눌러 VBA로 들어갑니다.
아마 엑셀에서 VBA를 처음 실행하는 분들은 낯설게 느껴지실수 있는데 다시한번 말씀드리지만 엑셀의 추가 기능입니다.
상단의 [삽입] 탭을 누르고, [모듈] 메뉴를 누릅니다.
그리고 아래 코드를 복사해서 붙여넣기 하면 되는데요! 이 코드는 엑셀 색깔 셀을 카운트 하는 새로운 함수입니다.
Function ColorCount(CountRange As Range, ColorCell As Range) As Long ' ColorCount 함수: 지정된 범위 내에서 특정 셀의 배경색과 동일한 셀의 개수를 셉니다. ' ' 인자: ' CountRange (Range): 색상을 셀 범위 (예: A1:B10) ' ColorCell (Range): 카운트할 색상의 기준이 되는 셀 (이 셀의 배경색과 같은 색을 셉니다) ' ' 반환값: ' Long: 색상이 일치하는 셀의 개수 Dim cell As Range ' CountRange 내의 각 셀을 순회하기 위한 변수 Dim TargetColor As Long ' 기준 셀의 배경색(RGB 값)을 저장할 변수 Dim Count As Long ' 색상이 일치하는 셀의 개수를 저장할 변수 ' 1. Application.Volatile 설정: ' 이 함수를 워크시트의 변경 사항에 따라 자동으로 재계산되도록 설정합니다. ' 주의: 너무 많은 Volatile 함수는 엑셀 성능에 영향을 줄 수 있습니다. Application.Volatile ' 2. 기준이 될 셀의 배경색 정보 가져오기 ' ColorCell의 Interior.Color 속성은 셀의 배경색(RGB 값)을 반환합니다. TargetColor = ColorCell.Interior.Color ' 3. 카운트할 범위(CountRange)를 순회하며 셀 색상 확인 Count = 0 ' 카운트 초기화 For Each cell In CountRange ' 4. 현재 셀의 배경색이 기준 셀의 배경색과 동일한지 확인 If cell.Interior.Color = TargetColor Then Count = Count + 1 ' 색상이 같으면 카운트 증가 End If Next cell ' 5. 최종 카운트 값을 함수 결과로 반환 ColorCount = Count End Function
붙여넣기 했다면 닫기[X]를 누릅니다. 그리고 VBA 창도 [닫기] 합니다.
저장을 안했는데 괜찮냐구요? VBA는 입력과 동시에 저장이 되기 때문에 그냥 닫으라고 알려드린겁니다.
이제 새로운 색깔 셀 카운트 함수가 적용되었기 때문에 제대로 사용해보도록 하겠습니다.
색깔 셀 카운트 함수 ColorCount 사용법
우리는 방금전까지 간단한 방법을 통해 엑셀에 색깔 셀 카운트 함수(ColorCount)를 추가했습니다.
그렇다면 이제 제대로 사용해봐야겠죠?
아래와 같이 A1:A10 열에 색이 채워진 셀이 있다고 가정해보겠습니다.
그리고 검정색 셀이 몇개인지 계산하기 위해서 C1 열에 검은색으로 셀을 채웠습니다.
이제 검은색의 셀 개수를 표시하고 싶은 셀에 아래와 같이 입력합니다.
=ColorCount(A1:A10, C1)
- ColorCount : 엑셀 색깔 셀 카운트 함수의 이름
- A1:A10 : 색깔이 채워진 셀의 범위
- C1 : 카운트 할 색상의 기준이 되는 셀
간단하게 ColorCount 함수에 대해 설명해드렸는데 이해가 되시겠죠?
VBA를 설정해서 업로드하면 편할수는 있지만, 간혹 이런 매크로에 악성코드를 넣어서 배포하기 때문에 주의하셔야 합니다.
제가 만든 코드는 안전한 코드이기 때문에 코드 전체를 보여드리면서 알려드리는게 보다 안전하다 생각해서 이렇게 알려드렸습니다.
이상으로 VBA를 통한 색깔이 포함된 셀 개수 카운트 하는 함수 적용 방법에 대해 알아봤습니다.