- 최초 작성일: 2001-12-13
- 최종 수정일: 2026-09-29
- 조회수: 21 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 쏟은 다음 후회해봐야 소용이 없습니다
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
쏟고 후회해도 소용이 없습니다… 너무 당연한 얘기이지요? 무슨 뜬금없는 소리냐구요?? 컵의 물은 쏟고나면 주워 담을 수 없단 얘깁니다! 그러면 누가 쏟아진 물을 주워 담을 수 있다고 우기기라도 했다는 것인가?
쏟은 다음 후회해봐야 소용이 없습니다
핵심 요약
- 수식 셀과 상수 셀을 시각적으로 구분해 두면 데이터를 지울 때 중요한 수식을 실수로 삭제하는 일을 줄일 수 있습니다.
- Excel4Macro의 GET.CELL을 이름 정의와 함께 사용하면 셀에 수식이 있는지 등의 정보를 워크시트에서 활용할 수 있습니다.
- 얻은 정보를 조건부 서식 등에 연결하면 수식이 들어 있는 셀을 자동으로 표시하는 Visual Flag를 만들 수 있습니다.
오늘 강좌의 내용을 다 읽어 보시면 Exceller가 먼 얘기를 하고 싶은 지 아시게 될 것입니다. 아래의 내용은 David Hager라는 외국의 Excel 고수가 사용한 방법입니다.
아래와 같은 표가 있습니다.
| 브랜드 | Jan | Feb | Mar | Q1 | Apr | May | Jun | Q2 | 1st Half |
| 아이오페 | 275 | 936 | 647 | =SUM(B20:D20) | 217 | 517 | 547 | =SUM(F20:H20) | =SUM(I20,E20) |
| 라네즈 | 178 | 43 | 288 | =SUM(B21:D21) | 602 | 978 | 253 | =SUM(F21:H21) | =SUM(I21,E21) |
| 마몽드 | 705 | 787 | 6 | =SUM(B22:D22) | 851 | 342 | 964 | =SUM(F22:H22) | =SUM(I22,E22) |
| 헤라 | 252 | 569 | 418 | =SUM(B23:D23) | 954 | 471 | 528 | =SUM(F23:H23) | =SUM(I23,E23) |
| 설화수 | 797 | 197 | 608 | =SUM(B24:D24) | 160 | 207 | 333 | =SUM(F24:H24) | =SUM(I24,E24) |
| 미쟝센 | 778 | 250 | 584 | =SUM(B25:D25) | 611 | 766 | 562 | =SUM(F25:H25) | =SUM(I25,E25) |
| 미래파 | 57 | 465 | 224 | =SUM(B26:D26) | 614 | 938 | 232 | =SUM(F26:H26) | =SUM(I26,E26) |
| 베리떼 | 473 | 994 | 690 | =SUM(B27:D27) | 746 | 331 | 926 | =SUM(F27:H27) | =SUM(I27,E27) |
| 합 계 | =SUM(B20:B27) | =SUM(C20:C27) | =SUM(D20:D27) | =SUM(E20:E27) | =SUM(F20:F27) | =SUM(G20:G27) | =SUM(H20:H27) | =SUM(I20:I27) | =SUM(J20:J27) |
하반기가 되면 Jan, Feb,… 등의 필드에 들어있는 숫자(상수)만 지우고 이 양식을 다시 복사해서 사용을 하면 편리할 것입니다. 여기에서 Q1, Q2, 1st Half, 합 계 부분에는 수식이 들어있습니다. 따라서 웬만큼 주의를 하지 않으면 수식이 들어있는 부분도 삭제를 하게 될 지도 모릅니다. 물론 직전 작업 실행 취소 기능을 사용하면 되겠으나 저장을 해버렸다든지 Back-up 파일이 없다면 난처한 상황에 처할 수도 있습니다.
이런 경우에는 수식이 들어있는 셀을 별도의 표시(Visual Flag)를 해두면 좋겠지요? 아래의 표에서와 같이 말입니다.
| 브랜드 | Jan | Feb | Mar | Q1 | Apr | May | Jun | Q2 | 1st Half |
| 아이오페 | 275 | 936 | 647 | =SUM(B43:D43) | 217 | 517 | 547 | =SUM(F43:H43) | =SUM(I43,E43) |
| 라네즈 | 178 | 43 | 288 | =SUM(B44:D44) | 602 | 978 | 253 | =SUM(F44:H44) | =SUM(I44,E44) |
| 마몽드 | 705 | 787 | 6 | =SUM(B45:D45) | 851 | 342 | 964 | =SUM(F45:H45) | =SUM(I45,E45) |
| 헤라 | 252 | 569 | 418 | =SUM(B46:D46) | 954 | 471 | 528 | =SUM(F46:H46) | =SUM(I46,E46) |
| 설화수 | 797 | 197 | 608 | =SUM(B47:D47) | 160 | 207 | 333 | =SUM(F47:H47) | =SUM(I47,E47) |
| 미쟝센 | 778 | 250 | 584 | =SUM(B48:D48) | 611 | 766 | 562 | =SUM(F48:H48) | =SUM(I48,E48) |
| 미래파 | 57 | 465 | 224 | =SUM(B49:D49) | 614 | 938 | 232 | =SUM(F49:H49) | =SUM(I49,E49) |
| 베리떼 | 473 | 994 | 690 | =SUM(B50:D50) | 746 | 331 | 926 | =SUM(F50:H50) | =SUM(I50,E50) |
| 합 계 | =SUM(B43:B50) | =SUM(C43:C50) | =SUM(D43:D50) | =SUM(E43:E50) | =SUM(F43:F50) | =SUM(G43:G50) | =SUM(H43:H50) | =SUM(I43:I50) | =SUM(J43:J50) |
수작업으로 색칠한 것이 아니냐구요? 아닙니다! 수식에 이름을 정의한 다음 조건부 서식을 지정해 준 것입니다.
(1) '삽입-이름-정의' 메뉴를 선택합니다.
(2) HasFormula라는 이름을 정의하고 '참조 대상' 항목에 그림과 같은 수식을 입력합니다.
(3) '확인' 버튼을 클릭합니다.
(4) 이제 여러분들이 잘 아시는 '조건부 서식(Conditional Formatting)'을 사용합니다. 서식을 적용할 범위를 마우스로 지정합니다. A42:J51 영역이 되겠지요?
(5) '조건부 서식' 대화 상자에서 '수식이', =HasFormula라고 입력하고 서식' 버튼을 눌러 적당한 서식을 지정합니다.
(조건부 서식이니까 당연히 엑셀 97버전 이상에서 정상적으로 작동합니다. 위 그림은 엑셀 XP 버전에서의 것입니다. 엑셀 2000버전과는 모양이 조금 틀립니다. 2000버전에서는 '수식이'가 아니라… 뭐였더라? 생각이 잘… ^^)
How It Works!
그렇다면 위의 (2) 단계에서 작성한 수식이 어떻게 이런 작업을 수행하는 것인지에 대해서도 살펴보아야 겠지요?(참 친절도 하다! 소개하는 걸로도 모자라 해설까지… *^^*)
=GET.CELL(48,INDIRECT("rc",FALSE))
GET.CELL 함수는 VBA 강좌 시간에 몇 번 소개드린 적이 있습니다만, XLM 매크로 함수(지금의 VBA의 할아버지뻘!)의 일종입니다. 이 함수는 워크시트 상에서 직접적으로 사용할 수는 없고 주로 VBA에서 사용하거나 이름 정의 형식을 통해 사용됩니다.
그리고 48이라는 값은, 셀에 수식이 들어있으면 True를, 그렇지 않으면 False를 돌려주는 argument 입니다. 그런 다음, Indirect 함수를 사용하여 지정한 영역 내의 모든 셀을 참조하게 되는 것입니다. 설명을 하고보니 좀 어렵군요. 내용은 별 게 아닌데… ^^
그러고 보니 언젠가 VBA 강좌 시간에도 비슷한 것을 했던 기억이 납니다. 그 때는 수식에 이름을 정의해 두고 사용하는 것이 아니고 사용자 정의 함수를 작성하는 방법을 이용했던 것으로 생각됩니다.
많이 응용해 보세요.
다음 시간에…
정리 — 수식 셀 시각적으로 표시하기(Visual Flag)
| 항목 | 설명 |
|---|---|
| 핵심 기능 | Excel4Macro 함수 GET.CELL + 이름 정의 + 조건부 서식 |
| 핵심 수식 | =GET.CELL(48,INDIRECT("rc",FALSE)) |
| 설정 절차 | 이름 정의(HasFormula)로 수식 저장 → 대상 범위에 조건부 서식 지정 → 수식으로 =HasFormula 입력 |
| 사용 목적 | 상수만 갱신해야 하는 양식에서 수식 셀을 시각적으로 구분해 실수로 지우는 것을 방지 |
| 지원 버전 | 조건부 서식은 Excel 97 이상에서 동작(버전별 대화 상자 용어 차이 있음) |
자주 묻는 질문 (FAQ)
Q1. GET.CELL(48, ...) 수식은 어떤 역할을 하나요?
GET.CELL 함수에 인수 48을 지정하면 대상 셀에 수식이 들어있는지를 True/False로 반환하는 XLM 매크로 함수입니다. 워크시트에서 직접 쓸 수 없어 이름 정의(예: HasFormula)에 담아 INDIRECT("rc",FALSE)와 함께 사용해, 조건부 서식 등에서 셀별로 수식 여부를 판별하는 용도로 활용합니다.
Q2. 수식 셀에 Visual Flag를 표시하면 어떤 점이 좋은가요?
매년 같은 양식을 재사용하면서 Jan~Jun 같은 상수 값만 지우고 다시 입력하는 경우, 합계나 소계처럼 수식이 들어있는 셀까지 실수로 함께 지우기 쉽습니다. 수식 셀을 조건부 서식으로 시각적으로 구분해 두면 어떤 셀을 건드리면 안 되는지 한눈에 알 수 있어 실수를 줄일 수 있습니다.
Q3. 이 방법은 어떤 Excel 버전에서 사용할 수 있나요?
조건부 서식 기능 자체는 Excel 97 버전 이상에서 정상적으로 작동합니다. 다만 대화 상자의 용어나 구성은 버전마다 조금씩 달라서, 예를 들어 Excel 2000에서는 '수식이' 항목의 명칭이나 위치가 XP 버전과 다소 차이가 있을 수 있습니다.
마치며
다음 시간에… 수식이 들어있는 셀을 시각적으로 구분해 두는 습관만 들여도 "쏟고 나서 후회하는" 실수를 상당 부분 줄일 수 있습니다. GET.CELL과 이름 정의를 조합하는 방식은 XLM 매크로 함수의 오래된 쓰임새이지만, 지금도 여전히 유용하게 응용할 수 있는 아이디어입니다.