Автоматический пересчет формул в excel включить

Обновлено: 08.07.2024

По умолчанию Excel автоматически пересчитывает все формулы при открытии рабочего листа или при изменении значений, формул или имен в зависимых формулах. Процесс пересчета может длиться от нескольких секунд до нескольких минут в зависимости от количества и сложности формул в рабочей книге.

Пока формулы пересчитываются, указатель мыши меняется на песочные часы, и внести какие-либо изменения на рабочий лист невозможно. Для экономии времени можно временно отключить режим автоматических вычислений в Excel до завершения внесения данных. Сделать это можно без особого труда, и мы покажем Вам как.

Если Вы не хотите отключать режим автоматических вычислений, и Ваш компьютер имеет несколько процессоров, тогда можете применить режим многопоточных вычислений. Он поможет немного ускорить процесс пересчета в зависимости от количества процессоров компьютера. О том, как включить режим многопоточных вычислений в Excel, мы расскажем дальше.

Параметры вычислений

Следующий список поясняет опции, которые доступны в разделе Calculation options (Параметры вычислений):

Вы также можете переключаться между тремя основными режимами вычислений, используя команду Calculation Options (Параметры вычислений) в разделе Calculation (Вычисление) на вкладке Formulas (Формулы). Однако, если необходимо настроить параметры вычислений, все же придется обратиться к вкладке Formulas (Формулы) диалогового окна Excel Options (Параметры Excel).

Автоматические вычисления в Excel

Многопоточные вычисления в Excel

Excel 2013 располагает режимом многопоточных вычислений, который позволяет сокращать время пересчета формул. Если Вы предпочитаете не отключать автоматическое вычисление, попробуйте использовать указанную опцию (при наличии у компьютера нескольких процессоров), чтобы сократить время пересчета.

  1. Чтобы включить режим многопоточных вычислений, нажмите на вкладку File (Файл) и выберите пункт Options (Параметры), чтобы открыть диалоговое окно Excel Options (Параметры Excel). Затем нажмите Advanced (Дополнительно).
  2. Опуститесь вниз до раздела Formulas (Формулы) и установите флажок возле пункта Enable multi-threaded calculation (Включить многопоточные вычисления). Вы можете вручную установить количество потоков вычисления, которое необходимо использовать, или указать Excel задействовать все процессоры компьютера, выбрав Use all processors on this computer (Использовать все процессоры данного компьютера).

Если на компьютере уже запущены другие программы, Вы можете ограничить число используемых процессоров для пересчета формул электронной таблицы Excel.

Испытайте разные настройки режимов автоматических и многопоточных вычислений, чтобы определить, какие из них лучше подходят для Вашего компьютера.

Excel умолчанию пересчитывает все формулы во всех листах всех открытых книг после каждого введения данных. Если лист содержит сотни или тысячи формул автоматический пересчет начинает заметно замедлять процесс работы с программой. Рассмотрим, как можно настроить Excel для повышения его производительности и беспрепятственной работы.

Автоматический и ручной пересчет

Для книги, которая содержит сотни сложных формул можно настроить пересчет по востребованию пользователя. Для этого:

  1. Введите формулу на чистый лист (чтобы можно было проверить как работает данный пример).
  2. Выберите инструмент: «Формулы»-«Параметры вычислений»-«Вручную».
  3. Убедитесь, что теперь после ввода данных в ячейку (например, число 7 вместо 1 в ячейке A2 как на рисунке), формула не пересчитывает результат автоматически. Пока пользователь не нажмет клавишу F9 (или SFIFT+F9).

Внимание! Быстрая клавиша F9 – выполняет пересчет во всех формулах книги на всех листах. А Комбинация горячих клавиш SHIFT+F9 – выполняет пересчет только на текущем листе.

Если на листе не содержится множество формул, пересчет которых может тормозить Excel, то нет смысла использовать выше описанный пример. Но на будущее все же стоит знать о такой возможности. Ведь со временем придется сталкиваться со сложными таблицами с множеством формул. Кроме того данная функция может быть включена случайно и нужно знать где ее выключить для стандартного режима работы.

Как отображать формулу ячейке Excel

В ячейках Excel мы видим только результат вычислений. Сами же формулы можно увидеть в строке формул (по отдельности). Но иногда нам нужно одновременно просмотреть все функции в ячейках (например, чтобы их сравнить и т.п.).

Чтобы наглядно отобразить пример данного урока нам потребуется лист содержащий формулы:

Данные для примера.

Изменим настройки Excel так, чтобы ячейки отображали формулы, а не результат их вычисления.

Пример.

Чтобы добиться данного результата, нужно выбрать инструмент: «Формулы»-«Показать» (в разделе «Зависимости формул»). Чтобы выйти из этого режима нужно выбрать данный инструмент повторно.

Так же можно использовать комбинацию горячих клавиш CTRL+` (над клавишей Tab). Данная комбинация работает в режиме переключателя, то есть повторное нажатие возвращает в обычный режим отображения результатов вычисления в ячейках.

Примечание. Все выше описанные действия распространяются только на режим отображения ячеек одного листа. То есть на других листах при необходимости потребуется выполнять эти действия повторно.

Пользователь может вызывать пересчет в Microsoft Excel несколькими способами, например:

путем ввода новых данных (если Excel находится в режиме автоматического пересчета, описанном далее в этой статье);

явным указанием Excel пересчитать всю книгу или ее часть;

путем удаления или вставки строки или столбца;

путем сохранения книги при заданном параметре Пересчет перед сохранением;

путем выполнения некоторых действий автофильтра;

двойным щелчком по разделителю строк или столбцов (в режиме автоматического вычисления);

путем добавления, редактирования или удаления заданного имени;

путем переименования листа;

путем изменения позиции листа относительно других листов;

путем скрытия или отображения строк (не столбцов).

В этой статье не делается различий между непосредственным нажатием клавиши или кнопки мыши пользователем и выполнением этих задач командой или макросом. Пользователь запускает команду или делает что-либо, чтобы она запустилась, поэтому это также считается действием пользователя. Таким образом, слово "пользователь" также означает "пользователь либо команда или процесс, запущенные пользователем".

Зависимость, "грязные" ячейки и пересчитанные ячейки

Вычисление листов в Excel можно рассматривать как процесс из трех этапов:

Создание дерева зависимостей

Создание цепочки вычислений

Дерево зависимостей сообщает Excel, какие ячейки зависят от других ячеек или, аналогично, какие ячейки являются прецедентами для других. Из этого дерева Excel составляет цепочку вычислений. В ней перечисляются все ячейки, которые содержат формулы, в том порядке, в котором их необходимо вычислять. Во время пересчета Excel изменяет эту цепочку, если обнаруживается формула, которая зависит от еще не вычисленной ячейки. В этом случае вычисляемая ячейка и зависящие от нее ячейки перемещаются вниз по цепочке. По этой причине время вычисления в первых нескольких циклах часто сокращается на листах, которые были только что открыты.

При структурном изменении книги, например при вводе новой формулы, Excel заново создает дерево зависимостей и цепочку вычислений. При вводе новых данных или новых формул Excel помечает все ячейки, которые зависят от новых данных, как требующие пересчета. Помеченные таким образом ячейки называются "грязными". Все прямые и косвенные зависимые ячейки помечаются как "грязные", поэтому если ячейка B1 зависит от ячейки A1, а ячейка C1 — от B1, то при изменении ячейки A1 ячейки B1 и C1 помечаются как "грязные".

Отметив ячейки как "грязные" при следующем пересчете, Excel повторно оценивает содержимое каждой "грязной" ячейки в порядке, определяемом цепочкой вычислений. В приведенном выше примере это означает, что сначала оценивается ячейка B1, а затем — C1. Пересчет происходит сразу после того, как Excel закончит отмечать ячейки как "грязные", если выбран автоматический режим пересчета. В противном случае это происходит позже.

Начиная с Microsoft Excel 2002, объект Range в Microsoft Visual Basic для приложений (VBA) поддерживает метод Range.Dirty, который отмечает ячейки как требующие подсчета. Когда он используется совместно с методом Range.Calculate (см. следующий раздел), он включает принудительный пересчет ячеек в заданном диапазоне. Это удобно при выполнении ограниченного вычисления в макросе, где установлен ручной режим подсчета (для избежания избытка вычисляемых ячеек, не относящихся к функции макроса). Методы подсчета диапазонов недоступны через API C.

В Excel 2002 и более ранних версиях Excel составлял цепочку вычислений для каждого листа в каждой открытой книге. Это несколько усложняло обработку ссылок между листами и требовало осторожности для обеспечения эффективного пересчета. В частности, в Excel 2000 необходимо сводить к минимуму зависимости между листами и присваивать листам имена в алфавитном порядке, чтобы листы, зависящие от других листов, следовали по алфавиту за листами, от которых они зависят.

В Excel 2007 логика была улучшена для поддержки пересчета в нескольких потоках, чтобы разделы цепочки вычислений не зависели друг от друга и для них можно было проводить подсчеты одновременно. Вы можете настроить Excel для использования нескольких потоков на компьютере с одним процессором или одного потока на многопроцессорном или многоядерном компьютере.

Асинхронные пользовательские функции

Когда вычисление обнаруживает асинхронную пользовательскую функцию, оно сохраняет состояние текущей формулы, запускает пользовательскую функцию и продолжает оценивать остальные ячейки. Когда вычисление завершает оценку ячеек, Excel ждет завершения асинхронных функций, если они еще выполняются. По мере того как каждая асинхронная функция сообщает о результатах, Excel завершает формулу, а затем запускает новую передачу вычисления, чтобы пересчитать ячейки, которые используют ячейку со ссылкой на асинхронную функцию.

Переменные и постоянные функции

Excel поддерживает переменные функции, то есть функции, значения которых в разные моменты могут отличаться, даже если ни один из аргументов (если они принимаются) не изменился. Excel повторно оценивает ячейки, которые содержат переменные функции, вместе со всеми зависимыми функциями при каждом пересчете. По этой причине чрезмерное использование переменных функций может замедлить пересчет. Используйте их экономно.

Переменными являются следующие функции Excel:

NOW

TODAY

RANDBETWEEN

OFFSET

INDIRECT

INFO (в зависимости от аргументов)

CELL (в зависимости от аргументов)

SUMIF (в зависимости от аргументов)

Интерфейсы API VBA и C поддерживают способы сообщить Excel, что пользовательскую функцию следует обрабатывать как переменную. В VBA пользовательская функция объявляется переменной следующим образом.

По умолчанию Excel предполагает, что пользовательские функции VBA не являются переменными. Excel узнает, что пользовательская функция является переменной, только при ее первом вызове. Переменную пользовательскую функцию можно сделать постоянной, как в следующем примере.

С помощью API C можно зарегистрировать функцию XLL как переменную до ее первого вызова. Он также позволяет включать и отключать переменное состояние функции листа.

По умолчанию Excel обрабатывает пользовательские функции XLL, которые принимают диапазоны в качестве аргументов и объявлены как эквиваленты листа макросов (изменчивые). Вы можете отключить это состояние по умолчанию с помощью функции xlfVolatile при первом вызове пользовательской функции.

Режимы вычисления, команды, выборочный пересчет и таблицы данных

В Excel есть три режима вычисления:

Автоматический, кроме таблиц

В автоматическом режиме вычисления пересчет происходит только после каждого ввода данных и после определенных событий, таких как примеры в предыдущем разделе. В очень больших книгах пересчет может занимать так много времени, что пользователям необходимо ограничивать эти условия, чтобы пересчет происходил только при необходимости. Для этого Excel поддерживает ручной режим. Пользователь может выбрать режим в системе меню Excel или программным способом с помощью API VBA, COM или C.

Таблицы данных — это специальные структуры на листе. Сначала пользователь настраивает вычисление результата на листе. Это зависит от одного или двух изменяемых наборов данных, введенных с клавиатуры, и других параметров. Затем пользователь может создать таблицу результатов для значений одного или обоих вводов с клавиатуры. Таблица создается с помощью мастера таблиц данных. После настройки таблицы Excel по одному отправляет наборы введенных данных в вычисление и копирует полученное значение в таблицу. Так как можно использовать один или два набора введенных данных, таблицы данных могут быть одномерными или двумерными.

Пересчет таблиц данных обрабатывается немного по-другому:

Пересчет обрабатывается асинхронно в отличие от обычного пересчета книг, поэтому пересчет больших таблиц может занимать больше времени, чем пересчет остальных элементов книги.

Циклические ссылки допускаются. Если вычисление, используемое для получения результата, зависит от одного или нескольких значений из таблицы данных, то Excel не возвращает ошибку циклической зависимости.

Таблицы данных не используют многопоточные вычисления.

Учитывая, что Excel по-другому обрабатывает пересчет таблиц данных, а вычисление больших таблиц, зависящих от сложных или длинных вычислений, может занимать много времени, Excel позволяет отключить автоматическое вычисление таблиц данных. Для этого выберите режим вычисления "Автоматический, кроме таблиц". В этом режиме пользователь может пересчитывать данные, нажав клавишу F9 или выполнив эквивалентную программную операцию.

Excel предоставляет методы, с помощью которых можно изменять режим пересчета и управлять им. Эти методы улучшались от версии к версии, чтобы обеспечить возможность более точного управления. Возможности API C в этом отношении отражают возможности, доступные в Excel версии 5, поэтому не предоставляют такого управления, как при использовании VBA в более поздних версиях.

Эти методы чаще всего используются, когда Excel находится в ручном режиме вычисления, и позволяют выборочно вычислять книги, листы и диапазоны, полностью пересчитывать все открытые книги и даже полностью перестраивать дерево зависимостей и цепочку вычислений.

Вычисление диапазонов

VBA: Range.Calculate (представлен в Excel 2000, изменен в Excel 2007) и Range.CalculateRowMajorOrder (представлен в Excel 2007)

API C: не поддерживается

Ручной режим

Пересчитывает только ячейки в заданном диапазоне независимо от того, "грязные" ли они. Поведение метода Range.Calculate изменилось в Excel 2007. Но предыдущее поведение по-прежнему поддерживается методом Range.CalculateRowMajorOrder.

Режим "Автоматически" или "Автоматически, кроме таблиц"

Пересчитывает книгу, но не выполняет принудительный пересчет диапазона или каких-либо ячеек в нем.

Активное вычисление листов

VBA: ActiveSheet.Calculate

API C: xlcCalculateDocument

Все режимы

Пересчитывает ячейки, отмеченные для вычисления, только на активном листе.

Вычисление указанных листов

VBA: Worksheets( reference ).Calculate

API C: не поддерживается

Все режимы

Пересчитывает "грязные" ячейки и их зависимости только на указанном листе. Ссылка — это имя листа как строка или номер индекса в соответствующей книге.

Excel 2000 и более поздних версий предоставляет свойство листа Boolean (EnableCalculation). Если задать для него значение True вместо False, все ячейки на указанном листе будут помечены как "грязные". В автоматических режимах это вызывает пересчет всей книги.

В ручном режиме следующий код вызывает пересчет только активного листа.

Повторное создание и принудительный пересчет дерева книги

Клавиши: CTRL+ALT+SHIFT+F9 (появились в Excel 2002)

VBA: Workbooks( reference ).ForceFullCalculation (представлен в Excel 2007)

API C: не поддерживается

Все режимы

Указывает Excel заново создать дерево зависимостей и цепочку вычислений для определенной книги и вызывает пересчет всех ячеек, содержащих формулы.

Все открытые книги

VBA: Application.Calculate

API C: xlcCalculateNow

Все режимы

Пересчитывает все ячейки, которые Excel отметил как "грязные", то есть зависящие от переменных или измененных данных, и ячейки, программно отмеченные как "грязные". Если выбран режим вычисления "Автоматический, кроме таблиц", этот метод вычисляет таблицы, которые требуют обновления, а также все переменные функции и их зависимости.

Повторное создание и принудительное вычисление дерева всех открытых книг

VBA: Application.CalculateFull

API C: не поддерживается

Все режимы

Пересчитывает все ячейки во всех открытых книгах. Если выбран режим вычисления "Автоматический, кроме таблиц", выполняется принудительный пересчет таблиц.

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Аннотация

В Microsoft Excel все открытые документы используют один и тот же режим вычислений, независимо от режима, в котором они были сохранены.

Дополнительные сведения

Чтобы объяснить, как определяется способ вычисления, в этой статье упоминаются следующие гипотетические документы:

Имя файла Вид документа Режим, используемый для сохранения файла
Auto1.xlsx Workbook Автоматически
Manual1.xlsx Workbook Manual
Auto2.xlsx Workbook Автоматически

Следующие утверждения применяются к режимам вычислений в Excel:

  • В первом открываемом документе используется режим вычисления, с помощью которого он был сохранен в последний раз. Документы, которые открываются позже, используют тот же режим. Например, если Auto1.xlsx открыть Manual1.xlsx, в обоих документах используется автоматический расчет (режим, используемый Auto1.xlsx). Если открыть Manual1.xlsx открыть Auto1.xlsx, в обоих документах используется ручной расчет.
  • Изменение режима вычисления одного открытого документа меняет режим для всех открытых документов. Например, если Auto1.xlsx и Auto2.xlsx открыты, изменение режима вычисления Auto2.xlsx вручную также изменяет режим Auto1.xlsx вручную.
  • Все листы, содержащиеся в книге, используют один и тот же режим вычисления. Например, если Auto2.xlsx содержит три листа, изменение режима вычисления первого листа в ручном режиме также изменяет режим вычисления в ручном режиме в двух других листах.
  • Если все остальные документы закрыты и создается новый документ, новый документ использует тот же режим вычислений, что и ранее закрытые документы. Однако, если вы используете шаблон, режим вычисления — это режим, указанный в шаблоне.
  • Если режим вычисления в книге изменен и файл сохранен, текущий режим вычисления сохранен. Например, если Auto1.xlsx открывается, Manual1.xlsx открывается и Manual1.xlsx моментально сохранен, режим вычисления будет сохранен автоматически.

Управление режимом вычисления

Все открытые документы используют один и тот же режим вычисления. Для работы с документами, которые используют различные режимы вычислений, необходимо соблюдать специальные процедуры. Например, если вы работаете с Auto1.xlsx и хотите открыть Manual1.xlsx в режиме ручного вычисления, примите одно из следующих действий:

  • Установите Auto1.xlsx режим ручного вычисления перед открытием Manual1.xlsx.
  • Закрой Auto1.xlsx (и любые другие открытые документы) перед открытием Manual1.xlsx.

Существует четыре режима вычисления, которые можно выбрать в Excel. ��� �������� ��������� �������:

  • Автоматическая
  • Автоматическая, за исключением таблиц данных
  • Manual
  • Пересчитать книгу перед сохранением

Пересчитать активный лист

Чтобы пересчитать только активный лист, используйте один из следующих методов:

  • Нажмите SHIFT+F9.
  • Щелкните Вычислять лист в меню Формулы в группе Вычисление.

Пересчет всех открытых документов

Чтобы пересчитать все открытые документы, используйте один из следующих методов:

Читайте также: