Можно ли автоматически подставить формулу из предыдущей ячейки в новую в excel
Имеется таблица, в которой в каждом столбце представлены значения, полученные с помощью формул.
Столбцов много и для каждого прописывать формулу будет затратно (но возможно, это единственный вариант).
Можно ли как-то автоматизировать заполнение новых полей соответствующими формулами?
Пока что вижу только такое решение (пример для одного столбца):
- получение формулы из предыдущей ячейки
cell = wc.cell(row=293, column=2)
formula = cell.value
>>> '=(List1!B353/List1!B352*100)/List1!C353*100'
- нахождение в этой формуле чисел, представляющие собой номера ячеек
import re
pattern = r'([A-Z][0-9]+)'
values = re.findall(pattern, formula)
for v in values:
print(v)
>>> B353
>>> B352
>>> C353
- затем отделить цифры от букв и увеличить каждое значение на 1 и заменить прошлое значение в формуле на новое
for v in values:
new = v[0]+int(v[1:])+1
formula = formula.replace(v, new)
print(formula)
>>> '=(List1!B354/List1!B353*100)/List1!C354*100'
- применить новую формулу к следующей ячейке
cell = wc.cell(row=294, column=2)
cell.value = formula
Источник: Stack Overflow на русском