如何从 google 工作表中的另一个单元格引用公式

how to reference a formula from another cell in google sheets

背景

我有一个包含一些高级公式的电子表格。例如,我正在整理当月的预算,我有不同的员工,他们有不同的薪酬结构(即一些小时工,一些小时工,奖金基于估计目标等)..

我喜欢输入一个公式,然后将其复制并粘贴到多个单元格中。这就是我现在所拥有的

=if(C54="employee 1",D54*'resource information'!$D,
   if(C54="employee 2",D54*'resource information'!$D,
     if(C54="employee 3",D54*'resource information'!$D)))

每个员工的小时*小时工资的基本乘法(员工 1/2/3 的工资不同)

问题

如果我想添加一个员工 4,他有一个复杂的公式来提取他们的工资(即有 3-4 个不同的变量并从不同的工作表中提取?)我不想添加那个丑陋的公式到上面..我想引用上面有那个公式的单元格..像这样

=if(C54="employee 1",D54*'resource information'!$D,
   if(C54="employee 2",D54*'resource information'!$D,
     if(C54="employee 3",D54*'resource information'!$D))) 
 + employee 4 formula with parameters C54,D54 <-- this formula will be stored elsewhere

有什么想法吗?

简答

在 Google 表格中不可能 "hide" 难看的公式。

扩展答案

不要太担心公式的外观,担心可维护性和可读性。作为替代方案,考虑创建一个 custom function.

提示 1:尝试使用查找函数代替嵌套 IF,例如 VLOOKUP.
提示 2:正如您已经了解到的,您可以嵌套一个公式作为大多数函数的参数,就像您对 IF 所做的那样。

备注: Google表格公式不能调用存储在别处的公式,只能调用它们的结果。

应用提示 1 和 2 的示例

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

=D54*IF(
  C54<>"employee 4",
  VLOOKUP(C54,'resource information'!$A:$D,4,0),
  your_formula_goes_here
 )

提示 3:如果您不想在公式栏中显示员工 4 的计算结果,请使用自定义函数。

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

这样的存储库

查看我的 answer 另一个问题,我在其中共享一个电子表格,该电子表格包含来自 SocialCalc 的 JavaScript 文件的有界 Google Apps 脚本项目。

另见

  • Is there a way to evaluate a formula that is stored in a cell?
  • How to evaluate a spreadsheet formula within a custom function?