Как пересчитать выделенные ячейки excel

Обновлено: 07.07.2024

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: не поддерживается

Все режимы

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

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

В этой статье

Как Excel обрабатывает проценты

Форматирование чисел в качестве процентов не вызывает сложностей, однако получаемые результаты могут зависеть от того, содержатся ли эти числа в книге.

Форматирование ячеек, уже содержащих числа. При применении процентного формата к существующим числам в книге Excel эти числа умножаются на 100. Например, если ячейка содержит число 10, оно будет умножено на 100, т. е. после применения процентного формата в ячейке будет отображаться значение 1000,00%, что может отличаться от ожидаемого результата. Чтобы процентные значения отображались точно, перед применением процентного формата следует убедиться в том, что числа вычислены как проценты и отображаются в десятичном формате. Проценты вычисляются с использованием формулы сумма /итог = процент. Например, если ячейка содержит формулу =10/100,результатом вычисления будет 0,1. Если применить к ячейке с числом 0,1 процентный формат, число будет правильно отображено как 10%. Дополнительные сведения о вычислении процентов см. в разделе Примеры вычисления процентов.

Форматирование пустых ячеек. Если применить процентный формат к пустым ячейкам, пересчет вводимых чисел в проценты выполняется по другим правилам. Числа, большие или равные 1, преобразуются в проценты по умолчанию, а числа, меньшие 1, для пересчета в проценты умножаются на 100. Например, если ввести 10 или 0,1, результат будет одинаковым — 10,00%. (Если отображение двух нулей после десятичной запятой не требуется, от них легко избавиться, выполнив действия, описанные в приведенной ниже процедуре.)

Отображение чисел в процентах

Чтобы быстро применить процентное форматирование к выбранным ячейкам, нажмите кнопку Процентный в группе Число на вкладке Главная или нажмите CTRL+SHIFT+%. Если необходимо более точно задать формат или изменить другие параметры форматирования для выделенного фрагмента, выполните действия, описанные ниже.

На вкладке Главная в группе Число щелкните значок рядом с полем Число, чтобы открыть диалоговое окно Формат ячеек.

Кнопка вызова диалогового окна в группе "Число"

В диалоговом окне Формат ячеек в списке Числовые форматы выберите пункт Процентный.

В поле Число десятичных знаков введите требуемое число знаков после запятой. Например, чтобы ячейка содержала значение 10%, а не 10,00%, введите в поле Число десятичных знаков0.

Советы по отображению процентов

Чтобы сбросить формат чисел в выбранных ячейках, в списке Числовые форматы выберите пункт Общий. Ячейки, к которым применен формат Общий, не имеют специального числового формата.

Если необходимо выделить отрицательные процентные значения (например, отображать их красным цветом), можно создать пользовательский числовой формат (диалоговое окно Формат ячеек, вкладка Число, категория (все форматы)). Формат должен иметь приблизительно следующий вид: 0,00%;[Красный]-0,00%. После применения этого формата к ячейкам положительные процентные значения будут отображаться цветом текста по умолчанию, а отрицательные — красным цветом. Часть формата после точки с запятой обозначает форматирование, которое применяется к отрицательным значениям.

Пользовательский числовой формат

Подобным образом можно настроить отображение отрицательных процентных значений в скобках, создав, например, следующий пользовательский формат: 0,00%_);(0,00%). Подробнее об этом см. в статье Создание и удаление пользовательских числовых форматов.

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

Правило условного форматирования для отображения отрицательных чисел красным цветом

Примеры вычисления процентов

В данном разделе описаны некоторые простые способы вычисления процентов.

Пример 1. Увеличение или уменьшение числа на заданное количество процентов

Сценарий Если вы тратите на питание в среднем 25 долларов США в неделю и хотите сократить еженедельные расходы на питание на 25 %, сколько вы можете потратить? Или, если вы хотите увеличить недельный размер питания в 25 долларов США на 25 %, каков ваш новый недельный размер?

Если ячейка B2 — это расходы на питание, а C2 — процент, на который требуется сократить расходы, чтобы получить результат, введите в ячейку D2 формулу =B2*(1-C2).

Пример формулы для вычисления процентов

В этой формуле 1 используется для представления 100 %. Подобным образом, если нужно увеличить расходы на определенный процент, следует ввести в ячейку D2 формулу =B2*(1+C2).

Пример формулы для вычисления процентов

Пример 2. Вычисление значения на основе процента

Сценарий Если вы приобретаете компьютер за 800 рублей и у вас есть налог с продаж в размере 8,9 %, то сколько нужно платить за налог с продаж? В этом примере нужно найти 8,9 % от 800.

Если ячейка B2 — это цена, а C2 — налог с продаж, введите в ячейку D2 формулу =B2*C2, как показано ниже.

Пример формулы для вычисления процентов

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

Пример 3. Вычисление процента на основе двух значений

Пример формулы для вычисления процентов

Пример 4. Вычисление значения на основе другого значения и процента

Сценарий Например, продажная цена футболки составляет 15 долларов США, что на 25 % меньше исходной цены. Какова исходная цена? В этом примере нужно найти 75 %, из которых число равно 15.

Если ячейка B2 — это отпускная цена, а в ячейке C2 содержится число 0,75 (т. е. 100 % за вычетом скидки в 25 % в десятичном формате), чтобы узнать первоначальную цену, введите в ячейку D2 формулу =B2/C2.

Пример формулы для вычисления процентов

В этой формуле отпускная цена делится на проценты, что дает первоначальную цену.

Пример 5. Вычисление разницы между двумя числами и ее отображение в процентах

Сценарий Например, заработная плата вашего отдела в ноябре составляет 2 342 долларов США, а в декабре — 2500 рублей. Как меняется процентная доля заработной платы за эти два месяца? Для этого используйте операторы вычитания (-) и деления (/) в одной формуле.

Если ячейка B2 — это прибыль за ноябрь, а C2 — за декабрь, чтобы найти разницу, используйте в ячейке D2 формулу =(C2-B2)/ (B2).

Пример формулы для вычисления процентов

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

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

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

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

С инструментом «Пересчёт диапазона» вы сможете:

Перед началом работы добавьте «Пересчёт диапазона» в Excel

«Пересчёт диапазона» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

Начните работу с инструментами XLTools

– пробный период дает 14 дней полного доступа ко всем инструментам.

Как переключиться с автоматических вычислений в Excel на вычисления вручную

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

Откройте вкладку «Формулы» Нажмите Параметры вычислений В выпадающем списке отметьте «Вручную».

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

Как включить вычисления вручную в Excel

Как выполнить пересчёт конкретного диапазона в Excel

Чтобы пересчитать только выбранный диапазон, используйте горячие клавиши XLTools:

Выделите диапазон Нажмите комбинацию горячих клавиш Alt + F9 Готово! Все ячейки с формулами в этом диапазоне пересчитаны.

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

Чтобы принудительно пересчитать всю книгу или рабочий лист, используйте горячие клавиши Excel:

Ctrl+Alt+F9 – пересчёт всех листов во всех открытых книгах независимо от того, вносились ли в них изменения с момента последнего пересчёта Ctrl+Alt+Shift+F9 – проверка зависимых формул с последующим пересчётом всех ячеек во всех открытых книгах, включая ячейки, не помеченные для вычисления

Как изменить комбинацию горячих клавиш для «Пересчёта диапазона»

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

Вкладка XLTools Кнопка Настройки Вкладка Горячие клавиши Задайте своё сочетание клавиш OK.

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