1

Рассмотрим некоторую функцию libreoffice-calc под названием MYFUNC которая принимает диапазон ячеек, например, A2:B40 в качестве аргумента, поэтому я могу вызвать MYFUNC(A2:B40) .

Теперь я хочу иметь возможность записать A2:B40 виде текста в другую ячейку, скажем, D4 и указать диапазон ячеек, определенный в D4 в качестве аргумента для MYFUNC . Т.е. Я хочу иметь возможность написать что-то вроде этого MYFUNC(GETCELLRANGEFROM(D4) который должен быть эквивалентен MYFUNC(A2:B40) .

1 ответ1

1

Замена GETCELLRANGEFROM(D4) на INDIRECT(D4) должна сделать то, что вы хотите достичь (учитывая, что D4 содержит строку A2:B40). Функция INDIRECT "переводит" строку в ссылку.

Вот краткий пример, как это работает:

  • От А1 до А9 содержит несколько чисел,
  • B1 имеет string значение, представляющее ссылку на столбец A;
  • C1 имеет формулу =SUM(INDIRECT(B1))

Таким образом, C1 вычисляет сумму на основе ссылочной строки в B1. Изменение B1 до A1:A7 также изменит C1 (в результате 28). Таким образом, INDIRECT "переводит" строку в ссылку, которую можно использовать в другой (окружающей) формуле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .