Для эффективного использования формул необходимо ознакомиться с тремя ключевыми понятиями.
Вычисление — это процесс расчета по формулам и последующего отображения значений результатов в ячейках, содержащих формулы. Во избежание ненужных вычислений, которые забрать время и замедлить работу компьютера, 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, не догадываются о том, что отображающиеся числовые значения в ячейках не всегда сходятся с теми данными, которые программа использует для осуществления расчетов. Речь идёт о дробных величинах. Дело в том, что программа Эксель хранит в памяти числовые значения, содержащие до 15 цифр после запятой. И несмотря на то, что на экране будет отображаться, скажем, всего 1, 2 или 3 цифры (в результате настроек формата ячеек), для расчетов Эксель будет задействовать именно полное число из памяти. Порой это приводит к неожиданному исходу и результатам. Чтобы такого не происходило, нужно настроить точность округления, а именно, установить её такой же как на экране.
Содержание
- Как работает округление в Excel
- Как настроить точность как на экране
- Настройка точности округления в более ранних версиях
- Заключение
Прежде всего, нужно принять во внимание тот факт, что данную настройку лучше не использовать без необходимости. Стоит хорошо подумать и решить для себя, есть ли смысл устанавливать точность как на экране или нет, так как довольно часто при проведении расчетов с большим количество дробных чисел возникает, так называемый, кумулятивный эффект, из-за чего снижается точность выполненных вычислений.
Устанавливать точность как на экране стоит в следующих случаях. Например, мы хотим сложить числа 6,42 и 6,33, но нам нужно отображение лишь одного десятичного знака, а не двух.
Для этого, выделяем нужные ячейки, щелкаем по ним правой кнопкой мыши, выбираем пункт “Формат ячеек..”.
Находясь во вкладке “Число” кликаем в перечне слева на формат “Числовой”, далее устанавливаем значение “1” для количества десятичных знаков и нажимаем OK, для выхода из окна форматирования и сохранения настроек.
После произведённых действий в книге отобразятся значения 6,4 и 6,3. И если данные дробные числа сложить, программа выдаст сумму 12,8.
Может показаться, что программа работает неправильно и ошиблась в расчетах, ведь 6,4+6,3=12,7. Но давайте разбираться, так ли это на самом деле, и почему получился именно такой результат.
Как мы уже упомянули выше, Эксель берёт для расчетов исходные числа, т.е. 6,42 и 6,33. В процессе их суммирования получается результат 6,75. Но по причине того, что перед этим в настройках форматирования был указан один знак после запятой, в итоговой ячейке происходит соответствующее округление, и отображается конечный результат, равный 6,8.
Чтобы избежать подобной путаницы, оптимальным решением является настройки точности округления как на экране.
Примечание: Для того, чтобы узнать исходное значение, которое используется программой для вычисления, кликаем по ячейке, содержащей числовое значение, затем обращаем внимание на строку формул, где будет отображаться полное число, хранящееся в памяти программы.
Как настроить точность как на экране
Для начала разберемся, каким образом настраивается точность округления как на экране в версии Excel 2019.
- Заходим в меню “Файл”.
- Кликаем по пункту “Параметры” в перечне слева в самом низу.
- Запустится дополнительно окно с параметрами программы, в левой части которого щелкаем по разделу “Дополнительно”.
- Теперь в правой части настроек ищем блок под названием “При пересчете этой книги:” и ставим галочку напротив опции “Задать указанную точность”. Программа предупредит нас о том, что точность при такой настройке будет снижена. Соглашаемся с этим, щелкнув кнопку OK и затем еще раз OK для подтверждения изменений и выхода из окна параметров.
Примечание: Если появится необходимость отключить данный режим, заходим в этим же параметры и просто убираем соответствующую галочку.
Настройка точности округления в более ранних версиях
Несмотря на постоянные обновления программы Эксель, многие базовые функции и алгоритм их задействования меняются незначительно или остаются теми же, чтобы пользователи, перейдя на новую версию, не испытывали сложностей с привыканием к новому интерфейсу и т.д.
В нашем случае, алгоритм настройки точности как на экране в более ранних версиях программы практически аналогичен тому, что мы рассмотрели выше для версии 2019.
Microsoft Excel 2010
- Переходим в меню «Файл».
- Нажимаем по пункту с названием «Параметры».
- В открывшемся окне параметров кликаем по пункту «Дополнительно».
- Ставим галочку напротив опции «Задать точность как на экране» в блоке настроек «При пересчете этой книги». Опять же, подтверждаем внесенные корректировки кликом по кнопке OK, приняв во внимание тот факт, что точность расчетов будет снижена.
Microsoft Excel 2007 и 2003
Версии данных лет, по мнению одних пользователей, уже являются устаревшими. Другие же считают их довольно удобным и продолжают в них работать по сей день, несмотря на появление новых версий.
Рассмотрим для начала версию 2007-го года.
- Нажимаем на значок «Microsoft Office», который расположен в верхнем углу окна слева. Должен появиться перечень, в котором нужно выбрать раздел с названием «Параметры Excel».
- Откроется ещё одно окно, в котором нужен пункт «Дополнительно». Далее справа следует выбрать группу настроек «При пересчёте этой книги» и поставить галочку напротив функции «Задать точность как на экране».
С более ранней версией (2013) все несколько иначе.
- В верхней строке меню нужно найти раздел «Сервис». После того, как он выбран, высветится перечень, в котором требуется кликнуть по пункту «Параметры».
- В открывшемся окне с параметрами нужно выбрать «Вычисления» и затем поставить галочку рядом с опцией «Точность как на экране».
Заключение
Установка точности как на экране в Excel – довольно полезная, а в определенных ситуациях, незаменимая функция, о которой, знает далеко не каждый пользователь. Выполнить соответствующие настройки не составит труда в любой из версий программы, так как принципиальной разницы в плане действий нет, и отличия заключаются лишь в видоизмененных интерфейсах, в которых, тем не менее, сохраняется преемственность.
При выполнении определенных расчетов в Excel, связанных напрямую с дробными величинами, пользователи могут сталкиваться с такими ситуациями, когда в ячейке с выводом результата появляется совершенно неожиданное число. Связано это с технической особенностью этой программы. По умолчанию Excel берет для расчетов дробные значения с 15 цифрами, стоящими после запятой, при этом в ячейке будет отображаться до 3-х цифр. Чтобы постоянно не получать неожиданные результаты расчетов, необходимо заранее настроить точность округления равной той, что отображается на экране перед пользователем.
Содержание
- Принцип работы системы округления в Excel
- Установка точности округления
- Как настроить точность в более ранних версиях
- Заключение
Принцип работы системы округления в Excel
Перед тем, как приступать к настройке округления дробных величин, рекомендуется узнать подробнее, как работает данная система, на что повлияет изменение ее параметров.
Не рекомендуется изменять настройки в тех ситуациях, когда очень часто проводятся расчеты, связанные с дробями. Это может привести к обратному эффекту от желаемого.
Одна из ситуаций, когда рекомендуется внести дополнительные коррективы в расчет точности – необходимо складывать несколько чисел с применением только одного знака после запятой. Для понимания того, что происходит чаще всего без дополнительной настройки, нужно рассмотреть практический пример. Пользователю необходимо сложить два числа – 4.64 и 3.21, при этом за основу взять только одну цифру после запятой. Порядок действий:
- Изначально необходимо выбрать мышью или клавиатурой ячейки с вписанными в них числами.
- Нажать ПКМ, выбрать из контекстного меню функцию «Формат ячеек».
- После этого появится окно с настройками, в котором необходимо перейти на вкладку «Число».
- Из списка нужно выбрать формат «Числовой».
- В свободном поле «Число десятичных знаков» установить требуемое значение.
- Останется сохранить настройки нажатием кнопки «ОК».
Однако результатом будет не 7.8, а 7.9. Из-за этого пользователь скорее всего подумает, что была допущена ошибка. Данное дробное значение получилось из-за того, что по умолчанию Excel суммировал полные числа, со всеми знаками после запятой. Но по дополнительному условию пользователь указал для вывода на экран число только с одной цифрой после запятой. Из-за этого полученное значение 7.85 было округлено, посредством чего получилось 7.9.
Важно! Чтобы узнать, какое значение программа возьмет за основу во время выполнения расчетов, нужно нажать по ячейке с числом ЛКМ, перевести внимание на ту строку, где расшифровывается формула из клетки. Именно в ней будет отображено то значение, которое будет взято за основу при проведении расчетов без дополнительной настройки.
Установка точности округления
Способ настройки округления дробных значений для Excel (2019) – порядок действий:
- Зайти в основное меню «Файл».
- Перейти во вкладку «Параметры». Найти ее можно в самом низу страницы с левой стороны.
- Выбрать дополнительные настройки.
- Справа от появившегося окна найти блок «При пересчете этой книги», найти в нем функцию «Задать указанную точность». Здесь необходимо установить галочку.
- После этих действий на экране должно появиться маленькое предупредительное окно. В нем будет указано, что, совершив данное действие, возможно снизится точность расчетов в таблицах. Чтобы сохранить настройки, нужно согласиться с внесением изменений, нажав «ОК». Нажать еще раз «ОК» для выхода из настроек.
Когда понадобится отключить функцию точного округления или изменить ее, необходимо зайти в те же настройки, снять галочку или вписать другое количество символов после запятой, которые будут учитываться во время проведения расчетов.
Как настроить точность в более ранних версиях
Программа Excel обновляется регулярно. В нее добавляются новые функции, однако большинство основных инструментов работают и настраиваются по похожему принципу. При установке точности округления значений в более ранних версиях программы существуют незначительные отличия от современной версии. Для Excel 2010:
- Зайти во вкладку «Файл» на основной панели инструментов.
- Перейти в параметры.
- Появится новое окно, в котором требуется найти и нажать «Дополнительно».
- Останется найти пункт «При пересчете этой книги», поставить крестик возле строчки «Задать точность как на экране». Подтвердить внесение изменений, сохранить настройки.
Порядок действий для Excel 2007:
- На верхней панели с инструментами открытой таблицы найти значок «Microsoft Office», нажать на него.
- На экране должен появиться список, из которого необходимо выбрать пункт «Параметры Excel».
- После открытия нового окна, перейти на вкладку «Дополнительно».
- Справа перейти в группу опций «При пересчете этой книги». Найти строчку «Задать точность как на экране», установить крестик напротив нее. Сохранить изменения кнопкой «ОК».
Порядок действий для Excel 2003:
- Найти на верхней основной панели инструментов вкладку «Сервис», зайти в нее.
- Из появившегося списка перейти к разделу «Параметры».
- После этого должно появиться окно с настройками, из которого необходимо выбрать «Вычисления».
- Останется установить отметку возле параметра «Точность как на экране».
Заключение
Если научиться устанавливать точность округления в Excel, данная настройка поможет выполнить необходимые расчеты, когда по условиям можно брать во внимание только те числовые значения, где учитывается одна цифра после запятой. Однако нельзя забывать отключать ее для стандартных ситуаций, когда расчеты должны быть максимально точными с учетом всех цифр.
Оцените качество статьи. Нам важно ваше мнение:
As with other spreadsheets, Microsoft Excel works only to limited accuracy because it retains only a certain number of figures to describe numbers (it has limited precision). With some exceptions regarding erroneous values, infinities, and denormalized numbers, Excel calculates in double-precision floating-point format from the IEEE 754 specification[1] (besides numbers, Excel uses a few other data types[2]). Although Excel allows display of up to 30 decimal places, its precision for any specific number is no more than 15 significant figures, and calculations may have an accuracy that is even less due to five issues: round off,[a]
truncation, and binary storage, accumulation of the deviations of the operands in calculations, and worst: cancellation at subtractions resp. ‘Catastrophic cancellation’ at subtraction of values with similar magnitude.
Accuracy and binary storage[edit]
Excel maintains 15 figures in its numbers, but they are not always accurate; mathematically, the bottom line should be the same as the top line, in ‘fp-math’ the step ‘1 + 1/9000’ leads to a rounding up as the first bit of the 14 bit tail ‘10111000110010’ of the mantissa falling off the table when adding 1 is a ‘1’, this up-rounding is not undone when subtracting the 1 again, since there is no information about the origin of the values in this step. Thus the ‘re-subtracting’ of 1 leaves a mantissa ending in ‘100000000000000’ instead of ‘010111000110010’, representing a value of ‘1.1111111111117289E-4’ rounded by Excel to 15 significant digits: ‘1.11111111111173E-4’.
Of course mathematical 1 + x − 1 = x , ‘floating point math’ is sometimes a little different, that is not to be blamed on Excel. The discrepancy indicates the error. All errors are beyond the 15 th significant digit of the intermediate 1+x value, all errors are in high value digits of the final result, that is the problematic effect of ‘cancellation’.
In the top figure the fraction 1/9000 in Excel is displayed. Although this number has a decimal representation that is an infinite string of ones, Excel displays only the leading 15 figures. In the second line, the number one is added to the fraction, and again Excel displays only 15 figures. In the third line, one is subtracted from the sum using Excel. Because the sum has only eleven 1s after the decimal, the true difference when ‘1’ is subtracted is three 0s followed by a string of eleven 1s. However, the difference reported by Excel is three 0s followed by a 15 digit string of thirteen 1s and two extra erroneous digits. Thus, the numbers Excel calculates with are not the numbers that it displays. Moreover, the error in Excel’s answer is not simply round-off error, it is an effect in floating point calculations called ‘cancellation’.
The inaccuracy in Excel calculations is more complicated than errors due to a precision of 15 significant figures. Excel’s storage of numbers in binary format also affects its accuracy.[3]
To illustrate, the lower figure tabulates the simple addition 1 + x − 1 for several values of x. All the values of x begin at the 15 th decimal, so Excel must take them into account. Before calculating the sum 1 + x , Excel first approximates x as a binary number. If this binary version of x is a simple power of 2, the 15 digit decimal approximation to x is stored in the sum, and the top two examples of the figure indicate recovery of x without error. In the third example, x is a more complicated binary number, {{nobr| x = 1.110111⋯111 × 2−49 (15 bits altogether). Here the ‘IEEE 754 double value’ resulting of the 15 bit figure is 3.330560653658221E-15, which is rounded by Excel for the ‘user interface’ to 15 digits 3.33056065365822E-15, and then displayed with 30 decimals digits gets one ‘fake zero’ added, thus the ‘binary’ and ‘decimal’ values in the sample are identical only in display, the values associated with the cells are different (1.1101111111111100000000000000000000000000000000000000 × 2−49 vs. 1.1101111111111011111111111111111111111111111111111101 × 2−49). Similar is done by other spreadsheets, the handling of the different amount of decimal digits which can be exactly stored in the 53 bit mantissa of a ‘double’ (e.g. 16 digits between 1 and 8, but only 15 between 1/2 and 1 and between 8 and 10) is somewhat difficult and solved ‘suboptimal’. In the fourth example, x is a decimal number not equivalent to a simple binary (although it agrees with the binary of the third example to the precision displayed). The decimal input is approximated by a binary and then that decimal is used. These two middle examples in the figure show that some error is introduced.
The last two examples illustrate what happens if x is a rather small number. In the second from last example, x = 1.110111⋯111 × 2−50 ; 15 bits altogether. The binary is replaced very crudely by a single power of 2 (in this example, 2−49) and its decimal equivalent is used. In the bottom example, a decimal identical with the binary above to the precision shown, is nonetheless approximated differently from the binary, and is eliminated by truncation to 15 significant figures, making no contribution to 1 + x − 1 , leading to x = 0 .[b]
For x′s that are not simple powers of 2, a noticeable error in 1 + x − 1 can occur even when x is quite large. For example, if x = 1/1000 , then 1 + x − 1 = 9.9999999999989 × 10−4 , an error in the 13 th significant figure. In this case, if Excel simply added and subtracted the decimal numbers, avoiding the conversion to binary and back again to decimal, no round-off error would occur and accuracy actually would be better. Excel has the option to «Set precision as displayed».[c]
With this option, depending upon circumstance, accuracy may turn out to be better or worse, but you will know exactly what Excel is doing. (Only the selected precision is retained, and one cannot recover extra digits by reversing this option.) Some similar examples can be found at this link.[4]
In short, a variety of accuracy behavior is introduced by the combination of representing a number with a limited number of binary digits, along with truncating numbers beyond the fifteenth significant figure.[5] Excel’s treatment of numbers beyond 15 significant figures sometimes contributes better accuracy to the final few significant figures of a computation than working directly with only 15 significant figures, and sometimes not.
For the reasoning behind the conversion to binary representation and back to decimal, and for more detail about accuracy in Excel and VBA consult these links.[6]
1. The shortcomings in the = 1 + x - 1
tasks are a combination of ‘fp-math weaknesses’ and ‘how Excel handles it’, especially Excel’s rounding. Excel does some rounding and / or ‘snap to zero’ for most of its results, in average chopping the last 3 bits of the IEEE double representation. This behavior can be switched of by setting the formula in parentheses: = ( 1 + 2^-52 - 1 )
. You will see that even that small value survives. Smaller values will pass away as there are only 53 bits to represent the value, for this case 1.0000000000 0000000000 0000000000 0000000000 0000000000 01, the first representing the 1
, and the last the 2^-52
.
2. It is not only clean powers of two surviving, but any combination of values constructed of bits which will be within the 53 bits once the decimal 1 is added. As most decimal values do not have a clean finite representation in binary they will suffer from ’round off’ and ‘cancellation’ in tasks like the above.
E.g. decimal 0.1 has the IEEE double representation 0 (1).1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1010 × 2^(-4)
; when added to 140737488355328.0 (which is 2+47) it will lose all of its bits, except the first two. Thus from ‘= ( 140737488355328.0 + 0.1 — 140737488355328.0) it will come back as 0.09375 instead of 0.1 when calculated with www.weitz.de/ieee (64 bit) as well as in Excel with the parentheses around the formula. This effect mostly can be managed by meaningful rounding, which Excel does not apply: It is up to the user.
Needless to say, other spreadsheets have similar problems, LibreOffice Calc uses a more aggressive rounding, while gnumeric tries to keep precision and make as well the precision as the ‘lack of’ visible for the user.
Examples where precision is no indicator of accuracy
This section needs expansion. You can help by adding to it. (April 2010) |
Statistical functions[edit]
Error in Excel 2007 calculation of standard deviation. All four columns have the same deviation of 0.5
Accuracy in Excel-provided functions can be an issue. Altman et al. (2004) provide this example:[7] The population standard deviation given by:
is mathematically equivalent to:
However, the first form keeps better numerical accuracy for large values of x, because squares of differences between x and x leads to less round-off than the differences between the much larger numbers Σ(x2) and (Σx)2 . The built-in Excel function STDEVP
, however, uses the less accurate formulation because it is faster computationally.[5]
Both the «compatibility» function STDEVP
and the «consistency» function STDEV.P
in Excel 2010 return the 0.5 population standard deviation for the given set of values. However, numerical inaccuracy still can be shown using this example by extending the existing figure to include 1015, whereupon the erroneous standard deviation found by Excel 2010 will be zero.
Subtraction of Subtraction Results[edit]
Doing simple subtractions may lead to errors as two cells may display the same numeric value while storing two separate values.
An example of this occurs in a sheet where the following cells are set to the following numeric values:
and the following cells contain the following formulas
Both cells and
display
.
However, if cell contains the formula
then does not display
as would be expected,
but displays instead.
The above is not limited to subtractions, try = 1 + 1.405*2^(-48)
in one cell, Excel rounds the display to 1,00000000000000000000, and = 0.9 + 225179982494413×2^(-51)
in another, same display[d]
above, different rounding for value and display, violates one of the elementary requirements in Goldberg (1991)[8]
who states:
- … ‘it is important to make sure that its use is transparent to the user. For example, on a calculator, if the internal representation of a displayed value is not rounded to the same precision as the display, then the result of further operations will depend on the hidden digits and appear unpredictable to the user’ …
The problem is not limited to Excel, e.g. LibreOffice calc acts similarly.
Round-off error[edit]
User computations must be carefully organized to ensure round-off error does not become an issue. An example occurs in solving a quadratic equation:
The solutions (the roots) of this equation are exactly determined by the quadratic formula:
When one of these roots is very large compared to the other, that is, when the square root is close to the value b, the evaluation of the root corresponding to subtraction of the two terms becomes very inaccurate due to round-off (cancellation?).
It is possible to determine the round-off error by using the Taylor series formula for the square root:
[9]
Consequently,
indicating that, as b becomes larger, the first surviving term, say ε:
becomes smaller and smaller. The numbers for b and the square root become nearly the same, and the difference becomes small:
Under these circumstances, all the significant figures go into expressing b. For example, if the precision is 15 figures, and these two numbers, b and the square root, are the same to 15 figures, the difference will be zero instead of the difference ε.
A better accuracy can be obtained from a different approach, outlined below.[e]
If we denote the two roots by r 1 and r 2, the quadratic equation can be written:
When the root r 1 >> r 2, the sum (r 1 + r 2 ) ≈ r 1 and comparison of the two forms shows approximately:
while
Thus, we find the approximate form:
These results are not subject to round-off error, but they are not accurate unless b2 is large compared to ac.
Excel graph of the difference between two evaluations of the smallest root of a quadratic: direct evaluation using the quadratic formula (accurate at smaller b) and an approximation for widely spaced roots (accurate for larger b). The difference reaches a minimum at the large dots, and round-off causes squiggles in the curves beyond this minimum.
The bottom line is that in doing this calculation using Excel, as the roots become farther apart in value, the method of calculation will have to switch from direct evaluation of the quadratic formula to some other method so as to limit round-off error. The point to switch methods varies according to the size of coefficients a and b.
In the figure, Excel is used to find the smallest root of the quadratic equation x2 + bx + c = 0 for c = 4 and c = 4 × 105. The difference between direct evaluation using the quadratic formula and the approximation described above for widely spaced roots is plotted vs. b. Initially the difference between the methods declines because the widely spaced root method becomes more accurate at larger b-values. However, beyond some b-value the difference increases because the quadratic formula (good for smaller b-values) becomes worse due to round-off, while the widely spaced root method (good for large b-values) continues to improve. The point to switch methods is indicated by large dots, and is larger for larger c-values. At large b-values, the upward sloping curve is Excel’s round-off error in the quadratic formula, whose erratic behavior causes the curves to squiggle.
A different field where accuracy is an issue is the area of numerical computing of integrals and the solution of differential equations. Examples are Simpson’s rule, the Runge–Kutta method, and the Numerov algorithm for the Schrödinger equation.[10]
Using Visual Basic for Applications, any of these methods can be implemented in Excel. Numerical methods use a grid where functions are evaluated. The functions may be interpolated between grid points or extrapolated to locate adjacent grid points. These formulas involve comparisons of adjacent values. If the grid is spaced very finely, round-off error will occur, and the less the precision used, the worse the round-off error. If spaced widely, accuracy will suffer. If the numerical procedure is thought of as a feedback system, this calculation noise may be viewed as a signal that is applied to the system, which will lead to instability unless the system is carefully designed.[11]
Accuracy within VBA[edit]
Although Excel nominally works with 8-byte numbers by default, VBA has a variety of data types. The Double data type is 8 bytes, the Integer data type is 2 bytes, and the general purpose 16 byte Variant data type can be converted to a 12 byte Decimal data type using the VBA conversion function CDec.[12]
Choice of variable types in a VBA calculation involves consideration of storage requirements, accuracy and speed.
Footnotes[edit]
- ^
Round-off is the loss of accuracy when numbers that differ by small amounts are subtracted. Because each number has only fifteen significant digits, their difference is inaccurate when there aren’t enough significant digits to express the difference. - ^
To input a number as binary, the number is submitted as a string of powers of 2: 2^(−50)*(2^0 + 2^−1 + ⋯). To input a number as decimal, the decimal number is typed in directly. - ^
This option is found on the «Excel options» - ^
Rounding is different in the range above 1 vs. below 1, which impacts on most decimal or binary magnitude changes. - ^
This approximate method is used often in the design of feedback amplifiers, where the two roots represent the response times of the system. See the article on step response.
References[edit]
- ^
«Floating-point arithmetic may give inaccurate results in Excel». Microsoft support. June 30, 2010. Revision 8.2 ; article ID: 78113. Retrieved 2010-07-02.
- ^
Dalton, Steve (2007). «Table 2.3: Worksheet data types and limits». Financial Applications Using Excel Add-in Development in C/C++ (2nd ed.). Wiley. pp. 13–14. ISBN 978-0-470-02797-4.
- ^
de Levie, Robert (2004). «Algorithmic accuracy». Advanced Excel for scientific data analysis. Oxford University Press. p. 44. ISBN 0-19-515275-1. - ^
«Excel addition strangeness». office-watch.com. - ^ a b
de Levie, Robert (2004). Advanced Excel for scientific data analysis. Oxford University Press. pp. 45–46. ISBN 0-19-515275-1. - ^
Accuracy in Excel:- «Floating point arithmetic may give inaccurate results». Microsoft support. KB 78113. — A detailed explanation with examples of the binary/15 sig fig storage consequences.
- «Why does Excel seem to give wrong answers?». Microsoft Developers’ Network (blog). Understanding floating point precision. 10 April 2008. Archived from the original on 30 March 2010. — Another detailed discussion with examples and some fixes.
- Goldberg, David (March 1991). «What every computer scientist should know about floating point». Computing Surveys (edited reprint). E19957-01 / 806-3568 – via Sun Microsystems. — Focuses upon examples of floating point representations of numbers.
- «Visual Basic and arithmetic precision». Microsoft support. Q279 / 7 / 55. — Oriented toward VBA, which does things a bit differently.
- Liengme, Bernard V. (2008). «Mathematical limitations of Excel». A guide to Microsoft Excel 2007 for scientists and engineers. Academic Press. p. 31 ff. ISBN 978-0-12-374623-8 – via Google Books.
- ^
Altman, Micah; Gill, Jeff; McDonald, Michael (2004). «§2.1.1 Revealing example: Computing the coefficient standard deviation». Numerical Issues in Statistical Computing for the Social Scientist. Wiley-IEEE. p. 12. ISBN 0-471-23633-0. - ^
Goldberg, David (March 1991). «What every computer scientist should know about floating point». Computing Surveys (edited reprint). E19957-01 / 806-3568 – via Sun Microsystems. — more or less ‘the holy book’ of fp-math - ^
Gradshteyn, I.S.; Ryzhik, I.M.; Geronimus, Yu.V.; Tseytlin, M.Yu.; Jeffrey, A. (2015) [October 2014]. «1.112. Power series». In Zwillinger, Daniel; Moll, Victor Hugo (eds.). Tables of Integrals, Series, and Products. Translated by Scripta Technica, Inc. (8 ed.). Academic Press, Inc. p. 25. ISBN 978-0-12-384933-5. LCCN 2014010276. ISBN 0-12-384933-0 - ^
Blom, Anders (2002). Computer algorithms for solving the Schrödinger and Poisson equations (PDF) (Report). Department of Physics. Lund University. - ^
Hamming, R.W. (1986). «Chapter 21 – Indefinite integrals – feedback». Numerical Methods for Scientists and Engineers (2nd ed.). Courier Dover Publications. p. 357. ISBN 0-486-65241-6. — This book discusses round-off, truncation and stability extensively. For example, see chapter 21, page 357. - ^
Walkenbach, John (2010). «Defining data types». Excel 2010 Power Programming with VBA. Wiley. pp. 198 ff & Table 8-1. ISBN 978-0-470-47535-5.
Содержание
- Настройка округления как на экране
- Включение настройки точности как на экране в современных версиях Excel
- Включение настройки точности как на экране в Excel 2007 и Excel 2003
- Вопросы и ответы
Производя различные вычисления в Excel, пользователи не всегда задумываются о том, что значения, выводящиеся в ячейках, иногда не совпадают с теми, которые программа использует для расчетов. Особенно это касается дробных величин. Например, если у вас установлено числовое форматирование, которое выводит числа с двумя десятичными знаками, то это ещё не значит, что Эксель так данные и считает. Нет, по умолчанию эта программа производит подсчет до 14 знаков после запятой, даже если в ячейку выводится всего два знака. Данный факт иногда может привести к неприятным последствиям. Для решения этой проблемы следует установить настройку точности округления как на экране.
Настройка округления как на экране
Но прежде, чем производить изменение настройки, нужно выяснить, действительно ли вам нужно включать точность как на экране. Ведь в некоторых случаях, когда используется большое количество чисел с десятичными знаками, при расчете возможен кумулятивный эффект, что снизит общую точность вычислений. Поэтому без лишней надобности этой настройкой лучше не злоупотреблять.
Включать точность как на экране, нужно в ситуациях следующего плана. Например, у вас стоит задача сложить два числа 4,41 и 4,34, но обязательным условиям является то, чтобы на листе отображался только один десятичный знак после запятой. После того, как мы произвели соответствующее форматирование ячеек, на листе стали отображаться значения 4,4 и 4,3, но при их сложении программа выводит в качестве результата в ячейку не число 4,7, а значение 4,8.
Это как раз связано с тем, что реально для расчета Эксель продолжает брать числа 4,41 и 4,34. После проведения вычисления получается результат 4,75. Но, так как мы задали в форматировании отображение чисел только с одним десятичным знаком, то производится округление и в ячейку выводится число 4,8. Поэтому создается видимость того, что программа допустила ошибку (хотя это и не так). Но на распечатанном листе такое выражение 4,4+4,3=8,8 будет ошибкой. Поэтому в данном случае вполне рациональным выходом будет включить настройку точности как на экране. Тогда Эксель будет производить расчет не учитывая те числа, которые программа держит в памяти, а согласно отображаемым в ячейке значениям.
Для того, чтобы узнать настоящее значение числа, которое берет для расчета Эксель, нужно выделить ячейку, где оно содержится. После этого в строке формул отобразится его значение, которое сохраняется в памяти Excel.
Урок: Округление чисел в Excel
Включение настройки точности как на экране в современных версиях Excel
Теперь давайте выясним, как включить точность как на экране. Сначала рассмотрим, как это сделать на примере программы Microsoft Excel 2010 и ее более поздних версий. У них этот компонент включается одинаково. А потом узнаем, как запустить точность как на экране в Excel 2007 и в Excel 2003.
- Перемещаемся во вкладку «Файл».
- В открывшемся окне кликаем по кнопке «Параметры».
- Запускается дополнительное окно параметров. Перемещаемся в нем в раздел «Дополнительно», наименование которого значится в перечне в левой части окна.
- После того, как перешли в раздел «Дополнительно» перемещаемся в правую часть окна, в которой расположены различные настройки программы. Находим блок настроек «При пересчете этой книги». Устанавливаем галочку около параметра «Задать точность как на экране».
- После этого появляется диалоговое окно, в котором говорится, что точность вычислений будет понижена. Жмем на кнопку «OK».
После этого в программе Excel 2010 и выше будет включен режим «точность как на экране».
Для отключения данного режима нужно снять галочку в окне параметров около настройки «Задать точность как на экране», потом щелкнуть по кнопке «OK» внизу окна.
Включение настройки точности как на экране в Excel 2007 и Excel 2003
Теперь давайте вкратце рассмотрим, как включается режим точности как на экране в Excel 2007 и в Excel 2003. Данные версии хотя и считаются уже устаревшими, но, тем не менее, их используют относительно немало пользователей.
Прежде всего, рассмотрим, как включить режим в Excel 2007.
- Жмем на символ Microsoft Office в левом верхнем углу окна. В появившемся списке выбираем пункт «Параметры Excel».
- В открывшемся окне выбираем пункт «Дополнительно». В правой части окна в группе настроек «При пересчете этой книги» устанавливаем галочку около параметра «Задать точность как на экране».
Режим точности как на экране будет включен.
В версии Excel 2003 процедура включения нужного нам режима отличается ещё больше.
- В горизонтальном меню кликаем по пункту «Сервис». В открывшемся списке выбираем позицию «Параметры».
- Запускается окно параметров. В нем переходим во вкладку «Вычисления». Далее устанавливаем галочку около пункта «Точность как на экране» и жмем на кнопку «OK» внизу окна.
Как видим, установить режим точности как на экране в Excel довольно несложно вне зависимости от версии программы. Главное определить, стоит ли в конкретном случае запускать данный режим или все-таки нет.