Повторение вложенных функций в Excel - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь использовать одну единственную формулу для нескольких ячеек для вычисления значения, зависящего от конкретной строки и столбца, к которому применяется формула, но относительно самой строки. Звучит немного загадочно, поэтому пример:

У меня есть следующие три строки,
Строка 91: 10 | Пшеница | 60,00 | 0,00
Строка 92: 11 | Банан | 91,20 | 1,00
Строка 93: 12 | Молоко | 200,00 | 182,00

Где | представляет разделение между каждым столбцом, которые названы буквой (как Excel делает по умолчанию). Таким образом, значение ячейки A92 будет равно 11. Теперь столбец D генерируется по следующей формуле: =((C92/100)*D11), в основном беря значение ячейки C92 (91,20), делив его на 100, а затем умножая на любое значение содержится в ячейке D11 (в том же столбце, в котором я генерирую значение, но используя значение из столбца A для справки, на какое значение умножить).

Теперь, видя, как мне нужно использовать эту формулу во многих строках, я хочу в основном что-то вроде этого: =VALUE(=CONCATENATE("D"; ROW();)/100)*CELL("address")), но это недопустимая формула. Чтобы выразить это словами:

  1. Получить значение ячейки D + номер текущей строки (например, D9 в строке 9 и т. Д.)
  2. Разделите это на 100
  3. Умножьте это на значение буквы текущего столбца + номер текущей строки (E69 в ячейке E69 и т. Д.)

Надеюсь, у кого-то есть представление о том, как этого добиться.

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

Вы можете сделать это с помощью OFFSET, но вы можете получить циклические ссылки или ошибки, если ваши данные не чистые. =(C92/100)*OFFSET(D92,$A92-ROW(),0,1,1) OFFSET говорит: Получить значение диапазона столбца 1 строка 1, которое является (значение в A92 - номер текущей строки) смещения строк от этой строки, но в текущем столбце), который для ваших данных составляет D11

0 голосов
/ 19 октября 2011

Я думаю, что это должно сделать вашу работу:

Sub Test()
    Cells(ActiveCell.Row, "D").FormulaR1C1 = "=RC" & ActiveCell.Column & "*RC3/100"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...