我知道在 Excel 中可以在之間切換顯示值和顯示公式。我需要將統計課的作業以列印的 Excel 表格形式提交,其中顯示兩個都公式和結果。現在,教師讓我們要么複製公式並將其作為文字貼上到計算值旁邊,要么複製該值並將其貼上到公式旁邊。這是非常低效的,容易出錯(如果在複製貼上後更改公式或值),並且通常會浪費時間。
有沒有辦法讓Excel顯示公式和它在同一個單元格中的值?如果沒有,是否有任何函數可以將引用單元格中的公式顯示為純文本,例如,=showformula(A1)
它將列印出來=sum(A2:A5)
而不是25
(如果這些是單元格的公式和值A1
)?
我使用的是 Excel 2010,但適用於任何最新版本的 Excel 的一般答案會很好。
答案1
我不知道有任何內建函數可以實現這一點。不過,您可以建立使用者定義的 VB 函數來完成您想要的任務。
按Alt+F11若要開啟 VBA 編輯器,請右鍵點選專案資源管理器並選擇插入->模組。貼上以下程式碼:
Function GetFormula(cell)
GetFormula = cell.Formula
End Function
現在您可以用來=GetFormula(A1)
顯示該儲存格的公式。
答案2
也許值得注意的是,從 Excel 2013 開始,有一個用於此目的的本機函數:FORMULATEXT
。
來自 support dot office dot com 有關FORMULATEXT
功能的文章:
描述
以字串形式傳回公式。
句法
公式文字(參考)
FORMULATEXT 函數語法有以下參數:
- 參考 必需的。對儲存格或儲存格範圍的參考。
評論
- 如果選擇引用的儲存格,FORMULATEXT 函數將傳回公式欄中顯示的內容。
答案3
這是一種自動化您之前所做的事情的方法。它結合了最好的部分LonelyKnight 對他/她自己的問題的回答、Indrek 的回答和 Billis 的回答:
Sub Show_Formulas()
Dim rng As Range, cell As Range
row_offset = 10
col_offset = 0
Set rng = Range(Cells(1, 1), Cells(5, 7))
On Error GoTo ErrHandler
For Each cell In rng
cell.Offset(row_offset, col_offset) = "'" & cell.Formula
Next cell
Exit Sub
ErrHandler:
MsgBox "The cow jumped over the moon", , "Error!", Err.HelpFile, Err.HelpContext
End Sub
對於指定範圍內的每個單元格(此處硬編碼為A1:G5
),它將單元格的公式(由撇號保護)複製到固定偏移量之外的單元格。 (看如何在 MS Office 中新增 VBA?
有關在 Excel 中使用 VBA 的指南。
PrintOut , , , True
或者,在 之前新增一條語句Exit Sub
,該巨集將為您列印該工作表。 (你只需要記住打印使用這個宏.) 第四個參數PrintOut
是預覽,設定為True
讓 Microsoft Excel 在列印工作表之前呼叫列印預覽(從而為您提供取消選項)或False
(或省略)立即無條件列印工作表。
或者,如果您真的擔心忘記運行它,您可以Private Sub Worksheet_Change
隨時使用它來更新可顯示的公式任何工作表中的變更。
答案4
免費的插件,公式台可以為您執行此操作,並以更易於理解的方式顯示公式並找出公式中的錯誤。
正如您在下面的螢幕截圖中看到的,您可以按照您的要求同時查看單元格的最終結果和原始公式以及增強的公式可探索顯示。
[揭露:我是 FormulaDesk 的作者]