Google电子表格获取单元格指向的地址

时间:2011-11-15 17:10:17

标签: google-apps-script google-sheets google-docs

我有一个类似下表的电子表格

+---+-----------------+-----+--------------------------------+
|   |        A        |  B  |               C                |
+---+-----------------+-----+--------------------------------+
| 1 | This is my text | =A1 | 'This should be the value "A1" |
+---+-----------------+-----+--------------------------------+

其中A1是“这是我的文字”,B1是函数=A1。我需要C1的函数给我文本A1,因为那是B1指向的单元格。 INDEXINDIRECT似乎没有给我我想要的东西。

2 个答案:

答案 0 :(得分:0)

我知道没有Google Spreadsheet函数可以返回单元格的公式,但您可以使用“脚本编辑器”定义自定义函数。定义自定义函数公式,它返回单元格的公式,给定单元格的行号和列号。然后在单元格C1的公式中使用自定义函数。单元格C1的公式包含:

=formula(1,2)

这会导致单元格C1的值为字符串:

"=A1"

对单元格C1中的公式进行了一些有用的改进。首先,使用row()column()函数计算单元格引用中的行和列:

=formula( row(B1) , column(B1) )

其次,修剪=(根据您的问题陈述,您不需要):

=mid( formula(row(B1),column(B1)) , 2 , 9999 )

要定义公式功能,请转到“工具”,“脚本编辑器”,然后输入以下脚本:

function formula(r,c) {
  return SpreadsheetApp . getActiveSheet() . getRange(r,c) . getFormula() ;
}

答案 1 :(得分:0)

我知道自从提出这个问题以来已经有九年了,但是由于只有一个回复并且它以“我知道没有返回单元格公式的 Google 电子表格函数”开头,我想我会继续回答这个问题,因为实际上有一个函数可以返回单元格的公式。

=FORMULATEXT([CELL])

这将完全按照它说的做,并返回该单元格中的公式文本。从那里您可以使用标准字符串函数 LEFT、RIGHT、MID 从中提取您想要的内容。