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.
  • В разделе «Число» разверните список форматов и примите решение, какой хотите использовать.

  • Кликните по кнопке «Увеличить разрядность» в Эксель нужное число раз.

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

В более новых версиях Excel этот метод будет иметь другой вид:

  1. Зайдите на кладку «Главная».
  2. Жмите на символ стрелки вниз справа от надписи «Число».
  3. В разделе «Категория» выберите нужный числовой вариант и убедитесь, что он имеет десятичные разряды.
  4. Найдите поле «Число десятичных» и введите нужную цифру, а после жмите «ОК».

Настройка формата

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

  • Выделите место в таблице, где нужно внести соответствующие изменения.
  • Разверните меню «Ячейки» и кликните на «Формат».

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

  • Посмотрите на выделенные ячейки и убедитесь в правильности отображения.

Изменение формата

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

Как сделать, чтобы данные в таблице Эксель округлялись

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

Кнопки в ленте

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

  1. Войдите в «Главная».
  2. Жмите на ленте кнопку «Увеличить / уменьшить разрядность». В первом случае количество знаков увеличивается, а во втором уменьшается на одну цифру.

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

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

  • Выделите диапазон ячеек на листе, жмите правой кнопкой мышки и кликните «Формат …».

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

Задание точности расчетов

Рассмотренные выше методы в Эксель оказывают влияние только на внешнее отображение в Эксель, а при расчетах использовались только точные показатели (до 15-ти знаков). При необходимости можно поменять точность вычислений. Сделайте следующее:

  • Войдите в «Файл», а далее «Параметры».

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

  • Жмите «ОК».

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

Изменение функции

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

Дополнительный метод

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

  • Войдите во вкладку «Формулы».
  • Жмите на «Математические».
  • В появившемся списке выберите «ОКРУГЛ».
  • В окне аргументов в поле «Число» введите вручную нужный параметр.
  • Жмите по ячейке, где нужно, чтобы Эксель округлял цифры.
  • Откройте окно аргументов в поле «Число разрядов».
  • Укажите разрядность, до которой нужно сократить дробь.

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

Отличного Вам дня!

Хитрости »

18 Март 2018              134064 просмотров


Часто при вычислении разницы двух ячеек в Excel можно видеть, что она не равна нулю, хотя числа одинаковые. Например, в ячейках A1 и B1 записано одно и тоже число 10,7, а в C1 мы вычитаем из одного другое:
Разность чисел
И самое странное то, что в итоге мы не получаем 0! Почему?
И еще одна ситуация — я её называю «Куда пропала копейка?!». На скрине ниже изображена достаточно частая ситуация в Excel:
Откуда лишняя копейка?
Слева числа получены формулами и сложены в единую сумму при помощи функции СУММ(SUM), а правее они же посчитаны на калькуляторе. Как видно — суммы различаются на копейку. На самом деле различаться суммы в итоге могут и более чем на копейку.

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

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

Но как быть, если таких формул десять, двадцать и более? Не прописывать же вручную для каждой формулу ОКРУГЛ. Можно использовать одну из функций моей надстройки MulTEx, которая двумя кликами мыши все сделает за вас. Достаточно будет выделить все ячейки с «неверными» числами, которые надо округлить, перейти на вкладку MulTEx -группа Ячейки/ДиапазоныЯчейкиФункции и выбрать Округлить(см. подробное описание функции). Указать количество знаков 2 и все. Там, где были формулы, будет добавлена функция ОКРУГЛ, а где реальные числа — будет произведено округление.

Но есть и более кардинальный метод, если сторонние утилиты и надстройки использовать нельзя или нет желания:

  • 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:
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 уже округлены до одного разряда и понятно, что округление отдельно каждого числа не даст вообще никакого эффекта. Здесь и еще один нюанс — вполне достаточно, зная эту особенность, округлить до 14 знаков и проблема тоже исчезнет. В чем здесь плюс — как правило очень мало задач для решения требуют 15 знаков после запятой и этот 15-ый можно просто «игнорировать», но при этом не убирать более значимые разряды(ведь не всегда известно до какого разряда можно округлять без потерь):
=ОКРУГЛ(10,8-10,7;14)=0,1
=ROUND(10.8-10.7,14)=0,1

Можно, правда, выкрутиться и иначе. Умножить каждое число на некую величину(скажем на 1000, чтобы 100% убрать знаки после запятой) и после этого производить вычитание и сравнение:
=((10,8*1000)-(10,7*1000))/1000=0,1


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


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

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

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 не сортирует столбец по возрастанию
  • Excel не считает колонки
  • Excel не считает количество строк
  • Excel не сортирует по цвету ячейки
  • Excel не считает дробные числа