엑셀 작업을 하다 보면 이런 고민 한 번쯤 해보셨을 거예요. "아, 이 많은 숫자 중에 노란색으로 칠해진 셀들만 합계를 내야 하는데... 이걸 일일이 찾아서 더해야 하나?" 저도 예전에 그랬거든요. 눈 빠지게 셀 하나하나 클릭하며 더하다가 실수도 하고, 시간도 엄청 잡아먹고 말이죠. 😭
엑셀에 SUMIF나 SUMIFS 같은 함수가 있어서 조건에 맞는 셀의 합계를 구하는 건 쉬운데, '셀 색깔'이나 '글씨 색깔' 같은 서식 조건으로는 합계를 구할 수 없다는 사실, 알고 계셨나요? 정말 아쉽죠! 하지만 걱정 마세요. 오늘 제가 그 답을 알려드릴게요. 바로 엑셀의 숨겨진 능력, VBA(Visual Basic for Applications)를 활용하는 방법입니다! 😊

왜 엑셀 기본 기능으로는 안 될까요? 🤔
엑셀의 SUMIF 함수는 특정 '값'이나 '텍스트'를 조건으로 합계를 구하는 데 특화되어 있어요. 예를 들어, '500보다 큰 값'이라든지, '사과'라는 텍스트가 있는 셀의 합계를 구하는 건 아주 쉽죠. 하지만 셀의 배경색이나 글씨 색깔 같은 '서식' 정보는 함수가 직접 인식할 수 있는 조건이 아니랍니다.
엑셀은 데이터 자체를 처리하는 데 중점을 두기 때문에, 시각적인 서식은 데이터의 일부로 간주하지 않는 거죠. 그래서 우리는 엑셀이 서식을 '데이터'처럼 인식하고 처리할 수 있도록 새로운 규칙(코드)을 만들어줘야 합니다. 그 역할을 하는 것이 바로 VBA예요!
VBA 코드로 해결하기: 나만의 함수 만들기 💡
VBA는 엑셀의 작업을 자동화하거나 새로운 기능을 추가할 수 있게 해주는 프로그래밍 언어예요. 어렵게 생각할 필요 없어요! 우리가 필요한 건 딱 하나의 '사용자 정의 함수'를 만드는 거니까요. 아래 코드를 그대로 따라 하시면 됩니다.
VBA 편집기는 Alt + F11 단축키로 쉽게 열 수 있어요. 개발 도구 탭이 보이지 않는다면, 엑셀 옵션에서 '리본 사용자 지정'으로 들어가 '개발 도구'를 체크해 활성화할 수 있습니다.
자, 이제 VBA 편집기를 열고 다음 코드를 '모듈'에 붙여넣어 볼까요?
VBA 코드 예시 📝
노란색 배경, 검은색 글씨 셀의 합계를 구하는 함수:
Function SumByColor(SumRange As Range, ColorCell As Range) As Double
Dim Cell As Range
Dim SumValue As Double
Dim TargetBackColor As Long
Dim TargetFontColor As Long
' 기준 셀의 배경색과 글씨색을 가져옵니다.
TargetBackColor = ColorCell.Interior.Color
TargetFontColor = ColorCell.Font.Color
SumValue = 0
' 범위 내의 각 셀을 검사합니다.
For Each Cell In SumRange
' 셀의 배경색과 글씨색이 기준 셀과 같은지 확인합니다.
If Cell.Interior.Color = TargetBackColor And Cell.Font.Color = TargetFontColor Then
' 숫자인 경우에만 합산합니다.
If IsNumeric(Cell.Value) Then
SumValue = SumValue + Cell.Value
End If
End If
Next Cell
SumByColor = SumValue
End Function
* 이 코드는 `SumByColor`라는 사용자 정의 함수를 만듭니다.

VBA 함수 사용법: 직접 적용해볼까요? 📝
코드를 모듈에 붙여넣고 VBA 편집기를 닫으면, 이제 엑셀 워크시트에서 이 함수를 사용할 수 있어요. 마치 SUM 함수처럼 말이죠!
- 1. 기준 셀 준비: 먼저, 합계를 구하고 싶은 서식(노란색 배경, 검은색 글씨)을 가진 아무 셀이나 하나 선택하세요. 이 셀이 우리가 찾을 서식의 '기준'이 됩니다. 예를 들어, A1 셀이 노란색 바탕에 검은색 글씨라면 A1을 기준 셀로 사용할 수 있어요.
- 2. 함수 입력: 합계 결과를 표시하고 싶은 셀에 다음 함수를 입력합니다.
예시: A1:A10 범위에서 노란색 바탕, 검은색 글씨 셀의 합계를 구하고 싶고, B1 셀이 노란색 바탕에 검은색 글씨라면, 다음과 같이 입력합니다.=SumByColor(합계를 구할 범위, 기준 셀)
=SumByColor(A1:A10, B1)
- 3. 결과 확인: 엔터를 누르면, 지정한 범위에서 노란색 바탕에 검은색 글씨인 셀들의 합계가 짜잔! 하고 나타날 거예요. 정말 신기하죠? 😊

알아두면 유용한 팁! 📌
- 매크로 포함 통합 문서로 저장하기: VBA 코드를 사용한 엑셀 파일은 반드시 '.xlsm' 확장자로 저장해야 해요. 그냥 '.xlsx'로 저장하면 코드가 사라질 수 있으니 꼭 주의하세요!
- 서식 변경 시 새로고침: 셀의 서식(색깔)을 변경해도 함수 결과가 바로 바뀌지 않을 수 있어요. 이럴 땐 F9 키를 눌러 수동으로 계산하거나, 셀 내용을 한 번 수정(예: 스페이스바 입력 후 삭제)하면 업데이트됩니다.
- 다른 서식에도 적용 가능: 이 함수는 노란색 배경, 검은색 글씨뿐만 아니라 어떤 배경색과 글씨색 조합에도 적용할 수 있어요. 기준 셀의 서식만 바꿔주면 되니 활용도가 정말 높겠죠?
- 조건부 서식과의 차이: 조건부 서식으로 적용된 색깔은 VBA가 직접 인식하기 어려울 수 있습니다. 이 코드는 수동으로 적용된 서식에 더 적합해요.
엑셀 서식별 합계, 핵심 요약!
자주 묻는 질문 ❓
- 👉 VBA 편집기에서 '삽입' > '모듈'을 클릭한 후 코드를 붙여넣었는지 확인하세요.
- 👉 파일을 '.xlsm' (매크로 사용 통합 문서) 형식으로 저장했는지 확인하세요.
- 👉 엑셀 보안 설정에서 매크로를 사용하도록 설정되어 있는지 확인하세요. (파일 > 옵션 > 보안 센터 > 보안 센터 설정 > 매크로 설정)
어떠셨나요? 엑셀에서 서식 조건으로 합계를 구하는 것이 불가능하다고 생각하셨다면, 이제 VBA라는 새로운 문을 여신 거예요! 처음에는 조금 어렵게 느껴질 수 있지만, 한 번 해보면 정말 유용하게 써먹을 수 있는 기능이랍니다. 이제 더 이상 눈으로 세지 말고, 엑셀에게 똑똑하게 일을 시켜보세요! 😊 더 궁금한 점이 있다면 언제든지 댓글로 물어봐주세요~
'정리' 카테고리의 다른 글
2025 민생회복지원금: 지급 시기부터 신청까지, 완벽 가이드! (2) | 2025.07.18 |
---|---|
지긋지긋한 손목터널증후군, 집에서 할 수 있는 스트레칭과 예방 팁 (2) | 2025.07.18 |
간단 증여세 계산기 (0) | 2025.07.16 |
막막한 빚? 소상공인 채무조정, 이렇게 신청하면 희망이 보여요! (1) | 2025.07.16 |
1등급 가전 구매하고 최대 30만원 환급! 놓치지 마세요 (신청 가이드) (4) | 2025.07.16 |