Меню

Excel для бухгалтера исправление ошибки округления

Бухгалтеры (и не только) знают одну «нехорошую» особенность Excel – «неумение» правильно суммировать. 🙂 Иногда это приводит к казусам в бухгалтерских документах, сформированных в Excel (рис. 1)

Рис. 1. Фрагмент счет-фактуры с «неверным» суммированием

Скачать заметку в формате Word, примеры в формате Excel

Видно, что общий итог по налогу (значение в ячейке G7) и стоимости товаров (Н7) отличаются на копейку от суммы по строкам (G4:G6 и Н4:Н6, соответственно). Это ошибка является следствием округления. Дело в том, что значения только отображаются в формате с двумя десятичными знаками. Фактические значения в этих ячейках содержат больше десятичных знаков (рис. 2). Excel суммирует не отображаемые значения, а фактические.

Рис. 2. Тот же счет-фактура с большим числом знаков после запятой

Чтобы значение в ячейке G7 равнялось сумме отображаемых значений в ячейках G4:G6, можно применить формулу массива, проводящую округление значений до двух десятичных знаков перед суммированием: {=СУММ(ОКРУГЛ(G4:G6;2))} (рис. 3). [1]

Рис. 3. «Правильное» суммирование с использованием формулы массива

Чуть подробнее, как работает эта формула. Excel формирует виртуальный массив (в памяти компьютера), состоящий из трех элементов: ОКРУГЛ(G4;2), ОКРУГЛ(G5;2), ОКРУГЛ(G6;2), то есть значений в ячейках G4:G6, округленных до двух десятичных знаков, а затем суммирует эти три элемента. Вуаля! 🙂

Ошибки округления можно также исключить, применив функцию ОКРУГЛ в каждой из ячеек диапазона G4:G6. Этот прием не требует применения формулы массива, однако требует многократного использования функции ОКРУГЛ. Вам судить, что проще!


[1] Идея подсмотрена в книге Джона Уокенбаха «MS Excel 2007. Библия пользователя». Если вы не использовали ранее формулы массива, рекомендую начать с заметки Excel. Введение в формулы массива.

Проблемы округления в EXCEL

Причиной того, что результат вычисления вышеуказанной формулы равен не 0,005, а 0,00500000000000012 в том, что EXCEL хранит и проводит вычисления с числами на основе стандарта IEEE 754 (стандарта двоичной арифметики с плавающей запятой). Этот стандарт предписывает хранить числа с плавающей запятой в двоичном формате. Это означает, что перед тем как значение будет использовано в вычислениях, его необходимо конвертировать в десятичный формат. Проблема в том, что не все числа могут быть абсолютно точно представлены в двоичном формате с плавающей запятой. Например, 0,1 не может быть представлено в виде конечного дробного двоичного числа, т.к. 0,1 соответствует 0,0001100110011 с периодом 0011. Т.к. EXCEL оперирует с точностью до 15 значащих цифр, то округление неизбежно. Хотя точность округления из-за конвертации из двоичного формата примерно 2,8Е-17, но как показывает практика, вполне можно получить вместо 0,005 число 0,00500000000000012, а это в некоторых случаях далеко не одно и тоже.

Приведем еще один пример: =0,29*100-ЦЕЛОЕ(0,29*100)=0

Результат равен ЛОЖЬ, а не ИСТИНА, не как следовало ожидать. Обратите внимание, что формула =0,27*100-ЦЕЛОЕ(0,27*100)=0 возвращает правильный результат (ИСТИНА).

Если переписать формулу в другом виде =0,29*100-ЦЕЛОЕ(0,29*100)-0 , то результат будет -3,5527136788005E-15, что и указывает на источник ошибки (значение, хотя и мало, но совсем не равно 0).

Источник ошибки Представим ситуацию, когда, например, в Условном форматировании , задано правило форматирования для результатов вычислений. Если значение ячейки равно 0, то, результат должен быть выделен красным фоном. В случае формулы =0,27*100-ЦЕЛОЕ(0,27*100) , этого не произойдет, т.к. 0 не равен числу -3,5527136788005E-15 (см. выше).

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

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

Лучше использовать следующий подход – задавайте точность округления самостоятельно, прямо в формуле. Для нашего случая это будет выглядеть так: =0,29*100-ЦЕЛОЕ(0,29*100)<0,001

Результат будет всегда ИСТИНА, даже если указать фантастическую точность =0,29*100-ЦЕЛОЕ(0,29*100)<1E-204

Другой подход – использовать явное округление =ЦЕЛОЕ(0,29*100)

Напоследок покажем, что коммутативный закон сложения (сумма не меняется от перестановки её слагаемых) в EXCEL работает не всегда (см. Файл примера ).

вернет результат =0, а не -3,55Е-15. А ведь мы просто переставили 0 из формулы =0,29*100-ЦЕЛОЕ(0,29*100)-0

=0,29*100-0,29-0 (результат -3,5527136788005E-15) =1*(0,5-0,4-0,1) (результат -2,77555756156289E-17)

Весьма вероятно, что таких арифметических операций в природе существует множество.

Ошибки Excel при округлении и введении данных в ячейки

Excel старается облегчить наш труд разными подсказками и авто-подстановками. Если все это выполняется вместе с нашими ожиданиями мы в восторге от этой программы. Но если авто-подстановка является ошибочной мы просто выходим из себя.

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

Ошибки при округлении дробных чисел

Как правильно округлить и суммировать числа в Excel?

Для наглядного примера выявления подобного рода ошибок ведите дробные числа 1,3 и 1,4 так как показано на рисунке, а под ними формулу для суммирования и вычисления результата.

Пример ошибки округления.

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

Как видите, в результате получаем абсурд: 1+1=3. Никакие форматы здесь не помогут. Решить данный вопрос поможет только функция «ОКРУГЛ». Запишите формулу с функцией так: =ОКРУГЛ(A1;0)+ОКРУГЛ(A2;0)

Функция округл.

Как правильно округлить и суммировать числа в столбце таблицы Excel? Если этих чисел будет целый столбец, то для быстрого получения точных расчетов следует использовать массив функций. Для этого мы введем такую формулу: =СУММ(ОКРУГЛ(A1:A7;0)). После ввода массива функций следует нажимать не «Enter», а комбинацию клавиш Ctrl+Shifi+Enter. В результате Excel сам подставит фигурные скобки «» – это значит, что функция выполняется в массиве. Результат вычисления массива функций на картинке:

Массив функций сумм и округл.

Можно пойти еще более рискованным путем, но его применять крайне не рекомендуется! Можно заставить Excel изменять содержимое ячейки в зависимости от ее формата. Для этого следует зайти «Файл»-«Параметры»-«Дополнительно» и в разделе «При пересчете этой книги:» указать «задать точность как на экране». Появиться предупреждение: «Данные будут изменены — точность будет понижена!»

Задать точность как на экране.

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

Здесь мы забегаем вперед, но иногда без этого сложно объяснить решение важных задач.

Пишем в Excel слово ИСТИНА или ЛОЖЬ как текст

  1. Вначале вписать форматирующий символ.
  2. Изменить формат ячейки на текстовый.

В ячейке А1 реализуем первый способ, а в А2 – второй.

Задание 1. В ячейку А1 введите слово с форматирующим символом так: «’истина». Обязательно следует поставить в начале слова символ апострофа «’», который можно ввести с английской раскладки клавиатуры (в русской раскладке символа апострофа нет). Тогда Excel скроет первый символ и будет воспринимать слова «истина» как текст, а не логический тип данных.

Задание 2. Перейдите на ячейку А2 и вызовите диалоговое окно «Формат ячеек». Например, с помощью комбинации клавиш CTRL+1 или контекстным меню правой кнопкой мышки. На вкладке «Число» в списке числовых форматов выберите «текстовый» и нажмите ОК. После чего введите в ячейку А2 слово «истина».

Задание 3. Для сравнения напишите тоже слово в ячейке А3 без апострофа и изменений форматов.

Истина как текст.

Как видите, апостроф виден только в строке формул.

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

Отображение формул

Заполните данными ячейки, так как показано ниже на рисунке:

Формула как текст.

Обычно комбинация символов набранных в B3 должна быть воспринята как формула и автоматически выполнен расчет. Но что если нам нужно записать текст именно таким способом и мы не желаем вычислять результат? Решить данную задачу можно аналогичным способом из примера описанного выше.

Excel для бухгалтера: исправление ошибки округления

Видно, что общий итог по налогу (значение в ячейке G7) и стоимости товаров (Н7) отличаются на копейку от суммы по строкам (G4:G6 и Н4:Н6, соответственно). Это ошибка является следствием округления. Дело в том, что значения только отображаются в формате с двумя десятичными знаками. Фактические значения в этих ячейках содержат больше десятичных знаков (рис. 2). Excel суммирует не отображаемые значения, а фактические.

Рис. 2. Тот же счет-фактура с большим числом знаков после запятой

Чтобы значение в ячейке G7 равнялось сумме отображаемых значений в ячейках G4:G6, можно применить формулу массива, проводящую округление значений до двух десятичных знаков перед суммированием: (рис. 3). [1]

Рис. 3. «Правильное» суммирование с использованием формулы массива

Чуть подробнее, как работает эта формула. Excel формирует виртуальный массив (в памяти компьютера), состоящий из трех элементов: ОКРУГЛ(G4;2), ОКРУГЛ(G5;2), ОКРУГЛ(G6;2), то есть значений в ячейках G4:G6, округленных до двух десятичных знаков, а затем суммирует эти три элемента. Вуаля!

Ошибки округления можно также исключить, применив функцию ОКРУГЛ в каждой из ячеек диапазона G4:G6. Этот прием не требует применения формулы массива, однако требует многократного использования функции ОКРУГЛ. Вам судить, что проще!

[1] Идея подсмотрена в книге Джона Уокенбаха «MS Excel 2007. Библия пользователя». Если вы не использовали ранее формулы массива, рекомендую начать с заметки Excel. Введение в формулы массива .

50 комментариев для “Excel для бухгалтера: исправление ошибки округления”

Для полноты картины можно упомянуть еще об одном варианте, в параметрах Excel указать «точность как на экране» (Файл-Параметры-Дополнительно-При пересчете этой книги: задать точность как на экране)

Спасибо за статью. «соответсвенно» лучше исправить

а как быть, если в документе производится большое количество вычислений, и числа «завязаны» друг за друга. использование формул ОКРУГЛ и т.п. немного неудобно.
как можно отключить округление отображаемого числа? как сделать, чтобы ексель показывал то что есть? пример — число 12345.6789, с точностью после запятой 2, он не округлял 12345.68, а отображал 12345.67, но значение оставалось 12345.6789?

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

Excel для бухгалтера: исправление ошибки округления

Бухгалтеры (и не только) знают одну «нехорошую» особенность Excel – «неумение» правильно суммировать. ? Иногда это приводит к казусам в бухгалтерских документах, сформированных в Excel (рис. 1)

Рис. 1. Фрагмент счет-фактуры с «неверным» суммированием

Скачать заметку в формате Word, примеры в формате Excel

Видно, что общий итог по налогу (значение в ячейке G7) и стоимости товаров (Н7) отличаются на копейку от суммы по строкам (G4:G6 и Н4:Н6, соответственно). Это ошибка является следствием округления. Дело в том, что значения только отображаются в формате с двумя десятичными знаками. Фактические значения в этих ячейках содержат больше десятичных знаков (рис. 2). Excel суммирует не отображаемые значения, а фактические.

Рис. 2. Тот же счет-фактура с большим числом знаков после запятой

Чтобы значение в ячейке G7 равнялось сумме отображаемых значений в ячейках G4:G6, можно применить формулу массива, проводящую округление значений до двух десятичных знаков перед суммированием: <=СУММ(ОКРУГЛ(G4:G6;2))>(рис. 3). [1]

Рис. 3. «Правильное» суммирование с использованием формулы массива

Чуть подробнее, как работает эта формула. Excel формирует виртуальный массив (в памяти компьютера), состоящий из трех элементов: ОКРУГЛ(G4;2), ОКРУГЛ(G5;2), ОКРУГЛ(G6;2), то есть значений в ячейках G4:G6, округленных до двух десятичных знаков, а затем суммирует эти три элемента. Вуаля! ?

Ошибки округления можно также исключить, применив функцию ОКРУГЛ в каждой из ячеек диапазона G4:G6. Этот прием не требует применения формулы массива, однако требует многократного использования функции ОКРУГЛ. Вам судить, что проще!

[1] Идея подсмотрена в книге Джона Уокенбаха «MS Excel 2007. Библия пользователя». Если вы не использовали ранее формулы массива, рекомендую начать с заметки Excel. Введение в формулы массива .

Что делать, если Эксель не считает или неверно считает сумму

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

Основные причины неисправности

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

Изменяем формат ячеек

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

Чтобы проверить, действительно ли дело в формате, следует перейти во вкладку «Главная». Предварительно, необходимо выбрать непроверенную ячейку. В этой вкладке находится информация о формате.

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

Список форматов в данном разделе полный, но без описаний и параметров. Поэтому в некоторых случаях пользователь не может найти нужный. Тогда, лучше воспользоваться другим методом. Так же, как и в первом варианте, следует выбрать ячейку. После этого кликнуть правой клавишей мыши и открыть команду «Формат ячеек».

В открытом окне находится полный список форматов с описанием и настройками. Достаточно выбрать нужный и нажать на «ОК».

Отключаем режим «Показать формулы»

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

Для отключения функции «Показать формулы», следует перейти в соответствующий раздел «Формулы». Здесь находится окно «Зависимости». Именно в нем расположена требуемая команда. Чтобы отобразить список всех зависимостей, следует кликнуть на стрелочке. Из перечня необходимо выбрать «Показать» и отключить данный режим, если он активен.

Ошибки в синтаксисе

Часто, неправильное отображение результата является следствием ошибок синтаксиса. Такое случается, если пользователь вводил вычисление самостоятельно и не прибегал к помощи встроенного мастера. Тогда, все ячейки с ошибками не будут выдавать расчет.

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

Включаем пересчет формулы

Все вычисления могут быть прописаны правильно, но в случае изменения значений ячеек, перерасчет не происходит. Тогда, может быть отключена функция автоматического изменения расчета. Чтобы это проверить, следует перейти в раздел «Файл», затем «Параметры».

В открытом окне необходимо перейти во вкладку «Формулы». Здесь находятся параметры вычислений. Достаточно установить флажок на пункте «Автоматически» и сохранить изменения, чтобы система начала проводить перерасчет.

Ошибка в формуле

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

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

Откроется окно, которое отображает саму формулу. Здесь, следует нажать на «Вычислить», чтобы провести проверку ошибки.

Другие ошибки

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

Формула не растягивается

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

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

Неверно считается сумма ячеек

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

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

Формула не считается автоматически

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

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

В excel неправильно считает сумму

Всем привет. Возникла проблема с Excel’ем — при подсчете значений в столбце получается сумма, отличной от сложенной вручную на калькуляторе. В изображении ниже сумма должна получатся 83,35, но Excel почему-то суммирует это до 83,3, хотя и стоит опция, чтобы было 2 знака после запятой. Что сделать так, чтобы сумма считалась нормально? Использование СУММПРОИЗВ эффекта не дало. ОС Windows 7 X32, Excel 2010.

Так же помните что два знака после запятой — это только при выводе на экран. Число в ячейке может иметь больше знаков и фактически быть как больше так и меньше показаного округленного значения.

Например, число 1.185 будет показано как 1.19, но при сложении будет использовано именно 1.185.

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

This posting is provided «AS IS» with no warranties, and confers no rights.

  • Помечено в качестве ответа Жук MVP, Moderator 7 сентября 2015 г. 22:45

Так как ввод данных и формулы расчёта зависит от Вас, то можно сказать однозначно, что не правильно считаете Вы 😉 :))

Правильнее, разместить Ваш файл-пример руководствуясь разделом Q9 справки, в общедоступной папке бесплатного хранилища OneDrive и ссылку на папку с файлом-примером, вставить в своё сообщение:

83,35

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 5 сентября 2015 г. 0:04
  • Помечено в качестве ответа Жук MVP, Moderator 5 сентября 2015 г. 0:57

Все ответы

Промежуточные суммы посчитайте — это мопомет найти «битую» ячейку

Так же помните что два знака после запятой — это только при выводе на экран. Число в ячейке может иметь больше знаков и фактически быть как больше так и меньше показаного округленного значения.

Например, число 1.185 будет показано как 1.19, но при сложении будет использовано именно 1.185.

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

This posting is provided «AS IS» with no warranties, and confers no rights.

  • Помечено в качестве ответа Жук MVP, Moderator 7 сентября 2015 г. 22:45

Так как ввод данных и формулы расчёта зависит от Вас, то можно сказать однозначно, что не правильно считаете Вы 😉 :))

Правильнее, разместить Ваш файл-пример руководствуясь разделом Q9 справки, в общедоступной папке бесплатного хранилища OneDrive и ссылку на папку с файлом-примером, вставить в своё сообщение:

83,35

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 5 сентября 2015 г. 0:04
  • Помечено в качестве ответа Жук MVP, Moderator 5 сентября 2015 г. 0:57

Судя по Вашему вопросу, Вы не загружали Ваш файл-пример, ссылку на который Вам дал в предыдущем сообщении. Загрузите по ссылке данный Вам, файл-пример.

Формула суммирования =СУММ(A1:A35)

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 7 сентября 2015 г. 9:41

Так же помните что два знака после запятой — это только при выводе на экран. Число в ячейке может иметь больше знаков и фактически быть как больше так и меньше показаного округленного значения.

Например, число 1.185 будет показано как 1.19, но при сложении будет использовано именно 1.185.

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

This posting is provided «AS IS» with no warranties, and confers no rights.

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

Excel неправильно считает. Почему?

Часто при вычислении разницы двух ячеек в Excel можно видеть, что она не равна нулю, хотя числа одинаковые. Например, в ячейках A1 и B1 записано одно и тоже число 10,7 , а в C1 мы вычитаем из одного другое:

И самое странное то, что в итоге мы не получаем 0! Почему?

Причина очевидная — формат ячеек
Сначала самый очевидный ответ: если идет сравнение значений двух ячеек, то необходимо убедиться, что числа там действительно равны и не округлены форматом ячеек. Например, если взять те же числа из примера выше, то если выделить их -правая кнопка мыши —Формат ячеек (Format cells) -вкладка Число (Number) -выбираем формат Числовой и выставляем число десятичных разрядов равным 7:

Теперь все становится очевидным — числа отличаются и были просто округлены форматом ячеек. И естественно не могут быть равны. В данном случае оптимальным будет понять почему числа именно такие, а уже потом принимать решение. И если уверены, что числа надо реально округлять до десятых долей — то можно применить в формуле функцию ОКРУГЛ:
=ОКРУГЛ( B1 ;1)-ОКРУГЛ( A1 ;1)=0
=ROUND(B1,1)-ROUND(A1,1)=0
Так же есть более кардинальный метод:

  • Excel 2007:Кнопка офисПараметры Excel (Excel options)Дополнительно (Advanced)Задать точность как на экране (Set precision as displayed)
  • Excel 2010:Файл (File)Параметры (Options)Дополнительно (Advanced)Задать точность как на экране (Set precision as displayed)
  • Excel 2013 и выше:Файл (File)Параметры (Options)Дополнительно (Advanced)Задать указанную точность (Set precision as displayed)

Это запишет все числа на всех листах книги ровно так, как они отображены форматом ячеек. Данное действие лучше выполнять на копии книги, т.к. оно приводит все числовые данные во всех листах книги к тому виду, как они отображены на экране. Т.е. если само число содержит 5 десятичных разрядов, а форматом ячеек задан только 1 — то после применения данной опции число будет округлено до 1 знака после запятой. При этом отменить данную операцию нельзя, если только не закрыть книгу без сохранения.

Причина программная
Но нередко в Excel можно наблюдать более интересный «феномен»: разница двух дробных чисел, полученная формулой не равна точно такому же числу, записанному напрямую в ячейку. Для примера, запишите в ячейку такую формулу:
=10,8-10,7=0,1
по виду результатом должен быть ответ ИСТИНА (TRUE) . Но по факту будет ЛОЖЬ (FALSE) . И этот пример не единственный — такое поведение Excel далеко не редкость при вычислениях. Его можно встретить и в менее явной форме — когда вычисления основаны на значении других ячеек, которые тоже в свою очередь вычисляются формулами и т.д. Но причина во всех случаях одна.

Почему с виду одинаковые числа не равны?
Сначала разберемся почему Excel считает приведенное выше выражение ложным. Ведь если вычесть из 10,8 число 10,7 — в любом случае получится 0,1 . Значит где-то по пути что-то пошло не так. Запишем в отдельную ячейку левую часть выражения: =10,8-10,7 . В ячейке появится 0,1 . А теперь выделяем эту ячейку -правая кнопка мыши —Формат ячеек (Format cells) -вкладка Число (Number) -выбираем формат Числовой и выставляем число десятичных разрядов равным 15:

и теперь видно, что на самом деле в ячейке не ровно 0,1 , а 0,100000000000001 . Т.е. в 15 значащем разряде у нас появился «хвостик» в виде лишней единицы.
А теперь будем разбираться откуда этот «хвостик» появился, ведь и логически и математически его там быть не должно. Рассказать я постараюсь очень кратко и без лишних заумностей — их на эту тему при желании можно найти в интернете немало.
Все дело в том, что в те далекие времена(это примерно 1970-е годы), когда ПК был еще чем-то вроде экзотики, не было единого стандарта работы с числами с плавающей запятой(дробных, если по простому). Зачем вообще этот стандарт? Затем, что компьютерные программы видят числа по своему, а дробные так вообще со статусом «все сложно». И при этом одно и то же дробное число можно представить по-разному и обрабатывать операции с ним тоже. Поэтому в те времена одна и та же программа, при работе с числами, могла выдать различный результат на разных ПК. Учесть все возможные подводные камни каждого ПК задача не из простых, поэтому в один прекрасный момент началась разработка единого стандарта для работы с числами с плавающей запятой. Опуская различные подробности, нюансы и интересности самой истории скажу лишь, что в итоге все это вылилось в стандарт IEEE754. А в соответствии с его спецификацией в десятичном представлении любого числа допускаются ошибки в 15-м значащем разряде. Что и приводит к неизбежным ошибкам в вычислениях. Чаще всего это можно наблюдать именно в операциях вычитания, т.к. именно вычитание близких между собой чисел ведет к потере значимых разрядов.
Подробнее про саму спецификацию так же можно узнать в статье Microsoft: Результаты арифметических операций с плавающей точкой в Excel могут быть неточными
Вот это как раз и является виной подобного поведения Excel. Хотя справедливости ради надо отметить, что не только Excel, а всех программ, основанных на данном стандарте. Конечно, напрашивается логичный вопрос: а зачем же приняли такой глючный стандарт? Я бы сказал, что был выбран компромисс между производительностью и функциональностью. Хотя возможно, были и другие причины.

Куда важнее другое: как с этим бороться?
По сути никак, т.к. это программная «ошибка». И в данном случае нет иного выхода, как использовать всякие заплатки вроде ОКРУГЛ и ей подобных функций. При этом ОКРУГЛ здесь надо применять не как в было продемонстрировано в самом начале, а чуть иначе:
=ОКРУГЛ( 10,8 — 10,7 ;1)=0,1
=ROUND(10.8-10.7,1)=0,1
т.е. в ОКРУГЛ мы должны поместить само «глючное» выражение, а не каждый его аргумент отдельно. Если поместить каждый аргумент — то эффекта это не даст, ведь проблема не в самом числе, а в том, как его видит программа. И в данном случае 10,8 и 10,7 уже округлены до одного разряда и понятно, что округление отдельно каждого числа не даст вообще никакого эффекта. Можно, правда, выкрутиться и иначе. Умножить каждое число на некую величину(скажем на 1000, чтобы 100% убрать знаки после запятой) и после этого производить вычитание и сравнение:
=((10,8*1000)-(10,7*1000))/1000=0,1

Хочется верить, что хоть когда-нибудь описанную особенность стандарта IEEE754 Microsoft сможет победить или хотя бы сделать заплатку, которая будет производить простые вычисления не хуже 50-рублевого калькулятора 🙂

Статья помогла? Поделись ссылкой с друзьями!

Компьютер + Интернет + блог = Статьи, приносящие деньги

Забирайте в подарок мой многолетний опыт — книгу «Автопродажи через блог»

Эксель неправильно считает сумму, не вычитает, причины

Я много пишу о работе в программе Еxcel, есть и статья о том, как производить суммирование. Но, после этого ко мне стали поступать вопросы, почему Эксель неправильно считает сумму.

Хочу срезу сказать, что программа не может считать неправильно, за каждой такой ошибкой стоит наша невнимательность.

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

Эксель неправильно считает сумму

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

Ошибки допускаемые при подсчёте:

  • В столбце используют значения нескольких видов: чистые числа и числа с рублями, долларами, евро. Например, 10, 30, 5 руб, $4 и так далее. Или где-то не целые числа, а дробные;
  • В таблице присутствуют скрытые ячейки (строки), которые добавляются к общей сумме;
  • Ошибочная формула. Высока вероятность того, что допущена ошибка при вводе выражения;
  • Ошибка в округлении. Задайте для всех ячеек, содержащих числа, числовой формат с 3 или 4 знаками после запятой;
  • В качестве разделения целого значения используют точку вместо запятой.

Как видите, все причины ошибок — это людской фактор, а программа лишь выполняет то, что заложено в её задачах.

Эксель отказывается подсчитывать сумму

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

И опять, таки, всё дело в нашей невнимательности или в неверных настройках. А для получения верных расчётов, необходима правильная настройка Excel для финансовых расчётов.

Давайте пройдём по порядку, по всем пунктам.

Текстовые и числовые значения

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

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

Посмотрите внимательно на ячейки с цифрами, если вы заметили в левом верхнем углу треугольник — то это текстовая ячейка.

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

Появится значок с восклицательным знаком. Клик по нему — преобразовать в число.

Обычно этого достаточно для того, чтобы программа стала работать. Но, если этого не случилось, двигаемся далее.

Автоматический расчёт формул в Excel

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

Пройдите по пути — файл — параметры — формулы — установите галочку — автоматически.

После изменения данной настройки программа подсчитает всё, что вам нужно.

Сумма не совпадает с калькулятором

Опять же, вся проблема в округлении. Например, при подсчёте на калькуляторе, как правило, считаем 2 знака после запятой.

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

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

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

Поэтому, если вы заметили, что Эксель неправильно считает сумму, не спеша проверьте всё то, о чём я сегодня написал для вас.

Поиск ошибки в вычислениях

Excel старается облегчить наш труд разными подсказками и авто-подстановками. Если все это выполняется вместе с нашими ожиданиями мы в восторге от этой программы. Но если авто-подстановка является ошибочной мы просто выходим из себя.

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

Ошибки при округлении дробных чисел

Как правильно округлить и суммировать числа в Excel?

Для наглядного примера выявления подобного рода ошибок ведите дробные числа 1,3 и 1,4 так как показано на рисунке, а под ними формулу для суммирования и вычисления результата.

Пример ошибки округления.

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

Как видите, в результате получаем абсурд: 1+1=3. Никакие форматы здесь не помогут. Решить данный вопрос поможет только функция «ОКРУГЛ». Запишите формулу с функцией так: =ОКРУГЛ(A1;0)+ОКРУГЛ(A2;0)

Функция округл.

Как правильно округлить и суммировать числа в столбце таблицы Excel? Если этих чисел будет целый столбец, то для быстрого получения точных расчетов следует использовать массив функций. Для этого мы введем такую формулу: =СУММ(ОКРУГЛ(A1:A7;0)). После ввода массива функций следует нажимать не «Enter», а комбинацию клавиш Ctrl+Shifi+Enter. В результате Excel сам подставит фигурные скобки «{}» – это значит, что функция выполняется в массиве. Результат вычисления массива функций на картинке:

Массив функций сумм и округл.

Можно пойти еще более рискованным путем, но его применять крайне не рекомендуется! Можно заставить Excel изменять содержимое ячейки в зависимости от ее формата. Для этого следует зайти «Файл»-«Параметры»-«Дополнительно» и в разделе «При пересчете этой книги:» указать «задать точность как на экране». Появиться предупреждение: «Данные будут изменены — точность будет понижена!»

Задать точность как на экране.

Внимание!!! Работая в таком режиме, изменив один раз количество разрядов, уже нельзя вернуть исходные данные обратно. Это путь только в одну сторону. Поэтому лучше его не использовать. А массив функций прекрасно и безопасно справляется с данной задачей.

Здесь мы забегаем вперед, но иногда без этого сложно объяснить решение важных задач.



Пишем в Excel слово ИСТИНА или ЛОЖЬ как текст

Заставить программу воспринимать слова логических типов данных как текст можно двумя способами:

  1. Вначале вписать форматирующий символ.
  2. Изменить формат ячейки на текстовый.

В ячейке А1 реализуем первый способ, а в А2 – второй.

Задание 1. В ячейку А1 введите слово с форматирующим символом так: «’истина». Обязательно следует поставить в начале слова символ апострофа «’», который можно ввести с английской раскладки клавиатуры (в русской раскладке символа апострофа нет). Тогда Excel скроет первый символ и будет воспринимать слова «истина» как текст, а не логический тип данных.

Задание 2. Перейдите на ячейку А2 и вызовите диалоговое окно «Формат ячеек». Например, с помощью комбинации клавиш CTRL+1 или контекстным меню правой кнопкой мышки. На вкладке «Число» в списке числовых форматов выберите «текстовый» и нажмите ОК. После чего введите в ячейку А2 слово «истина».

Задание 3. Для сравнения напишите тоже слово в ячейке А3 без апострофа и изменений форматов.

Истина как текст.

Как видите, апостроф виден только в строке формул.

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

Отображение формул

Заполните данными ячейки, так как показано ниже на рисунке:

Формула как текст.

Обычно комбинация символов набранных в B3 должна быть воспринята как формула и автоматически выполнен расчет. Но что если нам нужно записать текст именно таким способом и мы не желаем вычислять результат? Решить данную задачу можно аналогичным способом из примера описанного выше.

Содержание

  • 1 Как округлить число форматом ячейки
  • 2 Как правильно округлить число в Excel
    • 2.1 Как округлить число в Excel до тысяч?
  • 3 Как округлить в большую и меньшую сторону в Excel
  • 4 Как округлить до целого числа в Excel?
    • 4.1 Почему Excel округляет большие числа?
  • 5 Хранение чисел в памяти Excel
  • 6 Округление с помощью кнопок на ленте
  • 7 Округление через формат ячеек
  • 8 Установка точности расчетов
  • 9 Применение функций
    • 9.1 Помогла ли вам эта статья?
  • 10 Excel для бухгалтера: исправление ошибки округления

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

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

Как округлить число форматом ячейки

Впишем в ячейку А1 значение 76,575. Щелкнув правой кнопкой мыши, вызываем меню «Формат ячеек». Сделать то же самое можно через инструмент «Число» на главной странице Книги. Или нажать комбинацию горячих клавиш CTRL+1.

Выбираем числовой формат и устанавливаем количество десятичных знаков – 0.

Результат округления:

Назначить количество десятичных знаков можно в «денежном» формате, «финансовом», «процентном».

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

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

С помощью функции ОКРУГЛ() (округляет до необходимого пользователю количества десятичных разрядов). Для вызова «Мастера функций» воспользуемся кнопкой fx. Нужная функция находится в категории «Математические».

Аргументы:

  1. «Число» — ссылка на ячейку с нужным значением (А1).
  2. «Число разрядов» — количество знаков после запятой, до которого будет округляться число (0 – чтобы округлить до целого числа, 1 – будет оставлен один знак после запятой, 2 – два и т.д.).

Теперь округлим целое число (не десятичную дробь). Воспользуемся функцией ОКРУГЛ:

  • первый аргумент функции – ссылка на ячейку;
  • второй аргумент – со знаком «-» (до десятков – «-1», до сотен – «-2», чтобы округлить число до тысяч – «-3» и т.д.).

Как округлить число в Excel до тысяч?

Пример округления числа до тысяч:

Формула: =ОКРУГЛ(A3;-3).

Округлить можно не только число, но и значение выражения.

Допустим, есть данные по цене и количеству товара. Необходимо найти стоимость с точностью до рубля (округлить до целого числа).

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

Как округлить в большую и меньшую сторону в Excel

Для округления в большую сторону – функция «ОКРУГЛВВЕРХ».

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

Второй аргумент: «0» — округление десятичной дроби до целой части, «1» — функция округляет, оставляя один знак после запятой, и т.д.

Формула: =ОКРУГЛВВЕРХ(A1;0).

Результат:

Чтобы округлить в меньшую сторону в Excel, применяется функция «ОКРУГЛВНИЗ».

Пример формулы: =ОКРУГЛВНИЗ(A1;1).

Полученный результат:

Формулы «ОКРУГЛВВЕРХ» и «ОКРУГЛВНИЗ» используются для округления значений выражений (произведения, суммы, разности и т.п.).

Как округлить до целого числа в Excel?

Чтобы округлить до целого в большую сторону используем функцию «ОКРУГЛВВЕРХ». Чтобы округлить до целого в меньшую сторону используем функцию «ОКРУГЛВНИЗ». Функция «ОКРУГЛ» и формата ячеек так же позволяют округлить до целого числа, установив количество разрядов – «0» (см.выше).

В программе Excel для округления до целого числа применяется также функция «ОТБР». Она просто отбрасывает знаки после запятой. По сути, округления не происходит. Формула отсекает цифры до назначенного разряда.

Сравните:

Второй аргумент «0» — функция отсекает до целого числа; «1» — до десятой доли; «2» — до сотой доли и т.д.

Специальная функция Excel, которая вернет только целое число, – «ЦЕЛОЕ». Имеет единственный аргумент – «Число». Можно указать числовое значение либо ссылку на ячейку.

Недостаток использования функции «ЦЕЛОЕ» — округляет только в меньшую сторону.

Округлить до целого в Excel можно с помощью функций «ОКРВВЕРХ» и «ОКРВНИЗ». Округление происходит в большую или меньшую сторону до ближайшего целого числа.

Пример использования функций:

Второй аргумент – указание на разряд, до которого должно произойти округление (10 – до десятков, 100 – до сотен и т.д.).

Округление до ближайшего целого четного выполняет функция «ЧЕТН», до ближайшего нечетного – «НЕЧЕТ».

Пример их использования:

Почему Excel округляет большие числа?

Если в ячейки табличного процессора вводятся большие числа (например, 78568435923100756), Excel по умолчанию автоматически округляет их вот так: 7,85684E+16 – это особенность формата ячеек «Общий». Чтобы избежать такого отображения больших чисел нужно изменить формат ячейки с данным большим числом на «Числовой» (самый быстрый способ нажать комбинацию горячих клавиш CTRL+SHIFT+1). Тогда значение ячейки будет отображаться так: 78 568 435 923 100 756,00. При желании количество разрядов можно уменьшить: «Главная»-«Число»-«Уменьшить разрядность».

как сделать чтобы excel считал округленные числа

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

Хранение чисел в памяти Excel

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

С помощью операции округления, Microsoft Excel отбрасывает некоторое количество знаков после запятой. В Excel применяется общепринятый способ округления, когда число меньше 5 округляется в меньшую сторону, а больше или равно 5 – в большую сторону.

Округление с помощью кнопок на ленте

Самым простым способом изменить округление числа — это выделить ячейку или группу ячеек, и находясь во вкладке «Главная», нажать на ленте на кнопку «Увеличить разрядность» или «Уменьшить разрядность». Обе кнопки располагаются в блоке инструментов «Число». При этом, будет округляться только отображаемое число, но для вычислений, при необходимости будут задействованы до 15 разрядов чисел.

При нажатии на кнопку «Увеличить разрядность», количество внесенных знаков после запятой увеличивается на один.

как сделать чтобы excel считал округленные числа

При нажатии на кнопку «Уменьшить разрядность» количество цифр после запятой уменьшается на одну.

как сделать чтобы excel считал округленные числа

Округление через формат ячеек

Также можно выставить округление с помощью настроек формата ячеек. Для этого, нужно выделить диапазон ячеек на листе, кликнуть правой кнопкой мыши, и в появившемся меню выбрать пункт «Формат ячеек».

как сделать чтобы excel считал округленные числа

В открывшемся окне настроек формата ячеек нужно перейти во вкладку «Число». Если формат данных указан не числовой, то нужно выбрать именно числовой формат, иначе вы не сможете регулировать округление. В центральной части окна около надписи «Число десятичных знаков» просто указываем цифрой то число знаков, которое желаем видеть при округлении. После этого, выполняем клик по кнопке «OK».

как сделать чтобы excel считал округленные числа

Установка точности расчетов

Если в предыдущих случаях, устанавливаемые параметры влияли только на внешнее отображения данных, а при расчетах использовались более точные показатели (до 15 знака), то сейчас мы расскажем, как изменить саму точность расчетов.

Для этого, переходим во вкладку «Файл». Далее, перемещаемся в раздел «Параметры».

как сделать чтобы excel считал округленные числа

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

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

Применение функций

Если же вы хотите изменить величину округления при расчете относительно одной или нескольких ячеек, но не хотите понижать точность расчетов в целом для документа, то в этом случае, лучше всего воспользоваться возможностями, которые предоставляет функция «ОКРУГЛ», и различные её вариации, а также некоторые другие функции.

Среди основных функций, которые регулируют округление, следует выделить такие:

  • ОКРУГЛ – округляет до указанного числа десятичных знаков, согласно общепринятым правилам округления;
  • ОКРУГЛВВЕРХ – округляет до ближайшего числа вверх по модулю;
  • ОКРУГЛВНИЗ – округляет до ближайшего числа вниз по модулю;
  • ОКРУГЛТ – округляет число с заданной точностью;
  • ОКРВВЕРХ – округляет число с заданной точность вверх по модулю;
  • ОКРВНИЗ – округляет число вниз по модулю с заданной точностью;
  • ОТБР – округляет данные до целого числа;
  • ЧЕТН – округляет данные до ближайшего четного числа;
  • НЕЧЕТН – округляет данные до ближайшего нечетного числа.

Для функций ОКРУГЛ, ОКРУГЛВВЕРХ и ОКРУГЛВНИЗ следующий формат ввода: «Наименование функции (число;число_разрядов). То есть, если вы, например, хотите округлить число 2,56896 до трех разрядов, то применяете функцию ОКРУГЛ(2,56896;3). На выходе получается число 2,569.

Для функций ОКРУГЛТ, ОКРВВЕРХ и ОКРВНИЗ применяется такая формула округления: «Наименование функции(число;точность)». Например, чтобы округлить число 11 до ближайшего числа кратного 2, вводим функцию ОКРУГЛТ(11;2). На выходе получается число 12.

Функции ОТБР, ЧЕТН и НЕЧЕТ используют следующий формат: «Наименование функции(число)». Для того, чтобы округлить число 17 до ближайшего четного применяем функцию ЧЕТН(17). Получаем число 18.

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

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

Для этого, переходим во вкладку «Формулы». Кликаем по копке «Математические». Далее, в открывшемся списке выбираем нужную функцию, например ОКРУГЛ.

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

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

Опять открывается окно аргументов функции. В поле «Число разрядов» записываем разрядность, до которой нам нужно сокращать дроби. После этого, жмем на кнопку «OK».

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

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

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

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Да Нет

Excel для бухгалтера: исправление ошибки округления

Бухгалтеры (и не только) знают одну «нехорошую» особенность Excel`я – «неумение» правильно суммировать. 🙂 Иногда это приводит к казусам в бухгалтерских документах, сформированных в Excel (рис. 1)

Рис. 1. Фрагмент счет-фактуры с «неверным» суммированием

Скачать заметку в формате Word, примеры в формате Excel

Видно, что общий итог по налогу (значение в ячейке G7) и стоимости товаров (Н7) отличаются на копейку от суммы по строкам (G4:G6 и Н4:Н6, соответственно). Это ошибка является следствием округления. Дело в том, что значения только отображаются в формате с двумя десятичными знаками. Фактические значения в этих ячейках содержат больше десятичных знаков (рис. 2). Excel суммирует не отображаемые значения, а фактические.

Рис. 2. Тот же счет-фактура с большим числом знаков после запятой

Чтобы значение в ячейке G7 равнялось сумме отображаемых значений в ячейках G4:G6, можно применить формулу массива, проводящую округление значений до двух десятичных знаков перед суммированием: {=СУММ(ОКРУГЛ(G4:G6;2))} (рис. 3).

Рис. 3. «Правильное» суммирование с использованием формулы массива

Чуть подробнее, как работает эта формула. Excel формирует виртуальный массив (в памяти компьютера), состоящий из трех элементов: ОКРУГЛ(G4;2), ОКРУГЛ(G5;2), ОКРУГЛ(G6;2), то есть значений в ячейках G4:G6, округленных до двух десятичных знаков, а затем суммирует эти три элемента. Вуаля! 🙂

Ошибки округления можно также исключить, применив функцию ОКРУГЛ в каждой из ячеек диапазона G4:G6. Этот прием не требует применения формулы массива, однако требует многократного использования функции ОКРУГЛ. Вам судить, что проще!

Идея подсмотрена в книге Джона Уокенбаха «MS Excel 2007. Библия пользователя». Если вы не использовали ранее формулы массива, рекомендую начать с заметки Excel. Введение в формулы массива.

Точность округления как на экране в Microsoft Excel

Производя различные вычисления в 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

Теперь давайте выясним, как включить точность как на экране. Сначала рассмотрим, как это сделать на примере программы Microsoft Excel 2010 и ее более поздних версий. У них этот компонент включается одинаково. А потом узнаем, как запустить точность как на экране в Excel 2007 и в Excel 2003.

    Перемещаемся во вкладку «Файл».

Запускается дополнительное окно параметров. Перемещаемся в нем в раздел «Дополнительно», наименование которого значится в перечне в левой части окна.

После того, как перешли в раздел «Дополнительно» перемещаемся в правую часть окна, в которой расположены различные настройки программы. Находим блок настроек «При пересчете этой книги». Устанавливаем галочку около параметра «Задать точность как на экране».

  • После этого появляется диалоговое окно, в котором говорится, что точность вычислений будет понижена. Жмем на кнопку «OK».
  • После этого в программе Excel 2010 и выше будет включен режим «точность как на экране».

    Для отключения данного режима нужно снять галочку в окне параметров около настройки «Задать точность как на экране», потом щелкнуть по кнопке «OK» внизу окна.

    Включение настройки точности как на экране в Excel 2007 и Excel 2003

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

    Прежде всего, рассмотрим, как включить режим в Excel 2007.

    1. Жмем на символ Microsoft Office в левом верхнем углу окна. В появившемся списке выбираем пункт «Параметры Excel».
    2. В открывшемся окне выбираем пункт «Дополнительно». В правой части окна в группе настроек «При пересчете этой книги» устанавливаем галочку около параметра «Задать точность как на экране».

    Режим точности как на экране будет включен.

    В версии Excel 2003 процедура включения нужного нам режима отличается ещё больше.

    1. В горизонтальном меню кликаем по пункту «Сервис». В открывшемся списке выбираем позицию «Параметры».
    2. Запускается окно параметров. В нем переходим во вкладку «Вычисления». Далее устанавливаем галочку около пункта «Точность как на экране» и жмем на кнопку «OK» внизу окна.

    Как видим, установить режим точности как на экране в Excel довольно несложно вне зависимости от версии программы. Главное определить, стоит ли в конкретном случае запускать данный режим или все-таки нет.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Excel для бухгалтера: исправление ошибки округления

    Бухгалтеры (и не только) знают одну «нехорошую» особенность Excel – «неумение» правильно суммировать. Иногда это приводит к казусам в бухгалтерских документах, сформированных в Excel (рис. 1)

    Рис. 1. Фрагмент счет-фактуры с «неверным» суммированием

    Скачать заметку в формате Word, примеры в формате Excel

    Видно, что общий итог по налогу (значение в ячейке G7) и стоимости товаров (Н7) отличаются на копейку от суммы по строкам (G4:G6 и Н4:Н6, соответственно). Это ошибка является следствием округления. Дело в том, что значения только отображаются в формате с двумя десятичными знаками. Фактические значения в этих ячейках содержат больше десятичных знаков (рис. 2). Excel суммирует не отображаемые значения, а фактические.

    Рис. 2. Тот же счет-фактура с большим числом знаков после запятой

    Чтобы значение в ячейке G7 равнялось сумме отображаемых значений в ячейках G4:G6, можно применить формулу массива, проводящую округление значений до двух десятичных знаков перед суммированием: <=СУММ(ОКРУГЛ(G4:G6;2))>(рис. 3). [1]

    Рис. 3. «Правильное» суммирование с использованием формулы массива

    Чуть подробнее, как работает эта формула. Excel формирует виртуальный массив (в памяти компьютера), состоящий из трех элементов: ОКРУГЛ(G4;2), ОКРУГЛ(G5;2), ОКРУГЛ(G6;2), то есть значений в ячейках G4:G6, округленных до двух десятичных знаков, а затем суммирует эти три элемента. Вуаля!

    Ошибки округления можно также исключить, применив функцию ОКРУГЛ в каждой из ячеек диапазона G4:G6. Этот прием не требует применения формулы массива, однако требует многократного использования функции ОКРУГЛ. Вам судить, что проще!

    [1] Идея подсмотрена в книге Джона Уокенбаха «MS Excel 2007. Библия пользователя». Если вы не использовали ранее формулы массива, рекомендую начать с заметки Excel. Введение в формулы массива .

    Комментарии: 42 комментария

    Для полноты картины можно упомянуть еще об одном варианте, в параметрах Excel указать «точность как на экране» (Файл-Параметры-Дополнительно-При пересчете этой книги: задать точность как на экране)

    Вот не рекомендуют программисты такой способ

    Очень осторожно с этой приблудой. Точность_как_на_экране применяется ко всем листам книги и после сохранения вернуть прежние значения не получится.

    Спасибо ! Очень помогло! сэкономило кучу времени

    Спасибо за статью. «соответсвенно» лучше исправить

    а как быть, если в документе производится большое количество вычислений, и числа «завязаны» друг за друга. использование формул ОКРУГЛ и т.п. немного неудобно.
    как можно отключить округление отображаемого числа? как сделать, чтобы ексель показывал то что есть? пример — число 12345.6789, с точностью после запятой 2, он не округлял 12345.68, а отображал 12345.67, но значение оставалось 12345.6789?

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

    Как быть, если это не помогло. В формате ячейки ставлю «2 знака после запятой» затем вписываю в нее число 1950,4787, то автоматически записывается 1950,48, остальное отбрасывается вообще.

    >>остальное отбрасывается вообще
    Не отбрасывается, а не отображается в ячейке. Формат — лишь визуальное представление значения Выделите ячейку и посмотрите в строке формул — там то число, которое находится в ячейке

    >>В формате ячейки ставлю «2 знака после запятой».
    А кто Вам мешает поставить 4?

    Точность как на экране в Excel: как задать

    Довольно часто пользователи, производящие расчеты в программе 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.

    1. Заходим в меню “Файл”.
    2. Кликаем по пункту “Параметры” в перечне слева в самом низу.
    3. Запустится дополнительно окно с параметрами программы, в левой части которого щелкаем по разделу “Дополнительно”.
    4. Теперь в правой части настроек ищем блок под названием “При пересчете этой книги:” и ставим галочку напротив опции “Задать указанную точность”. Программа предупредит нас о том, что точность при такой настройке будет снижена. Соглашаемся с этим, щелкнув кнопку OK и затем еще раз OK для подтверждения изменений и выхода из окна параметров.

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

    Настройка точности округления в более ранних версиях

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

    В нашем случае, алгоритм настройки точности как на экране в более ранних версиях программы практически аналогичен тому, что мы рассмотрели выше для версии 2019.

    Microsoft Excel 2010

    1. Переходим в меню «Файл».
    2. Нажимаем по пункту с названием «Параметры».
    3. В открывшемся окне параметров кликаем по пункту «Дополнительно».
    4. Ставим галочку напротив опции «Задать точность как на экране» в блоке настроек «При пересчете этой книги». Опять же, подтверждаем внесенные корректировки кликом по кнопке OK, приняв во внимание тот факт, что точность расчетов будет снижена.

    Microsoft Excel 2007 и 2003

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

    Рассмотрим для начала версию 2007-го года.

    1. Нажимаем на значок «Microsoft Office», который расположен в верхнем углу окна слева. Должен появиться перечень, в котором нужно выбрать раздел с названием «Параметры Excel».
    2. Откроется ещё одно окно, в котором нужен пункт «Дополнительно». Далее справа следует выбрать группу настроек «При пересчёте этой книги» и поставить галочку напротив функции «Задать точность как на экране».

    С более ранней версией (2013) все несколько иначе.

    1. В верхней строке меню нужно найти раздел «Сервис». После того, как он выбран, высветится перечень, в котором требуется кликнуть по пункту «Параметры».
    2. В открывшемся окне с параметрами нужно выбрать «Вычисления» и затем поставить галочку рядом с опцией «Точность как на экране».

    Заключение

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

    Округление чисел в Microsoft Excel

    Редактор таблиц Microsoft Excel широко применяется для выполнения разного рода вычислений. В зависимости от того, какая именно задача стоит перед пользователем, меняются как условия выполнения задачи, так и требования к получаемому результату. Как известно, выполняя расчёты, очень часто в результате получаются дробные, нецелые значения, что в одних случаях хорошо, а в других, наоборот, неудобно. В этой статье подробно рассмотрим, как округлить или убрать округление чисел в Excel. Давайте разбираться. Поехали!

    Для удаления дробных значений применяют специальные формулы

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

    Для начала отметим, что функция «Формат числа» применяется в случаях, когда вид числа необходимо сделать более удобным для чтения. Кликните правой кнопкой мыши и выберите в списке пункт «Формат ячеек». На вкладке «Числовой» установите количество видимых знаков в соответствующем поле.

    Но в Excel реализована отдельная функция, позволяющая выполнять настоящее округление по математическим правилам. Для этого вам понадобится поработать с полем для формул. Например, вам нужно округлить значение, содержащееся в ячейке с адресом A2 так, чтобы после запятой остался только один знак. В таком случае функция будет иметь такой вид (без кавычек): «=ОКРУГЛ(A2;1)».

    Принцип прост и понятен. Вместо адреса ячейки вы можете сразу указать само число. Бывают случаи, когда возникает необходимость округлить до тысяч, миллионов и больше. Например, если нужно сделать из 233123 — 233000. Как же быть в таком случае? Принцип тут такой же, как было описано выше, с той разницей, что цифру, отвечающую за количество разделов, которые необходимо округлить, нужно написать со знаком «-» (минус). Выглядит это так: «=ОКРУГЛ(233123;-3)». В результате вы получите число 233000.

    Если требуется округлить число в меньшую либо в большую сторону (без учёта того, к какой стороне ближе), то воспользуйтесь функциями «ОКРУГЛВНИЗ» и «ОКРУГЛВВЕРХ». Вызовите окно «Вставка функции». В пункте «Категория» выберите «Математические» и в списке ниже вы найдёте «ОКРУГЛВНИЗ» и «ОКРУГЛВВЕРХ».

    Ещё в Excel реализована очень полезная функция «ОКРУГЛТ». Её идея в том, что она позволяет выполнить округление до требуемого разряда и кратности. Принцип такой же, как и в предыдущих случаях, только вместо количества разделов указывается цифра, на которую будет заканчиваться полученное число.

    В последних версиях программы реализованы функции «ОКРВВЕРХ.МАТ» и «ОКРВНИЗ.МАТ». Они могут пригодиться, если нужно принудительно выполнить округление в какую-либо сторону с указанной точностью.

    Как вариант, решить проблему можно при помощи функции «ЦЕЛОЕ», принцип которой заключается в том, что дробная часть просто отбрасывается, округляя вниз.

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

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


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


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


    При финансовых расчетах важно округлять до правильного знака после запятой. К примеру, если цена нетто составляет 1,99 рубля или гривны, а стоимость брутто рассчитывается как 2,3681, то общая цена ста единиц товара никогда не будет равняться 236,81 рубля (гривны). Все иначе с расценками на бензин: здесь уже имеют значение три последние цифры.



    Разнообразие функций программы



    Excel знает 15 различных функций округления: «ОКРУГЛ», «ОКРУГЛВВЕРХ», «ОКРУГЛВНИЗ», «ОКРУГЛТ», «ОКРВНИЗ», «ОКРВВЕРХ», «ОКРВВЕРХ.ТОЧН», «ОКРВНИЗ.ТОЧН», «ОТБР.РУБЛЬ» и «ФИКСИРОВАННЫЙ». Вместо одной специальной функции лучше использовать привычную с дополнительным вычислением или с правильным параметром. Проблемы вызывают функции «ОКРУГЛВВЕРХ» и «ОКРУГЛВНИЗ», которые выдают неочевидные результаты при использовании отрицательных чисел.


    Например, «=ОКРУГЛВВЕРХ (–2,5;0)» выдает значение «–3» вместо «–2». Для таких случаев рекомендуем использовать функции «ОКРВВЕРХ» и «ОКРВНИЗ».


    Второе число — это параметр. Однако он сообщает не количество знаков после запятой, а кратное, необходимое для округления. Для двух десятичных знаков используйте


    кратное «0,01». Вы можете гибко округлять и до других кратных. Основа для пени за просрочку выплаты налогов будет округляться до следующей суммы, кратной рублю (гривне) в большую сторону. Подобных результатов можно добиться и с помощью функции «ОКРУГЛТ».



    Математическое округление



    Стандартное «ОКРУГЛ» в Excel использует математическое округление, то есть округляет числа, заканчивающиеся на «5», в большую сторону. В некоторых случаях это недопустимо — например, в бухгалтерии при суммировании округляемых цифр. Избежать ошибок позволит созданная в VBA функция с гауссовым округлением — до ближайшего четного числа. Для ее программирования с именем «MATHROUND» откройте редактор VBA комбинацией клавиш «Alt+F11». Введите следующий код:


    Function•MathRound(ByVal•X•As•Double, Optional•Factor•As•Long•=•0)



    MathRound •=•Round(X,•Factor)



    End•Function


    Закройте редактор VBA. Теперь в таблице можно будет использовать для гауссова («банковского») округления вместо «ОКРУГЛ» функцию «MATHROUND».



    Как это сделать?




    1. НАСТРАИВАЕМ ФОРМАТ

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



    2. ПРЕДСТАВЛЕНИЕ ОКРУГЛЕНИЯ

    Для этого используйте быстрое форматирование на вкладке «Главная» в разделе «Число». Кликните по стрелке в нижней части раздела и в открывшемся окне на вкладке «Число» задайте число знаков после запятой для параметров «Числовой»,  «Денежный», «Финансовый» или «Процентный».



    3. ОПАСНАЯ ОПЦИЯ

    Откройте «Файл | Параметры» и выберите категорию «Дополнительно». Убедитесь, что в разделе «При пересчете этой книги» опция «Задать точность как на экране» отключена.



    4. ВВЕРХ И ВНИЗ

    Функции «ОКРУГЛВВЕРХ» и «ОКРУГЛВНИЗ» то и дело округляют сумму до нуля, что для отрицательных чисел неверно с математической точки зрения. Лучше использовать «ОКРВВЕРХ» и «ОКРВНИЗ».



    5. ДРУГАЯ ОСНОВА

    Для округления на другой основе, к примеру, 5 копеек, используйте вычисление или — для положительных значений — сразу функцию «=ОКРУГЛ(число; 0,05)».



    6. ПРОБЛЕМА НЕПРАВИЛЬНЫХ СУММ

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



    7. ГАУССОВО ОКРУГЛЕНИЕ

    Функция «ОКРУГЛ» использует математическое округление, и результаты зачастую искажены. Гауссово («банковское») округление «MATHROUND» из VBA предотвратит это.



    8. НЕРАВНЫЕ ПАРЫ

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

    Источник


    Выясняем, к чему может привести тот факт, что результат вычисления формулы

    =1,324-1,319

    равен 0,00500000000000012, а не 0,005.

    Рассмотрим результат вычисления в EXCEL 2007 формулы:

    =1,324-1,319

    Результат равен не 0,005, а 0, 00500000000000012.

    Возникает 2 вопроса:

    • почему результат равен не 0,005, а 0,00500000000000012 ?
    • может ли это привести к ошибкам вычисления ?

    Причиной того, что результат вычисления вышеуказанной формулы равен не 0,005, а 0,00500000000000012 в том, что EXCEL хранит и проводит вычисления с числами на основе стандарта IEEE 754 (стандарта двоичной арифметики с плавающей запятой). Этот стандарт предписывает хранить числа с плавающей запятой в двоичном формате. Это означает, что перед тем как значение будет использовано в вычислениях, его необходимо конвертировать в десятичный формат. Проблема в том, что не все числа могут быть абсолютно точно представлены в двоичном формате с плавающей запятой. Например, 0,1 не может быть представлено в виде конечного дробного двоичного числа, т.к. 0,1 соответствует 0,0001100110011 с периодом 0011. Т.к. EXCEL оперирует с точностью до 15 значащих цифр, то округление неизбежно. Хотя точность округления из-за конвертации из двоичного формата примерно 2,8Е-17, но как показывает практика, вполне можно получить вместо 0,005 число 0,00500000000000012, а это в некоторых случаях далеко не одно и тоже.

    Приведем еще один пример:

    =0,29*100-ЦЕЛОЕ(0,29*100)=0

    Результат равен ЛОЖЬ, а не ИСТИНА, не как следовало ожидать. Обратите внимание, что формула

    =0,27*100-ЦЕЛОЕ(0,27*100)=0

    возвращает правильный результат (ИСТИНА).

    Если переписать формулу в другом виде

    =0,29*100-ЦЕЛОЕ(0,29*100)-0

    , то результат будет -3,5527136788005E-15, что и указывает на источник ошибки (значение, хотя и мало, но совсем не равно 0).


    Источник ошибки

    Представим ситуацию, когда, например, в

    Условном форматировании

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

    =0,27*100-ЦЕЛОЕ(0,27*100)

    , этого не произойдет, т.к. 0 не равен числу -3,5527136788005E-15 (см. выше).

    В итоге легко получить неправильный результат работы

    Условного форматирования

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


    Вывод

    :

    при сравнении результатов вычисления формул с константами никогда не полагайтесь на встроенную в EXCEL

    точность вычисления

    .

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

    =0,29*100-ЦЕЛОЕ(0,29*100)<0,001

    Результат будет всегда ИСТИНА, даже если указать фантастическую точность

    =0,29*100-ЦЕЛОЕ(0,29*100)<1E-204

    Другой подход – использовать явное округление

    =ЦЕЛОЕ(0,29*100)

    Напоследок покажем, что коммутативный закон сложения (сумма не меняется от перестановки её слагаемых) в EXCEL работает не всегда (см.

    Файл примера

    ).

    Формула

    =0,29*100-0-ЦЕЛОЕ(0,29*100)

    вернет результат =0, а не -3,55Е-15. А ведь мы просто переставили 0 из формулы

    =0,29*100-ЦЕЛОЕ(0,29*100)-0

    Другие примеры:


    =0,29*100-0,29-0

    (результат -3,5527136788005E-15)

    =1*(0,5-0,4-0,1)

    (результат -2,77555756156289E-17)

    Весьма вероятно, что таких арифметических операций в природе существует множество.

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    Добрый день, коллеги.  
    Столкнулся с проблемой выставления счета без НДС.  
    К примеру нужно выставить счет на 352 рубля с НДС. При этом нужно внести сумму в специальную программу без НДС в программе.  

      Сделал програмку, которая переводит, но из-за погрешностей ничего не получается.  
    К примеру на той же цифре 352.  

      Сумму можно разбивать на несколько счетов, но вот как автоматизировать не могу придумать. Т.е. к примеру, если сумму 352 разбить на 2 счета по 176, то все ок. Выходим на 352 с НДС.  
    Вот только как выводить.  
    Подскажите пжл.

     

    A_Zeshko

    Пользователь

    Сообщений: 116
    Регистрация: 01.01.1970

    Раз пять перечитал пост, но так нифига не понял. То ли я сошел с ума. То ли вы не умеете формулировать вопрос корректно.  В чём вопрос, милостивый государь?

    At odd moments: VBA, VB6, VB.NET, Java, Java for Android, Java Script, Action Script, Windows Scriping Host

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

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

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

     

    Формула ячейки F5: =ОКРУГЛ(F3/1,18;2)  
    Формула ячейки F7: =ОКРУГЛ(F5*1,18;2)  

      Если разделитель десятичных разрядов точка, то вместо 1,18 должно быть 1.18

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    {quote}{login=:)}{date=04.02.2009 12:39}{thema=}{post}Формула ячейки F5: =ОКРУГЛ(F3/1,18;2)  
    Формула ячейки F7: =ОКРУГЛ(F5*1,18;2)  

      Если разделитель десятичных разрядов точка, то вместо 1,18 должно быть 1.18{/post}{/quote}  

      Все равно не Получается. в ячейку F5 вношу 352, при переводе обратно в ячейке F7 опять получаеся 352,01.

     

    A_Zeshko

    Пользователь

    Сообщений: 116
    Регистрация: 01.01.1970

    Установите точность вычислений «Как на экране»

    At odd moments: VBA, VB6, VB.NET, Java, Java for Android, Java Script, Action Script, Windows Scriping Host

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    {quote}{login=Новичок VBA (Miнск)}{date=04.02.2009 01:01}{thema=}{post}Установите точность вычислений «Как на экране»{/post}{/quote}  

      А как установить?

     

    VikNik

    Пользователь

    Сообщений: 217
    Регистрация: 01.01.1970

    Задача не имеет решения в объщем случае.  
    При округлении туда обратно с точностью до 2-х знаков и НДС 18% неизбежно копейки не сойдутся. Не разбейте лоб.

     

    {quote}{login=VikNik}{date=04.02.2009 01:04}{thema=}{post}Задача не имеет решения в объщем случае.  
    При округлении туда обратно с точностью до 2-х знаков и НДС 18% неизбежно копейки не сойдутся. Не разбейте лоб.{/post}{/quote}  

      Вот если разделить число 352 попалам и вычислить НДС у 2 цифр, которые дадут потом в сумме 352 с НДС, то это решение подойдет.  
    Вот только как реализовать это в Excel не могу понять

     

    VikNik

    Пользователь

    Сообщений: 217
    Регистрация: 01.01.1970

     

    A_Zeshko

    Пользователь

    Сообщений: 116
    Регистрация: 01.01.1970

    Если Office 2007: Кнопка Office – Параметры Excel – Дополнительно – (полосой прокрутки вниз и ищем раздел «при пересчете этой книги») — задать точность как на экране

    At odd moments: VBA, VB6, VB.NET, Java, Java for Android, Java Script, Action Script, Windows Scriping Host

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    {quote}{login=Новичок VBA (Miнск)}{date=04.02.2009 01:07}{thema=}{post}Если Office 2007: Кнопка Office – Параметры Excel – Дополнительно – (полосой прокрутки вниз и ищем раздел «при пересчете этой книги») — задать точность как на экране{/post}{/quote}  

      А если 2003?

     

    A_Zeshko

    Пользователь

    Сообщений: 116
    Регистрация: 01.01.1970

    Тогда х.з. Давно уже снёс

    At odd moments: VBA, VB6, VB.NET, Java, Java for Android, Java Script, Action Script, Windows Scriping Host

     

    VikNik

    Пользователь

    Сообщений: 217
    Регистрация: 01.01.1970

    «из-за погрешностей» ничего не получится в любой версии.

     

    Теперь хоть понятно стало, о чем тут речь, а то гадать приходилось.  

      Если для одной проводки, то ничего не получится:  
    298 руб 31 коп * 1.18 = 352 руб 01 коп  
    298 руб 30 коп * 1.18 = 351 руб 99 коп  

      За лишнюю или недостающую копейку по бухгалтерии могут штрафануть.  

      Поэтому проводите две проводки на общую сумму 352 руб, если есть такая возможность.

     

    VikNik

    Пользователь

    Сообщений: 217
    Регистрация: 01.01.1970

    Надо определиться от какой печки танцевать. С НДС или с без. А не таскать туда-обратно. И платить лишнюю копейку НДС, если не округляется счет, и смирится с тем, что не получишь эту копейку в прибыли. Или помереть с голоду, как буриданов осел.

     

    {quote}{login=VikNik}{date=04.02.2009 01:32}{thema=}{post}Надо определиться от какой печки танцевать. С НДС или с без. А не таскать туда-обратно. И платить лишнюю копейку НДС, если не округляется счет, и смирится с тем, что не получишь эту копейку в прибыли. Или помереть с голоду, как буриданов осел.{/post}{/quote}  
    VikNik, за одну лишнюю копейну при проверке бухгалтерии главбуха тоже штрафуют, причем не на одну, а на много копеек.

     

    {quote}{login=:)}{date=04.02.2009 01:19}{thema=}{post}Теперь хоть понятно стало, о чем тут речь, а то гадать приходилось.  

      Если для одной проводки, то ничего не получится:  
    298 руб 31 коп * 1.18 = 352 руб 01 коп  
    298 руб 30 коп * 1.18 = 351 руб 99 коп  

      За лишнюю или недостающую копейку по бухгалтерии могут штрафануть.  

      Поэтому проводите две проводки на общую сумму 352 руб, если есть такая возможность.{/post}{/quote}а вот как это реализовать чтобы ехcеl сам показывал вариант правильного расчета?

     

    VovaK

    Пользователь

    Сообщений: 1716
    Регистрация: 01.01.1970

    Уважаемый Jenia,  

      Меня пугает Ваша бухгалтерия, потому как все расчеты должны производиться без НДС. Расчет стоимости с НДС — это ФИНАЛЬНАЯ операция. Чтобы понять, что это невозможно, возьмите калькулятор и несколько раз выполните операции умножения и деления, думаю Вам все станет понятно. В прикладной математике это называется накопление ошибки, осторожнее с округлением.

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    {quote}{login=VovaK}{date=04.02.2009 07:22}{thema=}{post}Уважаемый Jenia,  

      Меня пугает Ваша бухгалтерия, потому как все расчеты должны производиться без НДС. Расчет стоимости с НДС — это ФИНАЛЬНАЯ операция. Чтобы понять, что это невозможно, возьмите калькулятор и несколько раз выполните операции умножения и деления, думаю Вам все станет понятно. В прикладной математике это называется накопление ошибки, осторожнее с округлением.{/post}{/quote}  

      Это даже не бухгалтерия. Просто программа позволяет выставлять счета только без НДС, а сотруднику нужна сумма с НДС (такая глюкнутая программа выставления счетов).  
    Вот так и мучаемся.  
    И все-таки может у кого-то есть идеи как это реализовать?

     

    VovaK

    Пользователь

    Сообщений: 1716
    Регистрация: 01.01.1970

    Реализовать очень просто. Если сумма с НДС является исходным значением, то его и не надо пересчитывать повторно — оно УЖЕ ИЗВЕСТНО.

     

    Jenya

    Пользователь

    Сообщений: 85
    Регистрация: 01.01.1970

    {quote}{login=VovaK}{date=05.02.2009 08:51}{thema=}{post}Реализовать очень просто. Если сумма с НДС является исходным значением, то его и не надо пересчитывать повторно — оно УЖЕ ИЗВЕСТНО.{/post}{/quote}  

      А если нет?  
    В этом случае сотруднику нужно решение. За день много таких случаев.

     

    VikNik

    Пользователь

    Сообщений: 217
    Регистрация: 01.01.1970

    #23

    06.02.2009 04:23:27

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

    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии

    А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Excel поиск ошибок на листе excel
  • Excel workbooks open 1c ошибка