2009-04-30 2 views
4

Я относительно новичок в программировании Excel. Я работаю над составлением листа распространения, который показывает экспоненциальный спад. У меня есть одна колонка (A1: A1000) из 1000 случайных чисел между 1 & 10 с использованием TRUNC (RAND() * 10,0) в каждой ячейке. Следующая колонка (B1: B1000) имеет логическую маску = IF (A1 = 0,1,0), где, если значение в ячейке A равно 0, тогда B-ячейка показывает 1. Затем, чтобы найти количество 0 в столбце A, у меня следующий столбец, берущий сумму B1: B1000, который возвращает число 0, появившееся в первом столбце. Я уверен, что есть более простой способ сделать это, но это, похоже, работает нормально.Задачи Excel - расчетное значение в качестве ссылки на ячейку

Вот моя проблема, надеюсь, это понятно, что я спрашиваю:

Далее, я хочу взять сумму логического столбца (B) из B1: B (1000- значение суммы из (B1: 1000)) в ячейке под ячейкой, которая вычисляет сумму (B1: B1000). Есть ли способ к алгебре в формуле ячейки для ссылки на ячейку? Более просто, если я хочу обратиться к A3, например, есть ли способ ввести что-то вроде A (2 + 1), чтобы получить A3? Имеет ли это смысл?

ответ

11

Вы можете очень легко сделать в VBA:

ActiveCell.Formula = "=A" & (2+1) & "+15" 

В Excel:

=INDIRECT(ADDRESS(2+1, COLUMN(A1)))+15 

Это позволит установить формулу "= A3 + 15". Как правило, это лучше всего делать с переменными, поэтому не забудьте сделать это.

+0

Простите мое невежество, но куда вы входите в эту формулу? – 2009-04-30 20:31:39

+0

О, это код VBA! Я отредактирую его, чтобы сделать это в ячейке Excel, извините! – Eric

+0

Спасибо! Это именно то, что я искал. – 2009-04-30 20:41:11

0

В Excel и, как указано Эриком, вы можете написать ссылку на ячейки, как обычные строки, благодаря функции INDIRECT().

Просто убедитесь, что строка, переданная в INDIRECT(), является действительной ссылкой на ячейку.

Например:

=SUM(INDIRECT("B" & 2+7*(H2-1)):INDIRECT("B"&(2+7*H2)-1))

Здесь я просуммировать 7 строк на каждую неделю (H2). Он дает сумму B2:B8, B9:B15, B16:B22 и т. Д.

Надеюсь, что мой пример поможет вам разобраться, как его использовать в реальной ситуации.

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