Google Spreadsheet получает адрес, на который указывает ячейка - PullRequest
1 голос
/ 15 ноября 2011

У меня есть электронная таблица, как в таблице ниже

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

, где A1 - это текст "Это мой текст", а B1 - это функция =A1. Мне нужна функция для C1, которая дает мне текст A1, потому что это ячейка, на которую указывает B1. INDEX и INDIRECT , похоже, не дают мне того, что я ищу.

1 Ответ

0 голосов
/ 17 ноября 2011

Я не знаю ни одной функции Google Spreadsheet, которая возвращает формулу ячейки, но вы можете определить пользовательскую функцию с помощью редактора скриптов.Определите пользовательскую функцию формула , которая возвращает формулу ячейки с учетом номера строки и столбца ячейки.Затем используйте пользовательскую функцию в формуле ячейки C1.Формула ячейки C1 будет содержать:

=formula(1,2)

И это приведет к тому, что значением ячейки C1 будет строка:

"=A1"

Несколько полезных уточнений формулы в ячейкеС1.Во-первых, вычислите строку и столбец из ссылки на ячейку с помощью функций 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() ;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...