2016-06-05 7 views
1

Возможно динамическое изменение адреса входной ячейки в формуле на основе содержимого в другой ячейке?Как динамически изменять входную ячейку в формуле на основе значения в другой ячейке в электронной таблице?

Скажем, у меня есть таблица (Excel или LibreOffice) с этими значениями клеток:

A1: 10 
A5: 9 
C1: 5 

Вместо жесткого кодирования =A1-A5, я хотел бы сделать что-то вроде этого: =A1-A(C1), которые будут оценены во время выполнения использовать ячейку A5 для второго ввода.

ответ

1

Использование INDIRECT принимать значение в С1 как указатель на строку, которую вы хотите в колонке А: -

=A1-INDIRECT("A"&C1) 

(тестирование в Open Office и Excel 2010)

+0

Спасибо всем ... – Robo

1

Для этого вида динамическая ссылка, вам нужна функция INDIRECT. Она принимает два аргумента INDIRECT(reference,style)

ссылки, текстовая строка, содержащая ячейку, диапазон ячеек текста или именованный диапазон

и стиль булево, что если опущен или TRUE, указывает на то, что ссылка A1 стиль, а когда FALSE, ссылка использует стиль R1C1.

поэтому в вашем случае вы можете использовать

INDIRECT("A"&C1) 

или

INDIRECT("R1C"&C1,FALSE) 
4

Решение, не volatile¹ бы быть INDEX function.

'for Excel 
=A1-INDEX(A:A, C1) 
'for OpenOffice 
=A1-INDEX(A$1:A$1048576; C1) 

nonvolatile_index
nonvolatile_index_oo


¹ Летучие функции пересчитывать каждый раз, когда что-либо в целых изменениях рабочей книги, а не только тогда, когда что-то, что влияет на их изменения конечных результатов. Примеры летучие функции: INDIRECT, OFFSET, TODAY, NOW, RAND и RANDBETWEEN. Некоторые подфункции функций рабочего стола CELL и INFO также сделают их неустойчивыми.

+1

Да, я просто заметил, что мне нужна вторая форма диапазона, когда я попробовал ее в Open Office. –

+0

Спасибо, Том. Моя OO немного устарела (мне сказали обновить, как только я ее открыл), но изображение должно продемонстрировать разницу в формуле. – Jeeped

 Смежные вопросы

  • Нет связанных вопросов^_^