📑 색상별 합계를 구하는 VBA 매크로 함수
Function SumByColor(Rng As Range, Ref As Range, Optional isFont As Boolean = False)
Dim r As Range: Dim v As Double
Dim rColor As Variant: Dim refColor As Variant
refColor = Ref.Parent.Evaluate("GetColor(" & Ref.Address(False, False) & "," & CLng(isFont) & ")")
For Each r In Rng
rColor = r.Parent.Evaluate("GetColor(" & r.Address(False, False) & "," & CLng(isFont) & ")")
If rColor = refColor Then v = v + r.Value
Next
SumByColor = v
End Function
Public Function GetColor(r As Range, Optional isFont As Long = 0)
If isFont = 0 Then
GetColor = r.DisplayFormat.Interior.Color
Else
GetColor = r.DisplayFormat.Font.Color
End If
End Function
VBA 매크로 함수는 어떻게 사용하나요? 😯
- [개발도구] 탭 - [Visual Basic] 으로 이동하거나, 단축키 Alt - F11 을 눌러 VBA 편집기를 실행합니다.
VBA 편집기를 실행합니다.
오빠두Tip : 만약 개발도구 탭이 보이지 않을 경우, 리본 메뉴를 우클릭 - [리본 메뉴 사용자 지정] 에서 개발도구 표시여부를 체크합니다.
- VBA 편집기에서 [삽입] 탭 - [모듈]을 클릭해서 새로운 모듈을 추가합니다.
[삽입] - [모듈]을 클릭해서 새로운 모듈을 추가합니다.
- 남겨드린 VBA 코드를 모듈 안에 붙여넣기한 후, 편집기를 종료합니다.
VBA 코드를 복사한 후, 모듈 안에 붙여넣기 합니다.
- 이제 시트에서 =SumByColor 를 입력하면, 함수가 등록되면서 색상별 합계를 편리하게 구할 수 있습니다.
=SumByColor(합계를구할범위,배경색을참조할범위,[글자색비교])
'글자색비교가 True일 경우 글자색이 동일한 색의 합계를 구합니다. 기본값은 False(=배경색비교) 입니다.
=SumBy 함수를 입력하면, 함수가 등록된 것을 확인할 수 있습니다.
- 완성된 파일은 매크로를 사용했으므로, 매크로 통합문서로 저장해야 합니다. [파일] 탭 - [다른 이름으로 저장] 에서 파일 형식을 'Excel 매크로 사용 통합 문서 (*.xlsm)' 으로 파일을 저장합니다.
매크로 사용 통합문서로 저장합니다.
오빠두Tip : 저장한 매크로 통합문서는 다른 PC에서 실행 시, 엑셀 버전에 따라
'매크로 차단 해제' 및 '콘텐츠 사용' 등 설정이 필요할 수 있습니다. 매크로 사용 설정 방법은 아래 링크를 참고하세요.
엑셀 색상별 합계, 5초 안에 구하는 방법
- 통합문서를 실행한 후, 단축키 Ctrl + F 동시에 누르거나, [홈] 탭 - [찾기 및 선택]을 클릭해서 찾기 및 바꾸기를 실행합니다.
찾기 및 바꾸기를 실행한 후, [옵션]을 클릭합니다.
- [옵션] 버튼을 클릭하고, [서식] 오른쪽 화살표에서 [셀에서 서식 선택]을 클릭한 후, 글자 또는 배경색을 참조할 셀을 선택합니다.
[셀에서 서식 선택] 을 클릭하고, 참조할 셀을 선택합니다. 오빠두Tip : 셀에서 서식 선택은 현재 윈도우 엑셀에서만 제공됩니다.
- [모두 찾기] 버튼을 클릭하면, 선택한 셀과 동일한 서식의 셀이 한 번에 선택됩니다.
[모두 찾기] 를 클릭하면 동일한 서식의 셀이 모두 검색됩니다.
- 목록에서 Ctrl + A 를 눌러 셀을 모두 선택한 후, [찾기 및 바꾸기]를 종료합니다.
Ctrl +A 을 눌러서 모든 셀을 한 번에 선택합니다.
- 이름 상자를 선택한 후, 선택한 범위의 이름을 작성합니다.
이름 상자에서 이름 범위를 추가합니다.
오빠두Tip : 등록한 이름 범위는 [수식] - [이름 관리자]에서 변경하거나 삭제할 수 있습니다. 이름 범위를 활용해 빅 데이터를 편리하게 분석하는 방법은 아래 강의를 참고하세요!
- 이제 SUM 함수(합계) 또는 COUNTA 함수(개수) 에 작성한 이름 범위를 사용해보세요! 색상별 합계, 개수를 편리하게 계산할 수 있습니다.
이제 함수에 이름범위를 사용해서 색상별 합계, 개수를 구할 수 있습니다.