Оптиизация формулы, как снизить нагрузку файла?
negodyaj
Дата: Понедельник, 24.06.2019, 14:56 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Всем доброго дня! Формула расчет экспоненциальной скользящей средней, при динамическом периоде расчета.Код
=ЕСЛИ(A16>=$I$3;ЕСЛИ(D15=ЛОЖЬ;СРЗНАЧ($C$2:ДВССЫЛ("C"&$I$3+1));(2/($I$3+1))*C16+(1-(2/($I$3+1)))*D15);ЛОЖЬ)
Период записан в ячейке и равен 15 Алгоритм В первых D+"I3-1" ячейках написать ЛОЖЬ В ячейке D+"I3" записать ср.значение последних "I3" ячеек по столбцу C в D+"I3+1" записать формулу "Код
=(2/($I$3+1))*C17+(1-(2/($I$3+1)))*E16
" Проблема в то что эта формула грузит сильно систему если растянуть в 15.000 строк, как можно ее оптимизировать? Файле более наглядно все выглядит.
Всем доброго дня! Формула расчет экспоненциальной скользящей средней, при динамическом периоде расчета.Код
=ЕСЛИ(A16>=$I$3;ЕСЛИ(D15=ЛОЖЬ;СРЗНАЧ($C$2:ДВССЫЛ("C"&$I$3+1));(2/($I$3+1))*C16+(1-(2/($I$3+1)))*D15);ЛОЖЬ)
Период записан в ячейке и равен 15 Алгоритм В первых D+"I3-1" ячейках написать ЛОЖЬ В ячейке D+"I3" записать ср.значение последних "I3" ячеек по столбцу C в D+"I3+1" записать формулу "Код
=(2/($I$3+1))*C17+(1-(2/($I$3+1)))*E16
" Проблема в то что эта формула грузит сильно систему если растянуть в 15.000 строк, как можно ее оптимизировать? Файле более наглядно все выглядит. negodyaj
К сообщению приложен файл:
_EMA.xlsx
(12.2 Kb)
Сообщение отредактировал negodyaj - Понедельник, 24.06.2019, 14:58
Ответить
Сообщение Всем доброго дня! Формула расчет экспоненциальной скользящей средней, при динамическом периоде расчета.Код
=ЕСЛИ(A16>=$I$3;ЕСЛИ(D15=ЛОЖЬ;СРЗНАЧ($C$2:ДВССЫЛ("C"&$I$3+1));(2/($I$3+1))*C16+(1-(2/($I$3+1)))*D15);ЛОЖЬ)
Период записан в ячейке и равен 15 Алгоритм В первых D+"I3-1" ячейках написать ЛОЖЬ В ячейке D+"I3" записать ср.значение последних "I3" ячеек по столбцу C в D+"I3+1" записать формулу "Код
=(2/($I$3+1))*C17+(1-(2/($I$3+1)))*E16
" Проблема в то что эта формула грузит сильно систему если растянуть в 15.000 строк, как можно ее оптимизировать? Файле более наглядно все выглядит. Автор - negodyaj Дата добавления - 24.06.2019 в 14:56
_Boroda_
Дата: Понедельник, 24.06.2019, 15:10 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16912
Репутация:
6616
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
ДВССЫЛ и прочие волатильные функции пересчитываются при любом изменении, поэтому их лучше без крайней необходимости не использовать. Попробуйте вот такКод
=ЕСЛИ(A2>=$I$3;ЕСЛИ(D1=ЛОЖЬ;СРЗНАЧ($C$2:ИНДЕКС($C:$C;$I$3+1));(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1);ЛОЖЬ)
Остальную часть формулы оставил как есть
ДВССЫЛ и прочие волатильные функции пересчитываются при любом изменении, поэтому их лучше без крайней необходимости не использовать. Попробуйте вот такКод
=ЕСЛИ(A2>=$I$3;ЕСЛИ(D1=ЛОЖЬ;СРЗНАЧ($C$2:ИНДЕКС($C:$C;$I$3+1));(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1);ЛОЖЬ)
Остальную часть формулы оставил как есть _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение ДВССЫЛ и прочие волатильные функции пересчитываются при любом изменении, поэтому их лучше без крайней необходимости не использовать. Попробуйте вот такКод
=ЕСЛИ(A2>=$I$3;ЕСЛИ(D1=ЛОЖЬ;СРЗНАЧ($C$2:ИНДЕКС($C:$C;$I$3+1));(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1);ЛОЖЬ)
Остальную часть формулы оставил как есть Автор - _Boroda_ Дата добавления - 24.06.2019 в 15:10
китин
Дата: Понедельник, 24.06.2019, 15:10 |
Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
Так?Код
=ЕСЛИ($A2=$I$3;СРЗНАЧ($C$2:ИНДЕКС($C$2:$C$1000;$I$3));ЕСЛИ($A2>$I$3;(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1;ЛОЖЬ))
Так?Код
=ЕСЛИ($A2=$I$3;СРЗНАЧ($C$2:ИНДЕКС($C$2:$C$1000;$I$3));ЕСЛИ($A2>$I$3;(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1;ЛОЖЬ))
китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Так?Код
=ЕСЛИ($A2=$I$3;СРЗНАЧ($C$2:ИНДЕКС($C$2:$C$1000;$I$3));ЕСЛИ($A2>$I$3;(2/($I$3+1))*C2+(1-(2/($I$3+1)))*D1;ЛОЖЬ))
Автор - китин Дата добавления - 24.06.2019 в 15:10
китин
Дата: Понедельник, 24.06.2019, 15:14 |
Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
[offtop]Саша дык у кого там мысли сходятся????
[offtop]Саша дык у кого там мысли сходятся???? китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение [offtop]Саша дык у кого там мысли сходятся???? Автор - китин Дата добавления - 24.06.2019 в 15:14
_Boroda_
Дата: Понедельник, 24.06.2019, 15:18 |
Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16912
Репутация:
6616
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
[offtop]Дык у мы, молодцов таких[/offtop]
[offtop]Дык у мы, молодцов таких[/offtop] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение [offtop]Дык у мы, молодцов таких[/offtop] Автор - _Boroda_ Дата добавления - 24.06.2019 в 15:18
negodyaj
Дата: Понедельник, 24.06.2019, 17:32 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо! Формула _Boroda_ даже еще быстрее работает!
Спасибо! Формула _Boroda_ даже еще быстрее работает! negodyaj
Ответить
Сообщение Спасибо! Формула _Boroda_ даже еще быстрее работает! Автор - negodyaj Дата добавления - 24.06.2019 в 17:32