• 최초 작성일: 2025-01-24
  • 최종 수정일: 2026-09-27
  • 조회수: 51 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: VBA 파워 코딩 245회 - 수식 표시

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

영어 선생님이 영어를 잘 하는 이유

영어 선생님이 영어를 잘하는 이유는 매일 일정 정도의 시간을 영어를 가르치는 데 사용하기 때문이다. 글쓰기도 마찬가지다. 시간을 내서 정기적으로 쓰면 나도 모르는 사이, 글쓰기 능력이 향상된다.

어느 시인의 말입니다(오은 시인).

비단 영어나 글쓰기 뿐이겠습니까. 엑셀이나 VBA도 크게 다르지 않을 듯합니다. 엑셀과 VBA를 잘 하려면, 자신이 알고 있는 지식을 자꾸 남들에게 전달해 보세요. 특히 게시판에 올라온 질문을 여러 각도에서 고민해 보고 꾸준히 답변을 달아 보세요. 1) 해법을 여러 각도에서 고민하는 과정에서 문제 해결력이 높아지고, 2) 꾸준히 답하는 과정에서 자신이 알고 있는 것을 계속 리마인드하게 되어 잊을래야 잊을 수가 없게 됩니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

수식을 셀에 그대로 표시해주는 Code

핵심 요약: 수식을 셀 옆에 그대로 표시하는 두 가지 방법

엑셀 2013 이상에서는 FORMULATEXT 함수로 수식을 문자열로 표시할 수 있고, 이전 버전에서는 Range의 Formula 속성을 반환하는 사용자 정의 함수를 만들어 쓸 수 있습니다.

  • 방법 1: =FORMULATEXT(E7) (수식이 아닌 셀은 #N/A 오류)
  • 방법 2: 사용자 정의 함수 ShowFormula (rngX.Formula 반환)
  • 보완: ShowFormula2 - HasArray로 배열 수식, HasFormula로 일반 수식을 구분
  • 간단한 대안: 수식 앞에 작은따옴표(')나 공백을 삽입

수식을 셀 옆에 표시하고 싶을 때

셀에 입력되어 있는 수식(Formula)을 화면에 표시하고자 할 때, 수식 앞에 작은 따옴표(')나 공백을 삽입하고 수식을 작성하면 됩니다.

하지만 수식이 많거나 수식의 내용을 별도로 표시하고자 할 때에는 이 방법도 불편합니다. 다음 그림에서 빨간 네모 부분과 같이 수식이 입력된 셀 옆에 수식을 표시하려면 어떻게 할까요?

결과 셀 옆의 G열에 수식 내용이 문자열로 표시된 워크시트(빨간 네모)
아이엑셀러

[사족] 면적이나 원둘레 길이를 구하는 공식이 정확한지는 자신할 수 없습니다(졸업한 지 4반세기가 다 지나가는 관계로...). 지금 중요한 것은 공식이 맞느냐 아니냐가 아니지요. 손가락으로 달을 가리키면 그 방향을 봐야 하는데 공연히 손가락 끝을 보며 따지는 분은 없겠죠? ^^;

[방법 1] 일반 함수 사용

'찾기/참조 영역' 함수 중에 'Formulatext'라는 것이 있습니다. 엑셀 2013 버전에서 추가된 함수로, '수식을 문자열로 반환' 해주는 함수입니다.

G7 셀에 =FORMULATEXT(E7)을 입력한 모습
아이엑셀러

사용 방법은 간단합니다. 예를 들어, G7 셀에 =FORMULATEXT(E7)라고 입력하면 E7 셀에 들어있는 수식의 내용이 표시됩니다. 단, 수식이 아닌 문자열이 입력된 셀을 참조 범위로 지정하면 '#N/A' 오류가 발생합니다.

이번 강좌 여기서 끝!... 하면 성의 없다고 욕을 얻어먹을 것이므로 진도를 조금 더 나갑니다.^^;

[방법 2] 사용자 정의 함수 사용

앞에서 언급한 것처럼 Formulatext 함수는 엑셀 2013 버전부터 제공됩니다. 그 이전 버전을 사용하고 있다면... 간단한 VBA 코딩을 통해 가능합니다.

(1) <Alt> + <F11> 키를 눌러 Visual Basic Editor를 띄웁니다.

(2) 모듈에 다음과 같은 사용자 정의 함수를 작성합니다.

Function ShowFormula(rngX As Range) As String
    ShowFormula = rngX.Formula    ' 지정한 셀에 들어있는 수식을 함수의 결과값으로 반환
End Function

참고: 원문 코드 수정

원문의 첫 번째 함수는 마지막 줄이 Function으로만 되어 있어 End Function으로 바로잡았습니다. 주석의 "수식을 의 함수결과값으로"도 "수식을 함수의 결과값으로"로 고쳤습니다.

(3) 위 사용자 정의 함수는 일반 수식에 대해서는 잘 작동합니다만 배열 수식(Array Formula)이나 문자열이 들어 있는 셀인 경우에는 원하는 결과를 얻을 수 없습니다. 이 문제를 보완한 코드입니다.

Function ShowFormula2(XXX As Range)
    Dim strTemp As String                   ' 결과값을 돌려줄 문자열 변수

    If XXX.HasArray Then                    ' 만약 수식이 배열 수식이라면...
        strTemp = "{" & XXX.Formula & "}"   ' 수식 앞뒤에 중괄호를 추가한
                                            ' 문자열을 변수에 저장
    ElseIf XXX.HasFormula Then              ' 만약 일반 수식이 들어있으면...
        strTemp = XXX.Formula               ' 수식을 문자열 변수에 저장
    Else                                    ' 이도 저도 아니면...
        strTemp = "그냥 문자열임"             ' '그냥 문자열임'이라는 문자열을
                                            ' 변수에 저장
    End If

    ShowFormula2 = strTemp                  ' 상황별로 strTemp에 담긴 값을
                                            ' 함수의 결과로 돌려줌
End Function

'보기 좋은 떡이 맛도 좋다'는 속담이 있습니다만, 그러기 위해서는 그만큼 공수가 더 들어가야 합니다. 세상에 공짜 점심은 없는 법이지요.

참고: 이미지에 대하여

이 글은 원래 네이버 포스트에 게재되었던 글로, 네이버 포스트 서비스 종료로 네이버 블로그로 옮기는 과정에서 원본 이미지가 소실되었습니다. 위 이미지는 본문 설명을 바탕으로 당시 화면 구성을 재구성한 예시 이미지이며, 실제 엑셀 화면과 세부 디자인(버전별 UI)은 다를 수 있습니다. 이미지 속 도형의 넓이와 둘레 표의 항목과 수치는 예시입니다.

정리 — 수식을 셀에 표시하는 방법

방법 특징
작은따옴표(') 또는 공백 수식 앞에 붙여 입력. 수식이 많으면 불편
FORMULATEXT 함수 엑셀 2013 이상. 수식이 아닌 셀을 참조하면 #N/A 오류
ShowFormula (사용자 정의 함수) 이전 버전에서도 사용 가능. Range.Formula 속성 반환
ShowFormula2 (보완 버전) 배열 수식은 중괄호를 붙이고, 수식이 없으면 '그냥 문자열임'을 반환

자주 묻는 질문 (FAQ)

Q1. 셀에 입력된 수식을 다른 셀에 그대로 표시하려면 어떻게 하나요?

엑셀 2013 이상에서는 FORMULATEXT 함수를 사용합니다. 예를 들어 G7 셀에 =FORMULATEXT(E7)이라고 입력하면 E7 셀에 들어 있는 수식의 내용이 표시됩니다.

Q2. FORMULATEXT 함수에서 #N/A 오류가 발생합니다.

참조한 셀에 수식이 아닌 문자열이 입력되어 있을 때 #N/A 오류가 발생합니다. 수식이 들어 있는 셀을 참조 범위로 지정하세요.

Q3. 엑셀 2013 이전 버전에서는 어떻게 하나요?

VBA로 사용자 정의 함수를 만들면 됩니다. Range 개체의 Formula 속성을 함수 결과값으로 반환하는 ShowFormula 함수를 만들거나, 배열 수식과 문자열까지 처리하는 ShowFormula2 함수를 사용합니다.

마치며

수식을 옆에 그대로 보여 주면 설명 자료를 만들 때 훨씬 편합니다. 버전에 맞는 방법을 골라 써 보세요!
VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 사이트 정문 왼쪽에 있는 'VBA 강좌 - VBA 입문강좌'를 읽어보시면 이해가 빠릅니다.