2015-07-17 3 views
0

Я не уверен, что назвать то, что я пытаюсь сделать, поэтому поиск был жестким. В принципе, у меня есть таблица уравнений, каждая строка имеет разные уравнения/ссылки на другой столбец, но все они ссылаются на один и тот же диапазон строк. т.е. A = среднее (A200: A400), уравнение B = сумма (C200: C400) и т. Д.Excel Ссылка на ячейки для использования в формуле

Из файла в файл изменяется диапазон строк, поэтому я хочу сделать, это ввести начальную и конечную строки в ячейки и иметь их автоматическое заполнение уравнений. Если бы кто-нибудь мог сказать мне, как это сделать только для одной ячейки, а не для всего стола, я мог бы понять это оттуда.

Спасибо!

ответ

0

Звучит как функция INDIRECT выполнит это. Он позволяет вводить текст, который будет интерпретироваться как ссылка на ячейку.

Например, предположим, что вы хотите, чтобы диапазон охватывал A200:A400 для данного листа, и вы хотели, чтобы его сняли в ячейке A1 этого листа. В ячейке A1 вы просто введите в «A200: A400», а затем, в реальных уравнениях, вы бы:

=AVERAGE(INDIRECT(A1)) 

Вы можете явно разделить это дальше, но вот понятие о нем.

0

Вы можете создать форму с несколькими текстовыми полями. Введите начальную и конечную строки. Затем ваш код может пройти и ввести формулу.

Нечто подобное.

Dim lRow as long 
Dim lEnd as long 

lRow = val(txtBoxStartRow.text) 
lEnd = val(txtBoxEndRow.text) 

ws.Range("A" & lEnd + 1).Formula = "=average(A" & lRow & ":A" & lEnd & ")" 
ws.Range("C" & lEnd + 1).Formula = "=average(C" & lRow & ":C" & lEnd & ")" 
0

Это должно сделать:

=AVERAGE(INDIRECT(ADDRESS($B$1;ROW())):INDIRECT(ADDRESS($B$2;ROW()))) 

В этом коде я предполагаю, что клетки В1 и В2 содержит ограничение (вы можете заменить эти ссылки с жестким номером), чтобы использовать пример: B1 = 200 и B2 = 400.

Если вы поместите этот код в любую строку, вы получите среднее значение («rowNumber» 200: «rowNumber» 400).

Адрес() дает вам правильное задание диапазона Косвенный() делает диапазон из него Затем вы можете обернуть его в любую функцию, которая вам нравится.

+0

Спасибо, я думаю, что я попытаюсь это сделать. Я сейчас работаю над этим, но как мне указать столбец? Работает ли он во всех столбцах формулы? –

+0

использует строку, в которую вводится формула (= строка()), как определение столбца, которое должно обрабатываться в формуле. Поэтому, если вы введете эту формулу в третьей строке, обработанная будет третьей колонкой и так далее. Не имеет значения, в какую колонку вводится формула. Будьте осторожны, хотя и не имея формулы в той же строке, что и столбец, что вызовет круговую ссылку. –

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