|
|
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Преамбула: Есть сложная модель. Представляет собой екселевский док с 40-50 тыс строк и 150-200 полей (50-60 мб). Она и так еле ворочается - отжирает по 2гб памяти, долго открывается, долго производятся любые изменения в формулах. Показываю начальству - начинают ворчать, что сложные формулы, очень трудно понять, инвесторы не захотят в этом разбираться и пошлют всех подальше :( Суть вопроса: Я могу упростить формулы, увеличив количество стоблцов (разделив формулы на части). Сделает это модель шустрее или нет? Пример вычисления: В каждой строке считается определнный коэффициент f для каждого месяца. Он представляет собой последовательное произведение нескольких других коэффициентов q n . Для i столбцов (i - количество месяцев, обычно 60-80) мы имеем в каждой n-ой ячейке (n от 1 до i) произведение[k от 1 до n](q k ) Формула не сложная, но для большого количества строк считается довольно долго. Соответственно, я могу упростить формулу, добавив i столбцов (по 1 для каждого месяца), где каждое следующее поле вычисляется, как предыдущее умноженное на q n . Это снизит сложность формул, но добавит к существующим 150-200 полям еще 60-80. Таким образом, что ексель лучше "пережует", более сложные формулы или 2,5-4 млн ячеек с простыми формулами? Очевидно, что для понимания легче добавить колонок, но как оно будет работать - не знаю. Всем заранее спасибо. Извиняюсь, если что непонятно изложил, замучен работой по самое некуда :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 16:41 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenko файл тормозит из за того, что он обновляет данные. Хотел спросить, данные откудова берутся? Сводная или вручную вносите? Если сводная, то поставте в свойствах не сохранять данные. Будет меньше занимать места и быстрее открываться. Пока это все что я могу сказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 16:52 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
формулы в книгах занимают очень много места, поэтому при добавлении колонок и размер файла значительно вырастет, и тормозить больше будет. А вообще с таким немаленьким объемом данных нужно переходить на что-то более серьезное чем Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:39 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
-O_o-, Данные вносятся вручную. Самые "заколебучие" тормоза - при попытке вставить строку/столбец посреди модели. Для того, чтобы заполнить формулами 20 тыс строк оставлял на ночь :( Один из заколебучих моментов, что когда модель считается, то задействуются все ядра процессора, а когда я "протягиваю" (кажется, по-человечески это называется "автозаполнение") формулы - только одно и выполняет это мучительно долго.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:42 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
fortik, На что, например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:42 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
MS Access - расчеты, завершающая стадия - Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:46 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
ну или как вариант - перенести формулы в макросы (WorksheetFunction), заполнять только результаты и не циклом, а сразу массивом (т.е. создаем массив Array(i,j), в макросе заполняем его значения, а потом sheet("лист1").Range(...)=Array()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:49 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
+ в макросе можно использовать несложные формулы и не добавлять дополнительные столбцы - потрудиться чтобы циклов поменьше было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:51 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
fortik, Я не силен в Access, но с таким же успехом я могу загнать все в базу MS SQL Server, все необходимые assumptions моей модели передать через MS Query и получить результат назад в Excel. Но это не наглядно. Моя модель должна быть наглядной и понятной для коллег-аналитиков и начальства. Оптимальный вариант с этой точки зрения - Excel или что-то подобное (spreadsheet). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 17:56 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
fortik, А по поводу идеи перенести все в макросы - думаю, решение практичное, но теряет одно из основных преимуществ Екселя - наглядность. Но все равно, большое спасибо за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 18:08 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenkofortik, Я не силен в Access, но с таким же успехом я могу загнать все в базу MS SQL Server, все необходимые assumptions моей модели передать через MS Query и получить результат назад в Excel. Но это не наглядно. Моя модель должна быть наглядной и понятной для коллег-аналитиков и начальства. Оптимальный вариант с этой точки зрения - Excel или что-то подобное (spreadsheet). цитируя одного из участников данного форума "Один пытается отрубить себе руку, чтобы проверить не легче локтем забивать гвозди, другие ему помогают".... Попробуйте отрубить руку так: Сложную формулу превратить в некий VBA вариант и сделать help к этим формулам. А для увеличения быстродействия вычислениями заниматься только в том сегменте где это требуется. Ну например ссылается формула на Range. Вы не весь Range перекалькулируете, а только те ячейки, которые имеют определенный признак Вашего коэффициента. Или загоняете весь Range в рекордсет и sql-ите его. ну в общем чтонить в таком духе. Имхо 10 маленьких формул не будут быстрее 100 тут нужно именно калькуляцию упрощать. Учить эксель уходить от ненужых расчетов. А проверить вы это можете ручками возьмите 5% своего документа и в макросе посчитайте время выполнения первого варианта и второго. Есть такой метод у активщит - калькулейт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 18:10 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenkofortik, А по поводу идеи перенести все в макросы - думаю, решение практичное, но теряет одно из основных преимуществ Екселя - наглядность. Но все равно, большое спасибо за советы. если правильно описать формулу (название переменных и т.п.) наглядность не пропадет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 18:12 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Не согласен с утверждением, что раздробленная на части формула "тормознутее" целой. Вернее, не совсем согласен. Все зависит от того, какая исходная формула. Например, формула массива, в которой несколько раз обсчитывается диапазон, будет работать медленнее, чем облегченные части, которые не будут выполнять лишнего. Ускорения расчетов можно добиться и усложнением формул. Пример из практики - файл с массой ВПР . При введении проверки через ЕСЛИ значительная часть функций была отсечена, время пересчета уменьшилось на треть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 01:29 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
vikttur, В данном случае будет меньше вычислений, но и без того не маленький файл раздуется еще больше, что сделает работу ним более тормознутой. Кстати, vlookup часто можно заменить на sumif/sumifs ,если записи уникальны. Кто-то знает, какие особенности работы этих формул? Что быстрее в каких случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 12:29 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenko Кстати, vlookup часто можно заменить на sumif/sumifs ,если записи уникальны. Кто-то знает, какие особенности работы этих формул? Что быстрее в каких случаях?ВПР быстрее СУММЕСЛИ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 12:50 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
ВПР ищет до первого вхождения, СУММЕСЛИ лопатит весь массив. Если искомого значения нет, ВПР нужно подпереть костылем - проверкой на ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 02:31 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Как и Maxim Radchenko fortik, А по поводу идеи перенести все в макросы - думаю, решение практичное, но теряет одно из основных преимуществ Екселя - наглядность. Предложу пойти дальше, чем просто считать все в макросах. После подсчета Вы получаете файл с посчитанными данными(без формул), но никто не мешает: 1) создать дополнительный лист, в котором в аналогичных ячейках будут храниться формулы, по которым все считается, как текст 2) или повесить события на правый клик мыши по ячейке(или что-либо подобное), по которому будет появляться форма с описанием, того как считалась выбранная ячейка. 3) или еще что-нибудь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 13:15 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Откуда эти "Как и" взялись... это очепятка была ) Ко второму пункту прошлого поста - можно еще по клику по посчитанной ячейке выделять цветом, те от которых она зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 13:19 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Пока все решилось использованием Table. Ячейки заполняются формулами довольно быстро, считается тоже. Те же рассчеты для 100 000 записей обрабатываются намного быстрее, чем простыми формулами для 25 000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 10:31 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenko, что такое Table? А разве до этого у Вас не таблицы были? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:09 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Shamanus, Table это вот такая штука, которая появилась в 2007 екселе. http://www.google.com/search?aq=0&oq=excel+2007+table&sourceid=chrome&ie=UTF-8&q=excel+2007+tables Там немного менее удобно писать формулы, зато потом они работают для любого количества строк без изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:24 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenko, это не фишка 2007 экселя, это умеет и 2003. Называется список. и кстати, процесс, который при этом происходит похож на Я чуть ранееИли загоняете весь Range в рекордсет и sql-ите его.читайте тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 13:11 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 14:04 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Maxim Radchenko Это разные вещи, насколько я знаю. а Вы попробуйте потом расскажете По функционалу имхо одно и тоже кроме свистелки перделки в 2007 в виде стилей оформления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 14:11 |
|
||
|
Excel: Больше ячеек VS сложные формулы
|
|||
|---|---|---|---|
|
#18+
Shamanus, Использую и то и другое постоянно. Data tables чаще всего применяю для sensitivity analysis. С помощью tables удобно оформлять то, что должно быть как база данных (список товаров и т.п.). Потом у тебя есть named range к которому ты можешь обращаться как к базе (напр, формула =sum(list[amount]) выдает сумму поля amount для всех записей в таблице list). Очень удобно то, что когда нужно добавить какое-то количество строк в эту базу, то можно просто их вставить, они включатся в таблицу и автоматически включатся в формулы. Когда сложная модель, это довольно критично, так как пришлось бы перелопатить несколько десятков формул. Я не очень много работал с 2003 екселем, и возможно чего-то не знаю из истории развития этих фич, но насколько мне сказали, эта фишка появилась в 2007. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36869726&tid=2177613]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 406ms |

| 0 / 0 |
