- 최초 작성일: 2001-04-12
- 최종 수정일: 2026-09-30
- 조회수: 7 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 수식을 시트에 그대로 표시하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
이번 시간에는 게시판에 올라온 질문을 살펴봅니다.
안녕하세요, 엑셀러님!
엑셀러님의 강좌를 보면 수식 같은 것이 워크시트 상에 그대로 나타나 있는데
수식과 그 결과값을 함께 화면에 표시하려면 어떻게 해야 하나요?
수식을 시트에 그대로 표시하기
핵심 요약: 수식을 문자열로 표시하는 함수
HasArray와 HasFormula로 셀의 종류를 판별하고 Formula 속성을 문자열로 반환하면 수식과 결과를 함께 표시할 수 있습니다.
- 1단계: Ctrl+`로 수식을 보면 열 너비가 바뀌고 결과값을 볼 수 없다는 단점이 있습니다.
- 2단계: ShowFormulas 함수로 다른 셀에 수식을 문자열로 표시합니다.
- 3단계: 배열 수식은 중괄호를 붙이고 수식이 아닌 셀은 "Just Values"를 반환합니다.
Step 1: 수식과 결과를 함께 표시하기
아래와 같은 표가 있습니다. 투입율과 지점계 부분에는 수식이 들어 있고 그 옆(또는 아래) 셀에는 해당 수식의 내용이 표시되어 있습니다.
보통 입력되어 있는 수식을 화면상에 표시하고자 할 경우, Ctrl + `키를 사용합니다. 이렇게 하면 해당 시트 내의 모든 수식을 볼 수가 있는 반면, 열 너비가 임의대로 수정이 되고 계산 결과값을 볼 수 없다는 단점이 있습니다.
따라서 이런 경우에는 수식을 다른 셀로 복사를 한 다음, 문자열로 인식하도록 하면 해결이 됩니다. 즉, 수식(Formula) 앞에 '(작은 인용부호)나 공백을 하나 삽입하시면 되겠습니다. 하지만 수식이 많을 경우, 이것도 불편하다는 생각이 들게 됩니다.
| 지점명 | Net Sales | 판촉비 | 투입율 | 투입율 셀의 수식 (ShowFormulas) |
|---|---|---|---|---|
| 강동 | 100,000 | 12,300 | 12.3% | =D28/C28 |
| 강서 | 150,000 | 17,650 | 11.8% | =D29/C29 |
| 강남 | 125,000 | 4,530 | 3.6% | =D30/C30 |
| 강북 | 115,700 | 7,500 | 6.5% | =D31/C31 |
| 지점계 | 490,700 | 41,980 | 8.6% | =D32/C32 |
| 셀 | 내용 | ShowFormulas 결과 |
|---|---|---|
| C32 (지점계 Net Sales) | 490,700 | =SUM(C28:C31) |
| B32 (지점계) | 지점계 | Just Values |
| D35 (Ave.Net Sales) | 122,675 | =AVERAGE(C28:C31) |
| D36 (Conditional Net Sales) | 240,700 | {=SUM((C28:C31>=110000)*(C28:C31<150000)*(C28:C31))} |
빨간색으로 둘러싸인 부분에는 ShowFormulas라는 사용자 정의 함수가 사용되었습니다.
Step 2: ShowFormulas 함수
Function ShowFormulas(XXX As Range)
Dim strTemp 'As String
If XXX.HasArray Then
strTemp = "{" & XXX.Formula & "}"
ElseIf XXX.HasFormula Then
strTemp = XXX.Formula
Else
strTemp = "Just Values"
End If
'//이 사용자 정의 함수는 지정한 셀에 세 가지 검사를 수행합니다. 즉, 셀에 입력된 내용이
'//배열수식이면 수식의 앞 뒤에 중괄호({})를 첨가합니다. 배열수식이 아니라 그냥 일반적인
'//수식이면 수식을 strTemp 변수에 담습니다.
'//이 두 가지 경우가 아니라면 Just Values라는 문자열 값을 strTemp에 저장합니다.
ShowFormulas = strTemp
'//strTemp 변수에 저장된 내용을 되돌려 줍니다.
End Function
마무리
간단하니까 설명을 하고말고 할 것도 없군요. ^^ 도저히 이해가 안된다 하는 분은 질문을 하시기 바랍니다..
오늘은 짧게 여기까지…
정리 — 수식 표시 함수 핵심
| 구분 | 사용한 코드 | 역할 |
|---|---|---|
| 배열 수식 | XXX.HasArray | 배열 수식 여부 검사 |
| 일반 수식 | XXX.HasFormula | 수식 여부 검사 |
| 수식 문자열 | XXX.Formula | 수식 내용 조회 |
| 배열 표시 | "{" & XXX.Formula & "}" | 중괄호로 감싸 표시 |
| 값인 경우 | "Just Values" | 수식이 없는 셀 표시 |
자주 묻는 질문 (FAQ)
Q1. 수식과 결과값을 함께 표시하려면 어떻게 하나요?
수식을 문자열로 돌려주는 사용자 정의 함수를 다른 셀에 사용하면 수식은 문자열로, 원래 셀은 결과값으로 함께 볼 수 있습니다.
Q2. Ctrl+` 키로 수식을 보면 무엇이 불편한가요?
시트 전체의 열 너비가 임의로 바뀌고 계산 결과값을 볼 수 없습니다.
Q3. 배열 수식은 어떻게 구분하나요?
Range의 HasArray 속성이 True이면 배열 수식이므로 수식 앞뒤에 중괄호를 붙여 표시합니다.
마치며
간단한 사용자 정의 함수만으로 수식과 결과값을 한 화면에 함께 보여 줄 수 있습니다.