Для эффективного использования формул необходимо ознакомиться с тремя ключевыми понятиями.
Вычисление — это процесс расчета по формулам и последующего отображения значений результатов в ячейках, содержащих формулы. Во избежание ненужных вычислений, которые забрать время и замедлить работу компьютера, Microsoft Office Excel автоматически пересчитывает формулы только при изменении влияющих на формулу ячеек. Это является стандартной процедурой при первом открытии книги и ее редактировании. Однако тем, как и когда Excel будет пересчитывать формулы, можно управлять.
Итерация — это повторный пересчет на отдельном числовом условии. Excel не может автоматически вычислить формулу, которая ссылается (прямо или косвенно) на ячейку, содержаную эту формулу. Это называется циклской ссылкой. Если формула ссылается на одну из собственных ячеек, необходимо определить, сколько раз она должна пересчитываться. Цикловые ссылки могут итерироваться бесконечно. Тем не менее, вы можете сами задать предельное число итераций и относительную погрешность.
Точность — это показатель степени сходимости вычислений. Excel хранит и выполняет вычисления с точностью 15 значащих цифр. Однако существует возможность изменить точность вычислений, так что Excel при пересчете формул будет использовать для вычислений не хранимое, а отображаемое значение.
Во время вычислений можно выбирать команды и выполнять ввод чисел или формул. Для выполнения команд или других действий вычисления прерываются, а затем возобновляются снова. Если книга содержит большое число формул либо листы содержат таблицы данных или функции, автоматически пересчитываемые при каждом пересчете книги, процесс вычислений может занять значительное время. Он также может быть длительным, если листы содержат связи с другими листами или книгами. Можно изменить способ выполнения вычислений, установив параметр пересчета вручную.
Важно: Изменение любого из этих параметров влияет на все открытые книги.
-
На вкладке Файл нажмите кнопку Параметры и выберите категорию Формулы.
В Excel 2007 нажмите кнопку «Microsoft Office»,выберите «Параметры Excel»и щелкните категорию «Формулы».
-
Выполните одно из указанных ниже действий.
-
Для пересчета всех зависимых формул при каждом изменении значения, формулы или имени в разделе Параметры вычислений в группе Вычисления в книге выберите пункт Автоматически. Это — способ вычислений по умолчанию.
-
Чтобы пересчитать все зависимые формулы, кроме таблиц данных, при каждом изменении значения, формулы или имени в разделе «Параметры вычислений» в разделе «Вычисления книги» выберите значение «Автоматически» за исключением таблиц данных.
-
Для отключения автоматического пересчета и выполнения пересчета открытых книг только при явном требовании (с помощью клавиши F9) в разделе Параметры вычислений в группе Вычисления в книге выберите параметр Вручную.
Примечание: При выборе параметра Вручную Excel автоматически устанавливает флажок Пересчитывать книгу перед сохранением. Если сохранение книги занимает много времени, для его экономии снимите флажок Пересчитывать книгу перед сохранением.
-
Для ручного пересчета всех открытых книг, включая таблицы данных, и обновления всех открытых листов диаграмм на вкладке Формулы в группе Вычисление нажмите кнопку Пересчет.
-
Для ручного пересчета активного листа, всех диаграмм и листов диаграмм, связанных с этим листом, на вкладке Формулы в группе Вычисление нажмите кнопку Произвести вычисления.
-
Совет: Многие из этих параметров можно изменять и вне диалогового окна Параметры Excel. Откройте вкладку Формулы и в группе Вычисления щелкните элемент Параметры вычислений, а затем — Выполнять автоматически.
Примечание: Если лист содержит формулу, связанную с непересчитанным листом, и эта связь обновляется, появится сообщение о том, что исходный лист полностью не пересчитан. Для обновления связи с текущим значением, записанном в исходном листе, даже если оно неверно, нажмите кнопку ОК. Для прекращения обновления связи и использования предыдущего значения, полученного из исходного листа, нажмите кнопку Отмена.
Действие |
Клавиши |
Пересчет измененных после последнего вычисления формул и формул, зависящих от них, во всех открытых книгах. Если задан автоматический пересчет книги, нажимать клавишу F9 для пересчета не требуется. |
F9 |
Пересчет измененных после последнего вычисления формул и формул, зависящих от них, в активном листе. |
SHIFT+F9 |
Пересчет всех формул во всех открытых книгах независимо от того, были ли они изменены после прошлого пересчета. |
CTRL+ALT+F9 |
Проверка зависимых формул, а затем пересчет всех формул во всех открытых книгах независимо от того, были ли они изменены после прошлого пересчета. |
CTRL+SHIFT+ALT+F9 |
-
На вкладке Файл нажмите кнопку Параметры и выберите категорию Формулы.
В Excel 2007 нажмите кнопку «Microsoft Office»,выберите «Параметры Excel»и щелкните категорию «Формулы».
-
В разделе Параметры вычислений установите флажок Включить итеративные вычисления.
-
Чтобы установить максимальное число пересчетов, введите в поле Предельное число итераций число итераций. Чем больше число итераций, тем больше времени потребуется для пересчета листа.
-
Для установки максимальной разности между результатами пересчетов введите ее в поле Относительная погрешность. Чем меньше это число, тем точнее результат, и тем больше времени требуется на пересчет листа.
Примечание: «Поиск решения» и «Поиск цели» — это часть набора команд, иногда называемых инструментами анализ «что если» средств. Обе команды используют итерацию контролируемым способом для получения нужных результатов. С помощью функции «Поиск решения» можно найти оптимальное значение для определенной ячейки, настроив значения в нескольких ячейках или применив определенные ограничения к одному или нескольким значениям в вычислениях. Если вы знаете нужный результат одной формулы, но не входные значения, необходимые для его определения, можно использовать средству поиска целью.
Изменяя точность вычислений в книге, необходимо учитывать важные факторы, указанные ниже.
По умолчанию в вычислениях используются хранимые, а не отображаемые значения
Отображаемые и печатаемые значения зависят от выбора формата и отображения хранимых значений. Например, ячейка, в которой отображается дата «22.06.2008», также содержит порядковый номер, который является хранимым значением даты в этой ячейке. Можно изменить отображение даты на другой формат (например, «22-июнь-2008»), но хранимое в ячейке значение не изменится.
С осторожностью изменяйте точность вычислений
При пересчете формулы Excel обычно использует значения, хранящиеся в ячейках, на которые она ссылается. Например, если в двух ячейках содержится значение 10,005, а формат ячеек предполагает отображение значений в виде денежных единиц, в каждой из ячеек будет отображаться значение 10,01 ₽. При сложении этих значений результат будет равен 20,01 ₽, поскольку Excel складывает хранимые значения 10,005 и 10,005, а не отображаемые значения.
При изменении точности вычислений в книге путем использования отображаемых (форматированных) значений Excel безвозвратно меняет точность хранимых в ячейках значений от полной (15 цифр) до любого другого числа десятичных знаков отображаемого формата. После такого изменения возврат к исходной точности невозможен.
-
На вкладке Файл нажмите кнопку Параметры и выберите категорию Дополнительно.
В Excel 2007 нажмите кнопку «Microsoft Office»,выберите «Параметры Excel»и щелкните категорию «Дополнительные параметры».
-
В разделе При пересчете этой книги выберите нужную книгу и установите флажок Задать указанную точность.
Хотя Excel ограничивает точность до 15 десятичных разрядов, это не означает, что максимальное число, которое можно хранить в Excel, ограничено 15 разрядами. Для положительных чисел предельное значение равно 9,99999999999999E+307, а для отрицательных значений — –9.99999999999999E+307. Эти числа приблизительно равны 1 или –1 с 308 нулями.
Точность в Excel означает, что любое число с разрядностью более 15 хранится и отображается только с точностью в 15 десятичных разрядов. Десятичная запятая может стоять перед любым из этих разрядов. Все разряды справа от 15-го обнуляются. Например, у числа 1234567,890123456 16 разрядов (7 до запятой и 9 после). В Excel это число хранится и отображается как 1234567,89012345 (в строке формулы и ячейке). Если установить для ячейки формат, отображающий все разряды (вместо экспоненциального формата, такого как 1,23457E+06), вы увидите, что число показывается как 1234567,890123450. 6 в конце (16-й разряд) отбрасывается и заменяется на 0. Последним является 15-й разряд, а все последующие равны нулю.
Компьютер может содержать более одного процессора (несколько физических процессоров) или поддерживать многопоточность (несколько логических процессоров). На таких компьютерах можно уменьшить или контролировать время, требуемое для пересчета книг, содержащих множество формул, путем определения числа процессоров, используемых для пересчета. Во многих случаях пересчет может выполняться частями одновременно. Распределение нагрузки между несколькими процессорами может уменьшить общее время пересчета.
-
На вкладке Файл нажмите кнопку Параметры и выберите категорию Дополнительно.
В Excel 2007 нажмите кнопку «Microsoft Office»,выберите «Параметры Excel»и щелкните категорию «Дополнительные параметры».
-
Для включения или отключения возможности использования для вычислений нескольких процессоров в разделе Формулы установите или снимите флажок Включить многопоточные вычисления.
Заметка Этот флажок по умолчанию установлен, и для вычислений используются все процессоры. Число процессоров на компьютере определяется автоматически и отображается рядом с параметром использовать все процессоры данного компьютера.
-
Дополнительно при выборе параметра Включить многопоточные вычисления можно задавать число используемых процессоров компьютера. Например, можно ограничить число процессоров, используемых для пересчета, если нужно выделить процессорное время другим выполняемым на компьютере программам.
-
Чтобы управлять числом процессоров, в области «Число потоковвычислений» выберите «Вручную». Введите число процессоров (максимальное число — 1024).
Чтобы гарантировать правильность пересчета старых книг, приложение Excel при первом открытии книги, сохраненной в более старой версии Excel, и книги, созданной в текущей версии, ведет себя по-разному.
-
При открытии книги, созданной в текущей версии, в Excel пересчитываются только формулы, зависящие от измененных ячеек.
-
При открытии книги, созданной в более ранней версии Excel, пересчитываются все формулы в книге. Это гарантирует полную оптимизацию книги для использования в текущей версии Excel. Исключением является ситуация, когда книга находится в другом режиме вычислений, например ручном.
-
Поскольку полный пересчет требует больше времени, чем частичный, открытие книги, которая не была сохранена в формате текущей версии Microsoft Excel, может потребовать больше времени. После сохранения книги в формате текущей версии Microsoft Excel книга будет открываться быстрее.
В Excel в Интернете результаты формулы автоматически пересчитываются при изменении данных в ячейках, которые используются в этой формуле. Этот автоматический пересчет можно отключить и вычислить результаты формулы вручную. Вот как это сделать:
Примечание: Изменение параметра вычисления влияет только на текущую книгу, а не на другие открытые книги в браузере.
-
В Excel в Интернете щелкните вкладку «Формулы».
-
Рядом с параметрами вычисленийвыберите один из следующих параметров в этом меню:
-
Чтобы пересчитать все зависимые формулы при каждом изменении значения, формулы или имени, выберите значение «Автоматически». Этот параметр установлен по умолчанию.
-
Чтобы пересчитать все зависимые формулы, кроме таблиц данных, при каждом изменении значения, формулы или имени нажимайте кнопку «Автоматически, кроме таблиц данных».
-
Чтобы отключить автоматический пересчет и пересчет открытых книг только явным образом, нажмите кнопку «Вручную».
-
Чтобы пересчитать книгу вручную (включая таблицы данных), нажмите кнопку «Вычислить книгу».
-
Примечание: В Excel в Интернете нельзя изменить количество пересчетов формулы до тех пор, пока не будет выполнены определенное числовый условие, а также изменить точность вычислений с помощью отображаемого значения, а не хранимого значения при пересчете формул. Однако это можно сделать в приложении Excel для настольных систем. Чтобы задать параметры вычислений и изменить пересчет, итерацию или точность формулы, откройте книгу с помощью кнопки «Открыть в Excel».
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Excel умолчанию пересчитывает все формулы во всех листах всех открытых книг после каждого введения данных. Если лист содержит сотни или тысячи формул автоматический пересчет начинает заметно замедлять процесс работы с программой. Рассмотрим, как можно настроить Excel для повышения его производительности и беспрепятственной работы.
Автоматический и ручной пересчет
Для книги, которая содержит сотни сложных формул можно настроить пересчет по востребованию пользователя. Для этого:
- Введите формулу на чистый лист (чтобы можно было проверить как работает данный пример).
- Выберите инструмент: «Формулы»-«Параметры вычислений»-«Вручную».
- Убедитесь, что теперь после ввода данных в ячейку (например, число 7 вместо 1 в ячейке A2 как на рисунке), формула не пересчитывает результат автоматически. Пока пользователь не нажмет клавишу F9 (или SFIFT+F9).
Внимание! Быстрая клавиша F9 – выполняет пересчет во всех формулах книги на всех листах. А Комбинация горячих клавиш SHIFT+F9 – выполняет пересчет только на текущем листе.
Если на листе не содержится множество формул, пересчет которых может тормозить Excel, то нет смысла использовать выше описанный пример. Но на будущее все же стоит знать о такой возможности. Ведь со временем придется сталкиваться со сложными таблицами с множеством формул. Кроме того данная функция может быть включена случайно и нужно знать где ее выключить для стандартного режима работы.
Как отображать формулу ячейке Excel
В ячейках Excel мы видим только результат вычислений. Сами же формулы можно увидеть в строке формул (по отдельности). Но иногда нам нужно одновременно просмотреть все функции в ячейках (например, чтобы их сравнить и т.п.).
Чтобы наглядно отобразить пример данного урока нам потребуется лист содержащий формулы:
Изменим настройки Excel так, чтобы ячейки отображали формулы, а не результат их вычисления.
Чтобы добиться данного результата, нужно выбрать инструмент: «Формулы»-«Показать» (в разделе «Зависимости формул»). Чтобы выйти из этого режима нужно выбрать данный инструмент повторно.
Так же можно использовать комбинацию горячих клавиш CTRL+` (над клавишей Tab). Данная комбинация работает в режиме переключателя, то есть повторное нажатие возвращает в обычный режим отображения результатов вычисления в ячейках.
Примечание. Все выше описанные действия распространяются только на режим отображения ячеек одного листа. То есть на других листах при необходимости потребуется выполнять эти действия повторно.
-
Пересчет формул
Формулы автоматически
пересчитываются
при внесении изменений в ячейки,
на которые они ссылаются. По умолчанию
Microsoft
Excel
автоматически
пересчитывает все открываемые книги.
Если книга содержит
большое число формул или листы содержат
таблицы данных, а также автоматически
вычисляемые функции, то процесс пересчета
может затянуться на долгое время. В
таком случае вместо автоматического
пересчета можно производить пересчет
вручную.
Для этого выберите
команду Параметры
в меню Сервис,
вкладку Вычисления
и установите переключатель в положение
Вручную.
Отныне для пересчета формул надо нажимать
клавишу F9
(для вычисления всех листов во всех
открытых книгах) или Shift+F9
(для вычислений только в активном листе).
Кроме того, можно открывать окно Сервис
/ Параметры
и нажимать кнопки Вычислить
или Пересчет
листа на
вкладке Вычисления.
-
Ошибки в формулах
Microsoft
Excel отображает
ошибку, если формула обработана
неправильно. Например, если формуле
требуются числовые значения, а на самом
деле указаны текстовые, то отобразится
ошибка. Ошибка появляется при удалении
ячейки, на которую ссылается функция,
а также при использовании ячейки, ширины
которой не хватает для вывода результата.
Ошибки могут
возникать не только из-за неправильной
обработки формулы. Например, если
отображается ошибка #Н/Д
или #ЗНАЧ!,
то, возможно, ошибка содержится в ячейке,
на которую ссылается формула.
Наиболее частыми
являются следующие ошибки.
Ошибка #####
Появляется, когда числовое значение не
умещается в ячейке. В этом случае можно
увеличить ширину столбца либо изменить
формат данных в ячейке.
Ошибка #ДЕЛ/0!
Появляется, когда в формуле делается
попытка деления на ноль (0). В частности,
такая ситуация возможна, если происходит
попытка деления на пустую ячейку.
Измените формулу или введите значение
в эту пустую (или нулевую) ячейку.
Ошибка #Н/Д
Значение ошибки #Н/Д
является сокращением термина
«Неопределенные Данные». Появляется в
случае, если не заданы один или несколько
аргументов используемой функции.
Можно использовать
значение #Н/Д,
если некоторые ячейки должны содержать
данные, но в настоящий момент эти данные
отсутствуют. Формулы, ссылающиеся на
ячейки, в которые занесено значение
#Н/Д,
тоже будут возвращать значение #Н/Д
вместо того, чтобы пытаться производить
вычисления.
Ошибка #ИМЯ?
Появляется, когда Microsoft
Excel не может
распознать имя, используемое в формуле.
Например, ошибка в написании имени
ячейки или функции, или же имя ячейки
было удалено.
Ошибка #ЧИСЛО!
Появляется, когда возникают проблемы
при использовании чисел в формуле или
функции. Например, в результате вычислений
получается слишком маленькое или слишком
большое число, которое нельзя представить
в MS
Excel.
Ошибка #ССЫЛКА!
Появляется, когда используется
недопустимая ссылка на ячейку. В
частности, если ячейка, которая
используется в формуле, была удалена.
Ошибка #ЗНАЧ!
Появляется, когда используется
недопустимый тип аргумента или операнда
в формуле.
Циклические
ссылки.
Возможны так называемые циклические
ссылки в написании формул, т. е. когда
формула ссылается на саму себя. Обработать
формулы с циклическими ссылками в режиме
обычных вычислений нельзя. Необходимо
изменить формулу.
Соседние файлы в папке Справочные материалы
- #
- #
- #
- #
Возможности Эксель позволяют выполнять вычисления практически любой сложности благодаря формулам и функциям. Однако иногда пользователи могут столкнуться с тем, что формула отказывается работать или вместо желаемого результата выдает ошибку. В данной статье мы рассмотрим, почему так получается, и какие действия предпринять для решения возникшей проблемы.
Содержание
- Решение 1: меняем формат ячеек
- Решение 2: отключаем режим “Показать формулы”
- Решение 3: активируем автоматический пересчет формул
- Решение 4: исправляем ошибки в формуле
- Заключение
Решение 1: меняем формат ячеек
Очень часто Excel отказывается выполнять расчеты из-за того, что неправильно выбран формат ячеек.
Например, если задан текстовый формат, то вместо результата мы будем видеть просто саму формулу в виде обычного текста.
В некоторых ситуациях, когда выбран не тот формат, результат может быть посчитан, но отображаться он будет совсем не так, как мы хотели бы.
Очевидно, что формат ячеек нужно изменить, и делается это следующим образом:
- Чтобы определить текущий формат ячейки (диапазон ячеек), выделяем ее и, находясь во вкладке “Главная”, обращаем вниманием на группу инструментов “Число”. Здесь есть специальное поле, в котором показывается формат, используемый сейчас.
- Выбрать другой формат можно из списка, который откроется после того, как мы кликнем по стрелку вниз рядом с текущим значением.
Формат ячеек можно сменить с помощью другого инструмента, который позволяет задать более расширенные настройки.
- Выбрав ячейку (или выделив диапазон ячеек) щелкаем по ней правой кнопкой мыши и в открывшемся списке жмем по команде “Формат ячеек”. Или вместо этого, после выделения жмем сочетание Ctrl+1.
- В открывшемся окне мы окажемся во вкладке “Число”. Здесь в перечне слева представлены все доступные форматы, которые мы можем выбрать. С левой стороны отображаются настройки выбранного варианта, которые мы можем изменить на свое усмотрение. По готовности жмем OK.
- Чтобы изменения отразились в таблице, по очереди активируем режим редактирования для всех ячеек, в которых формула не работала. Выбрав нужный элемент перейти к редактированию можно нажатием клавиши F2, двойным кликом по нему или щелчком внутри строки формул. После этого, ничего не меняя, жмем Enter.
Примечание: Если данных слишком много, на ручное выполнение последнего шага потребуется немало времени. В данном случае можно поступить иначе – воспользуемся Маркером заполнения. Но этот работает только в том случае, когда во всех ячейках используются одинаковая формула.
- Выполняем последний шаг только для самой верхней ячейки. Затем наводим указатель мыши на ее правый нижний угол, как только появится черный плюсик, зажав левую кнопку мыши тянем его до конца таблицы.
- Получаем столбец с результатами, посчитанными с помощью формул.
Решение 2: отключаем режим “Показать формулы”
Когда мы вместо результатов видим сами формулы, это может быть связано с тем, что активирован режим показа формул, и его нужно отключить.
- Переключаемся во вкладку “Формулы”. В группе инструментов “Зависимость формул” щелкаем по кнопке “Показать формулы”, если она активна.
- В результате, в ячейках с формулами теперь будут отображаться результаты вычислений. Правда, из-за этого могут измениться границы столбцов, но это поправимо.
Решение 3: активируем автоматический пересчет формул
Иногда может возникать ситуация, когда формула посчитала какой-то результат, однако, если мы решим изменить значение в одной из ячеек, на которую формула ссылается, пересчет выполнен не будет. Это исправляется в параметрах программы.
- Заходим в меню “Файл”.
- В перечне слева выбираем раздел “Параметры”.
- В появившемся окне переключаемся в подраздел “Формулы”. В правой части окна в группе “Параметры вычислений” ставим отметку напротив опции “автоматически”, если выбран другой вариант. По готовности щелкаем OK.
- Все готово, с этого момента все результаты по формулам будут пересчитываться в автоматическом режиме.
Решение 4: исправляем ошибки в формуле
Если в формуле допустить ошибки, программа может воспринимать ее как простое текстовое значение, следовательно, расчеты по ней выполнятся не будут. Например, одной из самых популярных ошибок является пробел, установленный перед знаком “равно”. При этом помним, что знак “=” обязательно должен стоять перед любой формулой.
Также, довольно часто ошибки допускаются в синтаксисах функций, так как заполнить их не всегда просто, особенно, когда используется несколько аргументов. Поэтому, рекомендуем использовать Мастер функций для вставки функции в ячейку.
Чтобы формула заработала, все что нужно сделать – внимательно проверить ее и исправить все выявленные ошибки. В нашем случае нужно просто убрать пробел в самом начале, который не нужен.
Иногда проще удалить формулу и написать ее заново, чем пытаться искать ошибку в уже написанной. То же самое касается функций и их аргументов.
Распространенные ошибки
В некоторых случаях, когда пользователь допустил ошибку при вводе формулы, в ячейке могут отображаться такие значения:
- #ДЕЛ/0! – результат деления на ноль;
- #Н/Д – ввод недопустимых значений;
- #ЧИСЛО! – неверное числовое значение;
- #ЗНАЧ! – используется неправильный вид аргумента в функции;
- #ПУСТО! – неверно указан адрес дапазона;
- #ССЫЛКА! – ячейка, на которую ссылалась формула, удалена;
- #ИМЯ? – некорректное имя в формуле.
Если мы видим одну из вышеперечисленных ошибок, в первую очередь проверяем, все ли данные в ячейках, участвующих в формуле, заполнены корректно. Затем проверяем саму формулу и наличие в ней ошибок, в том числе тех, которые противоречат законам математики. Например, не допускается деление на ноль (ошибка #ДЕЛ/0!).
В случаях, когда приходится иметь со сложными функциями, которые ссылаются на много ячеек, можно воспользоваться инструментов проверки.
- Отмечаем ячейку, содержащую ошибку. Во вкладке “Формулы” в группе инструментов “Зависимости формул” жмем кнопку “Вычислить формулу”.
- В открывшемся окне будет отображаться пошаговая информация по расчету. Для этого нажимаем кнопку “Вычислить” (каждое нажатие осуществляет переход к следующему шагу).
- Таким образом, можно отследить каждый шаг, найти ошибку и устранить ее.
Также можно воспользоваться полезным инструментом “Проверка ошибок”, который расположен в том же блоке.
Откроется окно, в котором будет описана причина ошибки, а также предложен ряд действий касательно нее, в т.ч. исправление в строке формул.
Заключение
Работа с формулами и функциями – одна из главных функциональных возможностей Excel, и, несомненно, одно из основных направлений использования программы. Поэтому очень важно знать, какие проблемы могут возникать при работе с формулами, и как их можно исправить.
Пересчет отдельных формул в рабочей книге
- Подробности
- Создано 04 Февраль 2018
Содержание |
---|
Решение задачи |
Константы: |
Процедура пересчета диапазонов: |
Типичная проблема при работе с большими или очень большими файлами Excel — это слишком сильное замедление при выполнении любых расчетов. Стандартной рекомендацией при этом является переключение Excel на ручной режим пересчета (ленат Формулы Параметры вычислений). Но зачастую рабочая книга построена таким образом, что хотелось бы видеть автоматическое обновление каких-то оперативных данных и сумм непосредственно при вводе. Нажимать все время F9, во-первых, неудобно, во-вторых, расчет каких-то итоговых таблиц вообще можно отложить на неопределенный срок — занимать время на их пересчет совсем не требуется. Иногда помогает пересчет не всей рабочей книги, а только активного листа — Shift+F9. Но и это не всегда удобно, и зависит от степени сложности связей между листами.
Кардинальным способом решения проблемы является пересчет итоговых таблиц по определенному событию, все остальное время там будут храниться только значения. Шаблон расчетных формул можно хранить в скрытом диапазоне. Т.е. рабочий файл можно оставить в автоматическом режиме расчетов для ввода каких-то данных. А для расчета итоговых таблиц необходимо будет вызывать макрос VBA. Очевидно, что для эффективности данного пересчитываемые таблицы должны иметь большое количество однотипных формул.
Решение задачи
Макрос делает следуеющее:
- Проходит по всем ячейкам столбца «Признак»
- Если «Признак»=1, то во все «Столбцы» таблицы вставлются формулы из строки «Формула»
- После заполнения всех формул пересчитывается рабочий лист
- После завершения расчета все вставленные формулы заменяются на значения
- Во вложении пример решения подобной задачи.
Пример реализации макроса на VBA во вложении к статье.
Константы:
Для простоты в примере все ссылки на столбцы и строки заданы через константы — см.проект VBA. В реальном проекте лучше заменить константы на переменные, ссылающиеся на именованные диапазоны рабочей книги.
Const colBegFormula As Long = 2 Const colEndFormula As Long = 9 Const colFlag As Long = 11 Const rowBegData As Long = 5 Const rowEndData As Long = 18 Const rowFormulas As Long = 19
Процедура пересчета диапазонов:
Private Sub RecalcFormulas(rngData As Excel.Range, rngFlags As Excel.Range, rngFormulas As Excel.Range) Dim calcMode As Excel.XlCalculation Dim wsh As Excel.Worksheet Dim rngRowData As Excel.Range Dim idx As Long, curRow As Long On Error GoTo Err_ calcMode = SaveCalcMode() Set wsh = rngData.Worksheet ' fill formulas For idx = 1 To rngData.Rows.Count curRow = rngData.Rows(idx).Row If (rngFlags.Cells(idx) = 1) Then Set rngRowData = wsh.Range(wsh.Cells(curRow, rngFormulas.Columns(1).Column), _ wsh.Cells(curRow, rngFormulas.Columns(rngFormulas.Columns.Count).Column)) rngFormulas.Copy rngRowData.PasteSpecial xlPasteFormulas End If Next wsh.Calculate 'Application.Calculate ' fill values For idx = 1 To rngData.Rows.Count curRow = rngData.Rows(idx).Row If (rngFlags.Cells(idx) = 1) Then Set rngRowData = wsh.Range(wsh.Cells(curRow, rngFormulas.Columns(1).Column), _ wsh.Cells(curRow, rngFormulas.Columns(rngFormulas.Columns.Count).Column)) rngRowData.Copy rngRowData.PasteSpecial xlPasteValues End If Next RestoreCalcMode calcMode Exit Sub Err_: MsgBox Err.Description RestoreCalcMode calcMode End Sub
Для сложных файлов лучше пересчитывать не только активный лист (см.строку wsh.Calculate), а все открытые рабочие книги — замените строку на Application.Calculate
Процедуры SaveCalcMode и RestoreCalcMode необходимы для корректного возврата текущего режима расчета Excel (автоматический или ручной). Туда же можно добавить скрытие визуализации выполнения макроса через задание параметра Application.ScreenUpdating = False (скрывает обновление экрана) и Application.ScreenUpdating = True (восстанавливает обновление экрана).
Смотри также
» Класс сохранения настроек Excel
В данной статье описывается небольшой, но очень удобный класс для сохранения и автоматического восстановления таких параметров…
» Основные принципы оптимизации работы в электронных таблицах
Знание специальных приемов работы в электронных таблицах Excel позволяет в разы сократить время разработки моделей, повысить…
» Надстройки Excel
Те, кто программирует на VBA для Excel, в определенный момент задумываются над распространением своих приложений в качестве независимых…
» Автоматизация в Excel
Создание программного кода для автоматизации определенных процедур открывает практически безграничные возможности по развитию и…
» Доступ к данным Excel через ADO
Данный пример демонстрирует работу с файлами Excel через интерфейс доступа к данным ADO (ActiveX Data Objects). Объекты ADO входят в состав Windows,…