工程造價試算表:F6 儲存格輸入計算式如 100*2.5[混凝土]+50*1.2[鋼筋],需在 E6 自動計算結果並保留括號內備註文字。
`EVALUATE` 是 Excel 4.0 巨集函數,僅能在**定義名稱**中使用,可將文字字串當作公式計算。配合 `SUBSTITUTE` 處理括號備註,實現「文字公式→計算結果」轉換。
ww(自訂)。=IFERROR(
EVALUATE(
SUBSTITUTE(
SUBSTITUTE(工程量計算式!F6, "[", "*ISTEXT(""["),
"]", "]""")
)
), ""
)
關鍵說明:
工程量計算式!F6:來源工作表與儲存格,**需根據實際情況修改**。


在結果儲存格(如 E6)輸入:
=ww
即可顯示計算結果,F6 保留原始「公式+備註」文字。

=LET(
formulaText, F6,
cleanFormula, SUBSTITUTE(SUBSTITUTE(formulaText, "[", "*0+"), "]", ""),
IFERROR(EVALUATE(cleanFormula), "")
)
或使用 **Lambda 自訂函數**(需 Office 365 Insider):
=LAMBDA(txt, IFERROR(EVALUATE(SUBSTITUTE(SUBSTITUTE(txt,"[","*0+"),"]","")),""))(F6)
| 支援 | 不支援/注意 |
|---|---|
| 基本四則運算 + 括號 | 自訂函數/UDF |
| 工作表函數(SUM, IF 等) | 跨工作簿參考(需開啟來源檔) |
| 括號備註自動忽略 | 括號內含運算符號會干擾 |
| 儲存為 .xlsm 巨集啟用活頁簿 | .xlsx 無法儲存定義名稱中的 EVALUATE |
`EVALUATE` 定義名稱技巧是 Excel 「文字公式計算」的經典黑科技,配合 `SUBSTITUTE` 清洗備註文字,完美解決「公式與說明同儲存格」需求。**現代 Excel 建議改用 LET+EVALUATE 組合或 Power Query 處理**,更易維護且不需巨集啟用檔案。