Google Sheets:如何执行其他单元格中写入的公式?
在Google Sheets中执行单元格内的公式文本
Google Sheets没有内置的EVALUATE函数,INDIRECT仅支持单元格引用解析,无法执行完整公式文本。以下是两种可行方案:
方案一:自定义Apps Script函数(通用解法)
这是最灵活的方案,能处理绝大多数公式类型:
- 打开Google Sheets,点击「扩展程序」→「Apps Script」进入脚本编辑器。
- 删除默认代码,粘贴以下自定义函数:
function RUN_FORMULA(formula) { if (typeof formula !== 'string') return formula; try { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 若公式带等号(如=SUM(Sheet1!A1:A5)),直接执行 if (formula.startsWith('=')) { return ss.eval(formula); } // 若为不带等号的单元格引用(如Sheet1!A1),返回对应值 return ss.getRange(formula).getValue(); } catch (err) { return `执行失败: ${err.message}`; } }
- 返回表格,在C1单元格输入
=RUN_FORMULA(B1),下拉填充即可批量执行B列的公式。
方案二:手动重构公式(无脚本解法)
如果B列的公式逻辑统一(比如都是引用其他工作表的特定范围),可以直接用INDIRECT拼接公式,无需脚本。例如:
- A列是工作表名,B列是
=SUM(A1:A10) - 在C列直接写:
=SUM(INDIRECT(A2&"!A1:A10"))
这种方式适合公式结构固定的场景,不需要授权脚本。
内容的提问来源于stack exchange,提问作者Shivam Tyagi
相关产品推荐
相关产品推荐

