Предыдущая тема :: Следующая тема
|
Автор |
Сообщение |
Elfix Prizivnik - draftee

Зарегистрирован: 10.10.2008 Сообщения: 2
|
Добавлено: Пт Окт 10, 2008 12:18 pm Заголовок сообщения: Оптимизация формулы |
|
|
Привет.
Собрал полную информацию о деятельности предприятия в одной таблице, которая ежедневно увеличивается. По данным таблицы создается ежедневно отчет, который должен формироваться автоматически при указании начальной даты и конечной.
Отчет просто суммирует столбец Сумма по заданным критериям. Так как критериев много пришлось использовать формулу массива.
В общем, так выглядят все формулы в отчете:
Код: | {=СУММ(ЕСЛИ((ДДС!$C$2:$C$65536>=$C$10)*(ДДС!$C$2:$C$65536<=$D$10)*(ДДС!$P$2:$P$65536=B24);ДДС!$O$2:$O$65536))} |
Понимаю, что это не самый лучший вариант написания формул. Отчет ДДС формируется автоматом, но необходимо время ожидания примерно 20 секунд. Это не критично, но в этом же файле по подобному принципу формируется отчет по продажам и его расчет вводит машину в состояние забытия. Невозможно ни сохранить документ (так как перед сохранением производится расчет) ни открыть его (если пересчет при сохранении не состоялся, то он начинается при открытии).
Собственно, что вы подскажете для оптимизации формулы? Подразумеваю, что указывать ссылки вида $P$65536 не есть вери гуд (т. е. все 65536 строк заставлять пересчитывать). А есть ли в экселе формула, позволяющая получить диапазон только тех строк, которые существуют в таблице, не включающий пустые строки? |
|
Вернуться к началу |
|
 |
AsIs captain


Зарегистрирован: 27.01.2006 Сообщения: 250 Откуда: СПб
|
Добавлено: Пт Окт 10, 2008 6:24 pm Заголовок сообщения: |
|
|
просто глупое предложение: а использовать имена? |
|
Вернуться к началу |
|
 |
Elfix Prizivnik - draftee

Зарегистрирован: 10.10.2008 Сообщения: 2
|
Добавлено: Пн Окт 13, 2008 5:46 am Заголовок сообщения: |
|
|
Так имена в Excel'e статические. Т. е. надо явно указать диапазон. А я его точно не знаю: он ежедневно разрастается. Или может быть я с именами не умею работать? Тогда объясните как это делается. |
|
Вернуться к началу |
|
 |
AsIs captain


Зарегистрирован: 27.01.2006 Сообщения: 250 Откуда: СПб
|
Добавлено: Пн Окт 13, 2008 5:25 pm Заголовок сообщения: |
|
|
Это да, но имена намного проще изменять, чем пересматривать все формулы, где идет ссылка на этот диапазон. Одно централизованное изменение имени - и все формулы, которые его используют, обновились. |
|
Вернуться к началу |
|
 |
AsIs captain


Зарегистрирован: 27.01.2006 Сообщения: 250 Откуда: СПб
|
Добавлено: Пн Окт 13, 2008 5:28 pm Заголовок сообщения: |
|
|
Другой вариант, более эффективный - использовать списки.
Суть в том, что в подготовленной таблице щелкаем и выполняем Данные \ Список \ Создать список.
Excel выполняет необходимые внутренние преобразования, после чего автоматически расширяет необходимые диапазоны в формулах, или, допустим сводных таблицах, при добавлении новых записей в этот диапазон.
Но тут нужно проверять, в каких вариантах автоматическая коррекция диапазона работает. По крайней мере с простыми формулами - это работает нормально. |
|
Вернуться к началу |
|
 |
ann250387 Prizivnik - draftee

Зарегистрирован: 01.12.2008 Сообщения: 2
|
Добавлено: Пн Дек 01, 2008 7:38 pm Заголовок сообщения: |
|
|
Подскажите как вставить формулы в ячейки так что бы они сохранили тот же вид, что и в строке формул? |
|
Вернуться к началу |
|
 |
|