Финансовое моделирование — это не просто таблички. Это способ прогнозировать, принимать решения и быть на шаг впереди. Мы, финансисты, любим Excel за простоту, в то же время, ненависть к этому чудесному инструменту возрастает пропорционально количеству переменных в формулах. И, когда задач становится больше, — он начинает тормозить и сильно раздражать.
Ниже я расскажу:
Почему я, как гуманитарий, начала осваивать Python.
Как связка Excel + Python работает на практике.
Как один и тот же проект ведёт себя в этих двух мирах.
Кто я?
Меня зовут Валя. Я — экономист с гуманитарным бэкграундом. В школе мечтала стать переводчиком, выучила три иностранных языка. На экономику попала почти случайно, и с тех пор моя жизнь постепенно сместилась от слов к цифрам. В университете пришлось подружиться с математикой: мат.анализ, статистика, эконометрика — всё «как у взрослых».
Дальше был SQL, после него я поняла, какое счастье подключать технические инструменты и не «перекликивать» бесконечные таблички вручную. Со временем я начала автоматизировать свою работу и дошла до Python. Мой код прост, но он решает задачи — считает метрики, собирает отчёты и строит прогнозы. Для финансов этого уровня мне хватает.
Зачем это пишу?
Финансовое моделирование — это про деньги.

В любом бизнесе есть идея, продукт, команда. Но суть предпринимательства — в прибыли. И ещё до того, как бизнес начнёт работать, нужно понять:
будет ли вообще прибыль?
когда она появится?
сколько составит?
при каких условиях?
И вот тут в дело вступают экономисты. Мы берём будущую реальность и пытаемся её «посчитать», как правило, в Excel. Если говорить просто — строим модель, например, кофейни.
Считаем, сколько будут стоить аренда, зарплата бариста, закупка кофе и булочек. Определяем, сколько клиентов должно приходить в день, чтобы бизнес хотя бы вышел в ноль, а затем начал приносить прибыль. В результате получаем ответ: через три года проект окупится, а после этого прибыль будет такой-то. Это и есть финансовое моделирование.
Но на этом никто не останавливается. Нас спрашивают: а что, если булочки делать без изюма? Себестоимость снизится, а значит — прибыль возрастёт? А если повысить зарплату? А что, если аренда увеличится? Мы меняем параметры, строим графики, проводим анализ чувствительности, определяем точку безубыточности. Всё звучит логично и понятно — пока кейс остаётся простым.
А что если это не кофейня, а завод с 1000 единицами товара? А если бизнес работает в разных регионах, у каждого свои условия — логистика, особенности рынка? Если переменных десятки, а сценариев — сотни?
В этот момент любой здравомыслящий специалист задаёт себе вопрос: как упростить работу? Как сделать модель удобной и гибкой, чтобы можно было быстро просчитать разные сценарии, города, продукты — всё сразу?
И вот тут появляется Python. Нет, он не волшебная палочка, но очень помогает. Это не замена Excel — это его сильное дополнение. Python позволяет создать модель, в которую можно загрузить любые данные, быстро изменить параметры, прогнать множество сценариев и получить понятный результат.
Кроме того, он автоматизирует рутину, ускоряет расчёты и делает работу с моделью в целом приятнее.
Вот о чём я и пишу: хочу показать, как Python может стать настоящим помощником для финансиста.
Дисклеймер: я не претендую на роль полноценного разработчика, а показываю, как с этим работаю сама и упрощаю себе жизнь будучи финансистом в ИТ. Уверена, мой опыт найдет своего читателя :)
Excel уже не справляется

Прежде чем начать, скажу пару слов про VBA. Это рабочий инструмент, и с его помощью действительно можно решать многие задачи внутри Excel. Если вы уже умеете с ним работать, — здорово. Но если вы только ищете, с чего начать, обратите внимание на Python. Он универсальнее, выходит за рамки Excel и может использоваться гораздо шире.
Python активно помогает там, где Excel начинает тормозить. Большие объемы данных, сложные условия, многократные однотипные действия — то, что в Excel каждый раз занимает часы, в Python можно автоматизировать раз и навсегда. Особенно это важно, если вы:
готовите регулярную отчетность;
работаете с несколькими источниками данных;
строите расчеты, которые нельзя уместить в одну строку формулы.
Можно, например, строить модели прогнозирования выручки не «на глазок» через линейный тренд в Excel, а с помощью библиотеки scikit-learn или statsmodels, подгрузив реальные данные. Или подключиться к базе данных ERP-системы и брать данные напрямую — без ручного копирования из выгрузок. Это дает ощущение, что модель живая. Что вы не рождены для ctrl+C и ctrl+V.
Не конкуренты, а союзники
Не подумайте, что я призываю отказаться от Excel. Я хочу показать, что Python и Excel — это мощная связка. А Excel по-прежнему идеален для:
визуализации результатов;
сбора обратной связи от коллег;
подготовки моделей к презентации.
Python же это возможность:
углубиться в аналитику;
повысить точность расчетов;
сократить время работы с данными.
Один из самых удачных рабочих процессов: черновой расчет — в Excel, автоматизация и логика — в Python, визуализация — в Power BI или снова в Excel.
На практике именно так и бывает: Excel-модель, построенная вручную, перерастает в Python скрипт, который уже не требует человеческого участия. А ты просто проверяешь корректность и обновляешь параметры при необходимости.
Почему все больше финансистов смотрят в сторону Python
Переход к Python — это не модное веяние, а отклик на реальные вызовы профессии. Все больше мировых институтов добавляют в свои учебные программы «Python для финансистов», что позволяет освоить навыки автоматизации и продвинутого анализа данных с помощью кода. А в крупных международных компаниях Python уже вошел в список требований к финансовым аналитикам и контролерам.
Что дает Python финансисту?
Если коротко, это:
Автоматизация. Устранение повторяющихся действий (копирование данных, очистка, пересчеты).
Гибкость. Возможность строить собственные функции и модели любой сложности, а не подгонять логику под ограниченный функционал Excel.
Скорость обработки данных. Особенно важно при работе с десятками тысяч строк и интеграциями из разных источников.
Повторное использование. Один раз написанный скрипт можно запускать снова и снова, получая одинаково корректный результат.
Интеграция. Прямая работа с базами данных, API, Power BI, облачными системами (а не через промежуточные выгрузки).
Предлагаю посмотреть на сравнение Excel и Python по ключевым параметрам:
Скрытый текст
Excel |
Python |
|
Простота начала |
Очень высокая |
Средняя (нужно освоить базу) |
Скорость на малых объемах |
Отличная |
Отличная |
Работа с большими объемами |
Медленно, тормозит |
Быстро, эффективно |
Автоматизация процессов |
Ограничена |
Практически не ограничена |
Многократное использование |
Ограничено |
Не ограничено |
Визуализация |
Удобная и быстрая |
Есть, но требует настройки |
Ошибки/человеческий фактор |
Высокий риск (ручные формулы) |
Ниже (при отлаженном коде) |
Командная работа |
Часто конфликт версий, правки вручную |
Git, версии, документация |
Обучение и доступность |
Прост для новичков |
Требует погружения |
Важно: Python не заменяет Excel, он расширяет его возможности. Важное уточнение — я не призываю становиться полноценным Python-разработчиком, потому что это не так просто, как кажется. Нам, финансистам, нужно понимать структуру, уметь читать код, писать простые скрипты и разбираться в логике расчетов.
Кейс: одна и та же модель в Excel и в Python
В качестве примера я построила одну и ту же финансовую модель, предположим, той же кофейни, с несложной структурой в Excel и Python.
Чтобы понять выгоден наш проект или нет, рассчитаю несколько показателей его эффективности.
Тут под спойлером важные финансовые аббревиатуры, которые буду использовать далее по тексту:
Скрытый текст
NPV — чистая приведенная стоимость. Показатель поможет понять, сколько можно заработать на проекте с учётом того, что деньги со временем теряют ценность.
Пример: мы вкладываем 1 млн, а возвращаем 1,5 млн, но через 5 лет. Сегодняшний миллион и миллион через 5 лет — не одно и то же. NPV позволяет это учесть. Если NPV положительный — проект выгоден, если отрицательный — лучше не надо.
IRR — внутренняя норма доходности. Проще говоря: какая процентная доходность у проекта. Если IRR выше, чем ставка по вкладу в банке, то проект интересен, если ниже — не очень.
PI — индекс прибыльности. Покажет, сколько рублей прибыли мы получим с каждого вложенного рубля. Если индекс больше 1, то проект прибыльный, если меньше — мы теряем деньги.
DPBP — дисконтированный срок окупаемости. Покажет, через сколько лет вернутся наши деньги с учётом их обесценивания. То есть не просто "когда верну", а "когда верну, если считать, что деньги со временем стоят меньше".
Затем я сделала анализ чувствительности — это когда мы берём важные параметры проекта (например, сколько продаём, по какой цене, сколько тратим, какие налоги платим) и по очереди меняем их. Смотрим, как это влияет на итог — например, на прибыль или на показатель NPV.
Главная цель — найти такие «граничные» значения, при которых проект уже перестаёт быть выгодным. Например: если снизить цену на капучино ниже определённого уровня — прибыль станет ноль. Или если затраты на булочки вырастут выше определённой суммы — проект больше не окупится.
Эти «пороговые» значения называются барьерными точками. Они показывают, где проходят границы допустимого, за которыми проект становится убыточным. Это помогает понять, какие параметры критичны и что нужно особенно внимательно контролировать.
В рамках проекта у нас есть базовый сценарий:
Объем выпуска, шт. |
3 000 |
Цена единицы продукции, у.е. |
890 |
Переменные затраты, у.е. |
360 |
Норма дисконта, % |
12 |
Постоянные затраты, у.е. |
10 000 |
Амортизация, у.е. |
9 000 |
Налог на прибыль, % |
30 |
Срок проекта, лет |
8 |
Остаточная стоимость, у.е. |
9 000 |
Начальные инвестиции, у.е. |
3 500 000 |
Далее необходимо рассчитать NPV. Я решила считать все одной формулой, чтобы не увеличивать масштаб работы.
В одной формуле я рассчитала:
Выручку = объем выпуска * цена единицы продукции
Переменные затраты = объем выпуска * переменные затраты на единицу
EBIT = выручка – переменные затраты – постоянные затраты – амортизация
Чистую прибыль = EBIT * 0,7 (здесь избавляюсь от налога 30%)
Денежный поток = Чистая прибыль + амортизация
Затем в этой же формуле дисконтировала, то есть перевела будущие деньги в текущую ценность, денежный поток по годам:
6. Дисконтированный денежный поток = денежный поток / (1+норма дисконта)^год инвестиций.
Протянув формулу и суммировав все результаты с учетом инвестиций, мы получили NPV.
Формула получилась объемной. Любому, кто не участвовал в создании модели, придётся потратить время, чтобы понять, что к чему. Особенно если с финансами не на "ты".
Если в формуле случайно "слетит" закрепление ячейки, можно потерять часть расчётов.
Когда подтягиваем реальные данные — из 1С, таблиц коллег и других источников — легко ошибиться просто по невнимательности. Но, если модель маленькая, такой способ вполне рабочий.
На выполнение этих вычислений со всем наведением «красоты» мне потребовалось 3 минуты.

Для вычисления внутренней нормы доходности (IRR) использовала финансовую формулу Excel – ВСД. Но имейте в виду, если NPV будет меньше нуля, то формула не сработает.
Далее для вычисления DPBP я добавила сумму дисконтированных потоков нарастающим итогом (колонка G).
Срок окупаемости (DPBP) вычислялся «на глазок». Видно, что нарастающим итогом мы приближаемся к сумме инвестиций на 4 году жизни проекта. Значит можем 4 года суммировать с «остатком до выхода в ноль», деленным на чистый дисконтированный поток 5 года.
Опять же, здесь данных мало, невооруженным взглядом видно что и куда подставить. Даже при быстрых вычислениях и выводах можно навскидку дать прогноз окупаемости в 4 года. Если данных больше, быстрых выводов не будет.
Перед тем, как переходить к анализу чувствительности, предлагаю посмотреть на код в Python для тех же вычислений.
Сначала добавим библиотеку, необходимую для финансовых вычислений:
import numpy_financial as npf
Введем исходные данные (на этом этапе мы также можем обозначить несколько сценариев и затем рассчитывать показатели опираясь на них). При смене сценариев в Excel нам нужно будет дублировать таблицу с данными и заново настраивать вычисления. Не стоит упоминать, что визуально это будет более громоздко:
Скрытый текст
# Исходные данные
volume = 3000
price_per_unit = 890
variable_cost_per_unit = 360
fixed_costs = 10000
amortization = 9000
tax_rate = 0.30
discount_rate = 0.12
initial_investment = 3500000
project_lifetime = 8
Далее идут вычисления, которые я описывала ранее. Здесь каждый показатель считаю отдельно для наглядности. Даже если вы никогда «в глаза не видели этот ваш питон», то интуитивно понятно, что вообще происходит и какая тут финансовая математика:
Скрытый текст
# Расчет денежных потоков
cash_flows = []
for year in range(1, project_lifetime + 1):
revenue = volume * price_per_unit
variable_costs = volume * variable_cost_per_unit
ebit = revenue - variable_costs - fixed_costs - amortization
tax = max(ebit, 0) * tax_rate
net_income = ebit - tax
cash_flow = net_income + amortization
cash_flows.append(cash_flow)
# Добавляем начальные инвестиции (отрицательный поток в 0-й год)
cash_flows = [-initial_investment] + cash_flows
# Расчет NPV
npv = npf.npv(discount_rate, cash_flows)
# Расчет IRR
irr = npf.irr(cash_flows)
# Расчет PI
pi = (npv + initial_investment) / initial_investment
Тут обращу внимание на расчет срока окупаемости, выглядит сильно сложнее расчета «на глаз» в Excel. Но такой расчет, очевидно, точнее. Плюс, он классно сработает при большом исходном массиве. Думаю вы также заметили, что для всех показателей эффективности в Python есть готовая функция, в которую мы просто закладываем показатели, нам не нужно проводить именно математические вычисления, либо, как в случае IRR подбирать его вручную или через анализ данных, если NPV будет меньше нуля и формула ВСД не сработает.
Скрытый текст
# Расчет DPBP
discounted_cash_flows = [cf / (1 + discount_rate) ** i for i, cf in enumerate(cash_flows)]
cumulative = 0
dpbp = None
for i in range(1, len(discounted_cash_flows)):
cumulative += discounted_cash_flows[i]
if cumulative >= -discounted_cash_flows[0]:
prev = cumulative - discounted_cash_flows[i]
dpbp = i - 1 + (-discounted_cash_flows[0] - prev) / discounted_cash_flows[i]
break
# Вывод результатов
print(f"NPV: {npv:.2f}")
print(f"IRR: {irr:.4%}")
print(f"PI: {pi:.4f}")
print(f"DPBP: {dpbp:.2f} лет")
Результат кода получили за секунду, все работает и совпадает с нашими расчетами в Excel.

Возникает вопрос: потратила ли я больше времени на написание кода? Отвечу честно, да.
Но, что лучше, написать один раз и масштабировать за секунды или быстро собрать простенькую модель, которую нужно переделывать при любом изменении вводных?
Штош, пришло время хардкора и анализа чувствительности в Excel
Сначала я задала, в каком диапазоне будет меняться каждый параметр (например, цена от 80 до 120 рублей) и с каким шагом (например, по 5 рублей). Это нужно, чтобы по очереди “покрутить” разные сценарии и посмотреть, как каждый из них влияет на результат.
Ну и долго не думая, пошла «в лоб» — протянула пределы вправо, а ниже рассчитала NPV одной формулой (точно так же, как делала ранее) учитывая измененный параметр.


Невооруженным взглядом видно, что эта вакханалия цифр и формул может свести с ума. Здесь расчет чистого дисконтированного потока на каждый год суммируется, учитывая заданный параметр.
Затем глазками ищем, где знак «–» сменяется на «+» и примерно определяем диапазон, в котором находится барьерная точка по показателю.
Печально, но в расчётах получилось больше 900 столбцов. Ушло куча времени и нервов на то, чтобы протянуть и масштабировать эту сложную формулу. А результат всё равно получился сомнительный и не очень точный. Понятно, что для нормального ответа нужен график и дополнительные расчёты.
Прошу меня извинить, но строить графики для этого анализа уже выше моих сил.
А теперь посмотрим, как это можно сделать в Python:
Я подключаю библиотеку, которая помогает легко строить графики, считаю NPV, задаю диапазоны и шаги для нужных параметров - и сразу получаю наглядный график:
Скрытый текст
import matplotlib.pyplot as plt
# Функция для расчета NPV
def calculate_npv(volume, price, var_cost, fixed_cost, tax_rate):
cash_flows = []
for year in range(1, project_lifetime + 1):
revenue = volume * price
variable_costs = volume * var_cost
ebit = revenue - variable_costs - fixed_cost - amortization
tax = max(ebit, 0) * tax_rate
net_income = ebit - tax
cash_flow = net_income + amortization
cash_flows.append(cash_flow)
cash_flows = [-initial_investment] + cash_flows
return npf.npv(discount_rate, cash_flows)
# Анализ чувствительности
def sensitivity_analysis(param_name, values, base_params):
npvs = []
for val in values:
params = base_params.copy()
params[param_name] = val
npvs.append(calculate_npv(**params))
return npvs
# Базовые параметры
base_params = {
'volume': 3000,
'price': 890,
'var_cost': 360,
'fixed_cost': 10000,
'tax_rate': 0.30
}
# Диапазоны значений
volume_range = range(0, 6001, 100)
price_range = range(50, 2501, 50)
var_cost_range = range(5, 631, 5)
fixed_cost_range = range(5000, 1060001, 5000)
tax_rate_range = [i / 100 for i in range(5, 101, 5)]
# Построение графиков (пример: чувствительность к цене)
for param_name, value_range in [
('volume', volume_range),
('price', price_range),
('var_cost', var_cost_range),
('fixed_cost', fixed_cost_range),
('tax_rate', tax_rate_range)
]:
npvs = sensitivity_analysis(param_name, value_range, base_params)
plt.figure(figsize=(8, 4))
plt.plot(value_range, npvs)
plt.title(f"Чувствительность NPV к параметру: {param_name}")
plt.xlabel(param_name)
plt.ylabel("NPV")
plt.grid(True)
plt.show()
В итоге я трачу меньше времени и сразу получаю наглядный результат, который легко менять под разные сценарии или масштабировать.

Выводы
Если коротко: Excel — как кофе на бегу. Быстро, удобно, всегда под рукой. Когда нужно срочно что-то посчитать, показать, прикинуть — он отлично справляется. Но стоит сделать шаг в сторону от «просто посчитать NPV», как начинается формульная акробатика, зависимость от человеческого фактора и необходимость проверять каждый шаг. Особенно когда данных становится больше или требуется гибкость.
Python — совсем другая история. Это как собрать себе кофемашину, настроить помол, давление, а потом в любое утро получать идеальный результат нажатием одной кнопки. Нужно время, чтобы разобраться, да, но потом — удовольствие от того, как все работает. Расчеты прозрачные, масштабируются без слез, графики рисуются сами, сценарии меняются в одну строку, и ничего не «слетает», если ты подвинул ячейку.
В итоге все зависит от цели. Если задача — быстро показать результат или провести разовый расчет — Excel вполне подойдет. Но если вы хотите построить стабильную модель, развивать ее, играть с параметрами, тестировать гипотезы — код побеждает. Да, порог входа выше, но зато результат точнее, визуальнее и главное — устойчивее к ошибкам и изменениям.
Если вы финансист, работайте и с тем, и с тем. Excel — это ваш калькулятор, быстрый и понятный. Python — это ваш инженерный инструмент, мощный и гибкий. Не выбирайте между ними. Используйте оба — и станьте незаменимыми.
А вы где сейчас?
Продолжаете в Excel? Или уже в Python? Или ищете мост между ними?
Поделитесь, как вы решаете такие задачи. Интересно услышать кейсы от финансистов и аналитиков.
Если материал зайдет, у меня есть еще пару тем, которыми хочу поделиться)
Комментарии (16)
KEugene
10.06.2025 18:04Питон, конечно, мощный инструмент. Но у него есть важный недостаток. Вы не можете отправить файл с кодом клиенту/коллеге/начальнику со словами "посмотри, что получилось". И с печатью все не так просто. Даже предложенных майкрософт компромисс в виде вызова питона прямо в экселе не решает все эти вопросы. Печать - ок. Но вот чтобы "поиграться со значениями" надо иметь лицензию и соответствующую версию самого экселя.
В общем, все очень ситуативно.
pnmv
10.06.2025 18:04на vba можно писать полноценные проекты, без использования "ручных формул". при необходимости, можно их задавать, прямо из vba. то есть, нет необходимости шерстить руками таблицы.
однако, в зависимости от версии, порог вхождения, в определенных моментах, может превышать питоновский.
Dr_Faksov
10.06.2025 18:04Уважаемый автор, а вы умеете работать с VBA? Он, конечно не для любой задачи во Вселенной, как Питон (хотя есть DOOM написанный на VBA), но, вообще говоря, для всего MS Office, а не только для Excel. И да VBA не есть EXCEL, это не "формулы в ячейках", это макросы, выражаясь по простому. Это то, что появляется на экране по Alt-F11.
Для того чтобы сравнивать насколько хорош, в вашем случае, Питон в Excel, надо вашу формулу написать в VBA и сравнить быстродействие. И что-то мне подсказывает, что вас ждёт сюрприз. Хотя бы потому, что " 900 столбцов " не понадобятся. Всего одно слово - "массивы". Но надо уметь.
А ещё мне что-то подсказывает, что если вашу
абраккадабруформулу разделить на 10, к примеру, формул, которые можно понять с одного взгляда, то быстродействие тоже не останется равнодушным к этому подвигу.Вы пишите "Любому, кто не участвовал в создании модели, придётся потратить время, чтобы понять, что к чему." А почему люди должны тратить своё время на понимание ваших "формул"? Может просто научится писать кратко и понятно? Это сложно, я понимаю. И надо тратить своё время, которого жалко. Это на чужое время - насрать. Валить всё в кучу - проще. Вот только отлаживать такую кучу...
В тех кругах, где я общаюсь, за такие формулы,
бьют по лицувысказывают сомнения в профпригодности и компетентности. Что поделать - круги такие.wl2776
10.06.2025 18:04Вы пишите "Любому, кто не участвовал в создании модели, придётся потратить время, чтобы понять, что к чему." А почему люди должны тратить своё время на понимание ваших "формул"? Может просто научится писать кратко и понятно?
Полностью согласен. Программирование это социальная дисциплина. Только надо, как сказал когда-то Дейкстра, "сосредоточиться не на том, чтобы объяснять компьютеру, что мы от него хотим, а на том, чтобы людям объяснить, что мы хотим от компьютера".
valentina_di Автор
10.06.2025 18:04Да, с VBA я знакома и понимаю, что это полноценный инструмент, не ограниченный формулами в ячейках. Конечно, можно решить ту же задачу через макросы, используя массивы и грамотную структуру кода — и, скорее всего, это даст прирост производительности. Но моя цель в статье была не в том, чтобы противопоставить Python и VBA, а скорее показать направление тем, кто только начинает.
Если человек пока не знает ни того, ни другого, и планирует расти не только в рамках Excel, а, скажем, в сторону автоматизации, анализа данных, работы с API и так далее — Python даёт шире возможности. Именно в этом контексте я упомянула его как более универсальный выбор для старта.
Что касается расчётов — вы правы, что их можно и нужно упрощать. Пример в статье специально сделан утрированным: в реальных моделях я, конечно, тоже за краткость, читаемость и поддерживаемость. Но в учебных целях, на мой взгляд, полезно иногда показать сам принцип построения шагов, даже если они избыточны.
Спасибо, что обратили внимание на важность этих моментов. Полностью согласна: лаконичность и прозрачная логика — это уважение к коллегам и к будущему себе. Постараюсь в следующих материалах делать оговорки, чтобы такие моменты не воспринимались как небрежность или отсутствие профессионализма.
Рада, что статья вызвала отклик — это помогает расти и писать лучше. Ещё раз спасибо за обратную связь!)
nomorewar
10.06.2025 18:04Как человек, писавший на VBA, спрошу: а зачем? Питон однозначно лучше. ВБА уже больше мертв, чем жив. Да и вендор лок.
Dr_Faksov
10.06.2025 18:04Зачем? Первое, что в голову пришло - для использования связки Excel+VBA нужен только Excel. И это - один файл. Удобный для пересылки, к примеру. Который можно использовать там, где есть только Excel. Безотносительно к другому программному обеспечению.
Excel входит в списки программного обеспечения, допущенного к работе с документами с грифом "секретно\конфиденциально". А Питон? И ВСЕ его библиотеки? Это второе, что в голову пришло.
Я не спорю, что Питон во многом лучше. Но "лучше" далеко не всегда синоним "удобнее". Человеческие ноги по проходимости лучше колеса. Значит ли это, что когда есть выбор, то передвигаться в экспедиции лучше пешком, чем автотранспортом ? А болид "Формула -1" гораздо лучше "Ролс-Ройса" по динамике, управляемости, безопасности и престижности (стать владельцем "Ролс-Ройса" гораздо проще и дешевле). Вот только он ни разу не удобнее "Ролс-Ройса".
ParshinSA
10.06.2025 18:04Excel входит в списки программного обеспечения, допущенного к работе с документами с грифом "секретно\конфеденциально". А Питон? И ВСЕ его библиотеки?
В больших компаниях следят за информационной безопасностью и "дырками" в библиотеках. Но с чем возникнут проблемы - если кто захочет воспроизвести весь расчет: придется устанавливать python и все его библиотеки... или упаковывать решение в продукт.
RKrop
10.06.2025 18:04А я придумал, как сократить вашу экселевскую формулу как минимум на два символа! Вот эти два символа - ^1 - можно смело убрать и результат не изменится ;)
В целом я согласен с автором, что если питон (или любой другой инструмент) позволяет сэкономить время и нервы, то обязательно нужно этим пользоваться. Особенно, в российском бизнесе, где крайне велика вероятность того, что большой начальник (он же ЛПР, т. е. лицо, принимающее решения) посмотрит на принесённые ему цифры, отложит бумагу в сторону и скажет примерно следующее "уважаемые коллеги, это всё конечно хорошо, но учитывая обстоятельства, мы будем действовать по-другому" (нецензурные междометия из речи ЛПР я предусмотрительно вырезал).
leo_noir
10.06.2025 18:04Я работаю на одного из ведущих поставщиков информационных услуг для финансовых рынков, наша компания обслуживает все крупнейшие банки, финансовые институты и корпорации в мире. На примере клиентской выборки в пределах 100 тыс чел. скажу, что excel пока что остается предпочтительным, несмотря на неудобства с формулами, как в вашем примере.
Среди наших продуктов есть как своя (адаптированная) версия jupyterhub с предустановленными финснвовыми библиотеками и обертками к API для работы с рыночными данными и функционалом для финансового инжениринга, так и собственные надстройки для excel. Число клиентов, переходящих с excel на питон для решения повседневных задач растёт, но очень медленно. Основная масса трейдеров и аналитиков всё равно предпочитает традиционный excel. Я конечно, не говорю про квантов или рисковиков - для них у нас есть целое направление решений.
А вы пробовали использовать xlwings?
valentina_di Автор
10.06.2025 18:04Спасибо за комментарий — очень интересно было прочитать про ваш опыт и инфраструктуру. Да, Excel пока точно живее всех живых, особенно в повседневной работе. И несмотря на возможные неудобства с формулами, многим он просто привычнее и быстрее.
Про xlwings, раньше не использовала, но сейчас прочитала подробнее - буду погружаться. Я осваиваю Python в процессе работы, и хотя уже активно применяю его для автоматизации и аналитики, некоторые подходы пока ещё интуитивные. Постепенно развиваю навыки, изучаю best practices и ищу новые пути. Спасибо, что поделились — возьму на заметку и обязательно протестирую!
s1301
10.06.2025 18:04Смотрите, у Вас получается PI меньше единицы, а проект получается не выгоден экономически, но NPV положителен, значит есть ошибка. Вы делите чистую приведенную стоимость на затраты, а надо было просуммировать дисконированный денежный поток и разделить на затраты. для указанного проекта PI получился около 1,57. Вы можете поступить по-другому: от чистой приведенной стоимости (NPV) отнимите затраты (не ошибитесь со знаком!), потом разделите на затраты, получите то же
valentina_di Автор
10.06.2025 18:04Спасибо большое за комментарий и точное замечание! Вы правы — в расчете PI действительно была ошибка, и я уже внесла правки в статью. Благодарю за внимательность и участие — это помогает повысить точность и качество материала.
ParshinSA
10.06.2025 18:04Учитывая развитие современных технологий добавлю: подобные короткие скрипты и вывод графиков в python можно нагенерировать в ChatGPT (чем иногда и занимаюсь, но не в финансах). Причем иногда это быстрее чем прочитать в том же ChatGPT про решение той или иной задачи в excel. Поэтому порог входа в python становится ниже, и с использованием LLM типовые задачи решаются быстрее чем может показать.
Но для демонстрации excel и вправду удобнее с учетом его распространения.
P.S. Спасибо автору за интересный практичный кейс программирования для непрограммистов!
UkfdysqYfxfkmybr
Финансисты и экономисты это не гуманитарии. Микроэкономика это вообще точная наука.
denartonhabr
Упоминается гуманитарный бэкграунд, экономист и финансист было позже