Google sheets 如何从google sheets中的另一个单元格引用公式 背景

Google sheets 如何从google sheets中的另一个单元格引用公式 背景,google-sheets,formulas,Google Sheets,Formulas,我有一个电子表格,里面有一些高级公式。。例如,我正在编制本月的预算,我有不同的员工,他们有不同的薪酬结构(例如,一些按小时计酬,一些按小时计酬,根据估计目标发放奖金等等) 我喜欢把一个单一的公式,然后复制和粘贴它跨单元格。。这就是我现在拥有的 =if(C54="employee 1",D54*'resource information'!$D$3, if(C54="employee 2",D54*'resource information'!$D$8, if(C54="emplo

我有一个电子表格,里面有一些高级公式。。例如,我正在编制本月的预算,我有不同的员工,他们有不同的薪酬结构(例如,一些按小时计酬,一些按小时计酬,根据估计目标发放奖金等等)

我喜欢把一个单一的公式,然后复制和粘贴它跨单元格。。这就是我现在拥有的

=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
=if(C54=“员工1”,D54*“资源信息”!$D$3,
如果(C54=“员工2”,D54*“资源信息”!$D$8,
如果(C54=“员工3”,D54*“资源信息”!$D$4)))
+带参数C54、D54的员工4公式简短回答
在谷歌表单中,不可能“隐藏”丑陋的公式

扩展答案 不要太担心公式的外观,要担心可维护性和可读性。作为替代,考虑创建一个.< /p> 提示1:如果尝试查找函数,请不要嵌套,如。
提示2:正如您已经了解的那样,您可以将公式嵌套为大多数函数的参数,就像您对IF所做的那样

备注:谷歌表单公式不能调用存储在别处的公式,只能调用它们的结果

应用提示1和2的示例

假设资源信息在A列中包含资源ID(员工1、员工2等)

=D54*IF(
C54“员工4”,
VLOOKUP(C54,“资源信息”!$A$3:$D$8,4,0),
你的公式在这里
)
提示3:如果不想在公式栏中显示员工4的计算,请使用自定义函数

备注:Google Apps脚本无法调用电子表格内置函数,但您可以从GitHub存储库复制JavaScript版本,如

请参阅我的另一个问题,我与SocialCalc提供的JavaScript文件的绑定Google Apps脚本项目共享一个电子表格

另见

hey@Ruben我克隆了EtherCalc回购。。但我不明白我怎么能把我需要的函数复制到谷歌的表单上。。例如,如果我在EtherCalc回购中搜索
vlookup
。。我找不到一个地方可以将vlookup定义为我可以调用的函数。。你能给我一些指导/帮助,告诉我如何使用谷歌表单中EtherCalc的这些功能吗?否则,我唯一的选择是迁移到excel:(
=D54*IF(
  C54<>"employee 4",
  VLOOKUP(C54,'resource information'!$A$3:$D$8,4,0),
  your_formula_goes_here
 )