如何从 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?
背景
我有一个包含一些高级公式的电子表格。例如,我正在整理当月的预算,我有不同的员工,他们有不同的薪酬结构(即一些小时工,一些小时工,奖金基于估计目标等)..
我喜欢输入一个公式,然后将其复制并粘贴到多个单元格中。这就是我现在所拥有的
=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?