【问题标题】:Google Spreadsheet get address that cell points to谷歌电子表格获取单元格指向的地址
【发布时间】:2011-11-15 17:10:16
【问题描述】:
我有一个如下表所示的电子表格
+---+-----------------+-----+--------------------------------+
| | A | B | C |
+---+-----------------+-----+--------------------------------+
| 1 | This is my text | =A1 | 'This should be the value "A1" |
+---+-----------------+-----+--------------------------------+
其中A1 是文本“这是我的文本”,B1 是函数=A1。我需要C1 的函数,它给我文本A1,因为这是B1 指向的单元格。 INDEX 和 INDIRECT 似乎没有给我我想要的东西。
【问题讨论】:
标签:
google-apps-script
google-sheets
google-docs
【解决方案1】:
我知道没有返回单元格公式的 Google 电子表格函数,但您可以使用脚本编辑器定义自定义函数。定义一个自定义函数formula,它返回单元格的公式,给定单元格的行号和列号。然后在单元格C1的公式中使用自定义函数。单元格 C1 的公式将包含:
=formula(1,2)
这将导致单元格 C1 的值成为字符串:
"=A1"
对单元格 C1 中的公式进行了一些有用的改进。首先,使用row() 和column() 函数从单元格引用中计算行和列:
=formula( row(B1) , column(B1) )
其次,修剪掉=(根据您的问题陈述,您不想要):
=mid( formula(row(B1),column(B1)) , 2 , 9999 )
要定义函数formula,请转到工具、脚本编辑器,然后输入以下脚本:
function formula(r,c) {
return SpreadsheetApp . getActiveSheet() . getRange(r,c) . getFormula() ;
}
【解决方案2】:
我知道这个问题被问到已经有九年了,但由于只有一个响应,并且它以“我知道没有返回单元格公式的 Google 电子表格函数”开头,我想我会继续回答这个问题,因为实际上有一个函数可以返回单元格的公式。
=FORMULATEXT([CELL])
这将完全按照它所说的那样执行并返回该单元格中的公式文本。从那里您可以使用标准的字符串函数 LEFT、RIGHT、MID 来提取您想要的内容。