【发布时间】:2014-12-18 18:42:43
【问题描述】:
如何从单元格中获取文字值(公式)而不是结果值?
所需示例:
- A2:“富”
- B3:“=A2” - 所以它显示“Foo”
- C3:“=CELL("formula", B3)" 显示“=A2”
当然,CELL() 不支持“公式”参数,这只是为了演示意图。我查看了函数列表,但没有任何反应。
用例:
我想引用另一行,并根据该引用从该行中获取其他单元格。放置明确的行号将不起作用(例如 B3 = "2"),因为在修改行时它不会自动更正。具体来说,我希望一行中的多个列与另一行中的列相关,并且能够在一个位置更改相对行,而无需编辑每一列。
通常,要使一行相对于另一行,您可以这样放置列值:“=A2+5”和“=B2+10”。这意味着A列是“相对行值+5”,B列是“相对行值+10”。如果要更改相对行(例如更改为第 56 行),则需要将每一列更改为“=A56+5”和“=B56+10”。如何通过仅编辑一个字段来完成此操作?
举一个实际的例子,考虑一个包含任务列表的工作表,每个工作表都可能被标记为“跟随”另一个,以便计算结束日期,但您希望能够更改参考任务并支持任务之间的 N:1 关系。
[更新]
实际上,我确实有针对特定用例的解决方案。但我仍然对最初的问题感到好奇:获取单元格中值背后的公式。
解决方案 1: - A2:“=行()” - B2:“富” - C3:“=A2”显示“2”并在添加/删除行时自动调整以保持引用
解决方案 2:
另一种解决方案是添加一个唯一的“id”列并按 id 存储引用,然后使用 LOOKUP() 查找该行。
【问题讨论】:
-
我仍然在努力理解您的用例,并希望听到您对它进行一些扩展。但是有两件事:1. 无法使用本机电子表格函数访问与单元格关联的公式,以及 2. 我不确定 INDIRECT 函数是否对您有用。
-
1.这回答了我的问题,谢谢,但是我如何使用脚本 API 访问它? 2. 一旦你有了行号,INDIRECT 很有用,如果你想为特定列加上前缀,但不想得到公式。用例:我扩展了问题描述。
-
所以你不能拥有
=INDIRECT("A"&A1)+5、=INDIRECT("B"&A1)+10等? -
差不多。一项要求是只能在一处更改参考行。因此,如果“1”是您希望第 2 行引用的行,那么您将执行
B2: =A1、C2: =INDIRECT("C"&B2)+5、D2: =INDIRECT("D"&B2)+10,其中A1: =ROW()。然后,如果您想将第 2 行的值更改为相对于第 42 行,那么您只需更改一处B2: =A42。 -
那么也许只是 B2:
=ROW(A42)?
标签: google-sheets google-sheets-formula