如何从谷歌表格中的另一个单元格引用公式
Posted
技术标签:
【中文标题】如何从谷歌表格中的另一个单元格引用公式【英文标题】:how to reference a formula from another cell in google sheets 【发布时间】:2016-10-13 09:35:43 【问题描述】:背景
我有一个包含一些高级公式的电子表格。例如,我正在汇总当月的预算,并且我有不同的员工,他们有不同的薪酬结构(即一些小时,一些小时,根据估计目标等的奖金) )..
我喜欢放置一个公式,然后将其复制并粘贴到单元格中。这就是我现在所拥有的
=if(C54="employee 1",D54*'resource information'!$D$3,
if(C54="employee 2",D54*'resource information'!$D$8,
if(C54="employee 3",D54*'resource information'!$D$4)))
每个员工的小时*小时工资的基本乘积(员工 1/2/3 的工资不同)
问题
如果我想添加一个员工 4,他有一个复杂的公式来提取他们的工资(即使用 3-4 个不同的变量并从不同的工作表中提取?)我不想在上面添加那个丑陋的公式..我想在上面引用一个具有该公式的单元格..像这样
=if(C54="employee 1",D54*'resource information'!$D$3,
if(C54="employee 2",D54*'resource information'!$D$8,
if(C54="employee 3",D54*'resource information'!$D$4)))
+ employee 4 formula with parameters C54,D54 <-- this formula will be stored elsewhere
有什么想法吗?
【问题讨论】:
【参考方案1】:简答
在 Google 表格中,无法“隐藏”丑陋的公式。
扩展答案
不要太担心公式的外观,担心可维护性和可读性。作为替代方案,可以考虑创建一个custom function。
提示 1:不要嵌套 IF,而是尝试使用查找函数,例如 VLOOKUP。提示 2:正如您已经想到的那样,您可以嵌套一个公式作为大多数函数的参数,就像你对 IF 所做的那样。
备注: Google 表格公式不能调用存储在别处的公式,只能调用它们的结果。
应用提示 1 和 2 的示例
假设资源信息在 A 列中有资源 ID(员工 1、员工 2 等)
=D54*IF(
C54<>"employee 4",
VLOOKUP(C54,'resource information'!$A$3:$D$8,4,0),
your_formula_goes_here
)
提示 3:如果您不想在公式栏中显示员工 4 的计算,请使用自定义函数。
备注:Google Apps 脚本无法调用电子表格内置函数,但您可以从 GitHub 存储库中复制 javascript 版本,例如
SocialCalc formula.js EtherCalc1请参阅我的answer 到另一个问题,我在其中与一个有界 Google Apps 脚本项目共享一个电子表格,其中包含来自 SocialCalc 的 JavaScript 文件。
另见
Is there a way to evaluate a formula that is stored in a cell? How to evaluate a spreadsheet formula within a custom function?【讨论】:
嘿@Ruben 我克隆了 EtherCalc 存储库.. 但我不知道如何将我需要的函数复制到谷歌表中.. 例如,如果我搜索vlookup
在EtherCalc repo ..我没有找到一个地方将 vlookup 定义为我可以调用的函数..你能给我一些关于如何在谷歌表格中使用 EtherCalc 中的这些函数的说明/帮助吗?否则我唯一的选择是迁移到 excel :(以上是关于如何从谷歌表格中的另一个单元格引用公式的主要内容,如果未能解决你的问题,请参考以下文章