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 – «неумение» правильно суммировать. 🙂 Иногда это приводит к казусам в бухгалтерских документах, сформированных в 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 отражал с точностью до двух знаков после запятой, а хранил число с максимальной точностью, просто задайте форматирование «два знака после запятой», и никакие дополнительные формулы не потребуются. Но… именно против этого и направлена статья, так как в бухгалтерских расчетах не допускается расхождение между суммой и слагаемыми…


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

=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)

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

 

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

 

V

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

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

для округления используйте ф-цию ОКРУГЛ, тогда погрешность будет меньше при разном количестве знаков после запятой. Если к-во знаков после запятой будет одинаковое в ф-ции то и погрешность стремится к нулю.

 

Дмитрий Дмитрий

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

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

#3

25.05.2022 09:47:53

Цитата
написал:
для округления используйте ф-цию ОКРУГЛ, тогда погрешность будет меньше при разном количестве знаков после запятой. Если к-во знаков после запятой будет одинаковое в ф-ции то и погрешность стремится к нулю.

Не совсем понял рекомендацию…В данных ячейках уже применяется свои функции…как туда можно еще ОКРУГЛ подставить? Я просто совсем нуб))
 

 

V

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

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

#4

25.05.2022 09:52:51

для Н8

Код
=ОКРУГЛ(СРЗНАЧ(E8:G8);4)

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

Изменено: V25.05.2022 09:53:44

 

Дмитрий Дмитрий

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

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

#5

25.05.2022 10:08:34

Цитата
написал:
=ОКРУГЛ(СРЗНАЧ(E8:G8);4)

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

Код
=ОКРУГЛ(D8/3)*(СУММ(E8:G8); 2))

Изменено: Дмитрий Дмитрий25.05.2022 10:11:46

 

Wild.Godlike

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

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

#6

25.05.2022 10:11:20

Дмитрий Дмитрий,

Код
=ОКРУГЛ((D8/3)*(СУММ(E8:G8));2)

Изменено: Wild.Godlike25.05.2022 10:11:36

 

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

Прикрепленные файлы

  • 11111.JPG (92.38 КБ)

 

V

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

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

#8

25.05.2022 10:51:24

в I со скобками напутали.

Код
=КОРЕНЬ(СУММ((СТЕПЕНЬ(E8-H8;2));(СТЕПЕНЬ(F8-H8;2));(СТЕПЕНЬ(G8-H8;2)))/(ЧИСЛСТОЛБ(E8:G8)-1))

Среднее квадратичное отклонение и коэффициент вариации нужно столько знаков после запятой?

Изменено: V25.05.2022 10:53:50

 

Да, спасибо, исправил.
Но на итог эта формула не влияет, только на квадратичное и на вариацию. А с округлением пока никак

 

Дмитрий Дмитрий

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

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

#10

25.05.2022 10:57:54

Цитата
написал:
в I со скобками напутали.

Код
    [URL=#]?[/URL]       1      =КОРЕНЬ(СУММ((СТЕПЕНЬ(E8-H8;2));(СТЕПЕНЬ(F8-H8;2));(СТЕПЕНЬ(G8-H8;2)))/(ЧИСЛСТОЛБ(E8:G8)-1))   

 

Среднее квадратичное отклонение и коэффициент вариации нужно столько знаков после запятой?

Вроде это не регламентировали..9 знаков всегда стояло

 

V

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

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

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

П.С. не нужно бездумно цитировать полностью сообщения.

Изменено: V25.05.2022 11:10:14

 

Msi2102

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

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

#12

25.05.2022 11:15:24

Цитата
Дмитрий Дмитрий написал:
При проверке на калькуляторе итог отличается

Если нужно как на калькуляторе, попробуйте включить эту галочку

Прикрепленные файлы

  • Снимок экрана 2022-05-25 111422.png (48.67 КБ)

 

На калькуляторе я делаю то же самое — складываю три первых значения и делю сумму на 3. Затем получившийся результат умножаю на требуемое число из колонки КОМПЛ. Итог расходиться с подсчетом экселя. На этом скрине уже подсчитано и записано вручную

Прикрепленные файлы

  • 11111.JPG (91.52 КБ)

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Получилось так потому, что первая тема при ее просмотре не содержала текстовое описание — т.е. только заголовок и краткое описание. Не знаю, с чем связан такой глюк, но я заходил под собой, потом заходил с другого ПК, и даже с телефона…текста не было. Отписал модератору, но оперативного ответа не получил. Получил ответ уже гораздо позже, после создания второй темы, которая кстати, сразу отобразилась без глюков. Модератор ответил,что все норм. И действительно, после этого стало все норм.
Извиняюсь за кросспостинг, прошу почистить((

 

Msi2102, увы, не помогло. Калькулятор при умножении считает так  70,71*150 = 10606,50

Прикрепленные файлы

  • ааааа.jpg (106.3 КБ)

 

V

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

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

#17

26.05.2022 09:07:44

Цитата
Дмитрий Дмитрий написал:
70,71*150 = 10606,50

почему так? у вас в формуле другая запись.

Код
=(150/3)*СУММ({69,97;70,79;71,36})=50*212,12=10606,00

Изменено: V26.05.2022 09:15:41

 

Msi2102

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

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

#18

26.05.2022 09:20:46

Цитата
Дмитрий Дмитрий написал:
Калькулятор при умножении считает так  70,71*150 = 10606,50

Excel тоже

Прикрепленные файлы

  • Снимок экрана 2022-05-26 091940.png (3.34 КБ)

 

Igor67

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

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

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

Изменено: Igor6726.05.2022 13:22:44

 

Дмитрий Дмитрий

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

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

#20

27.05.2022 07:51:08

Igor67, спасибо, я все понял. Ошибочно полагалось, что (150/3)*СУММ({69,97;70,79;71,36}) равнозначно СУММ(({69,97;70,79;71,36})/3))*150. Как оказалось, совсем не равнозначно.
Но, есть и одно но — заменять «=((D9/3)*(СУММ(E9:G9)))» на банальное «=H9*D9» нельзя, т.к формула прописана в 44фз.
При этом, ЕИС Госзакупок при внесении туда данных из таблицы, почему то считает именно так  =H9*D9
Вот поэтому, и пытались допилить «округление» данной формулы под нужные нам значения.


При повседневной работе с приложением 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. НЕРАВНЫЕ ПАРЫ

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

Источник

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

Пример точных значений в Excel.

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

Округление с помощью функции форматирования ячеек Excel.

Аналогично при использовании стандартных функций округления итоговые значения округленных значений вычисляются правильно, однако ошибки округления накапливаются, из-за чего результаты часто существенно отличаются от фактических сумм исходных значений. В следующей таблице показан результат =ROUND(x,0) примера выше. Суммы, которые отличаются от исходного значения на 1 и более, выделены полужирным шрифтом:

Пример использования функции ROUND в Excel.

Используя округление think-cell, можно получить согласованные округленные суммы с минимальными изменениями. Хотя большинство значений округляются до ближайшего целого числа, некоторые значения округляются в противоположном направлении, что гарантирует правильное вычисления без накопления ошибки округления. Так как существует много способов получения правильных округленных сумм за счет изменения значений, think-cell выбирает решение, для которого требуется изменить минимальное число значений и минимальное отклонение от точных значений. Например, округление 10,5 до 10 будет предпочтительнее, чем округление 3,7 до 3. В следующей таблице показано оптимальное решение для примера выше, при этом измененные значения выделены полужирным шрифтом:

Пример округления think-cell.

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

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

22.1
Использование округления think-cell
22.2
Ограничения округления think-cell
22.3
Устранение неполадок с формулами TCROUND

22.1 Использование округления think-cell

Округление think-cell полностью интегрируется с Microsoft Excel и предоставляет набор функций, которые похожи на стандартные функции округления Excel. Вы легко можете применять эти функции к собственным данным, используя кнопки на панели инструментов на вкладке Формулы в think-cell.

Лента округления think-cell в Excel 2010 и более поздних версиях.

22.1.1 Параметры округления

Как и функции Excel, функции округления think-cell принимают два параметра.

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

Округление think-cell позволяет округлять значения не только до целых чисел, но и до любых кратных чисел. Например, если вы хотите представить данные в последовательности 5-10-15…, просто округляйте значения до чисел, кратных пяти. Используя раскрывающееся меню на панели инструментов think-cell, просто введите или выберите нужную точность округления. Затем think-cell выберет требуемые функцию и параметры. В следующей таблице представлен ряд примеров округления определенных значений x с использованием панели инструментов вместе с соответствующим параметром n.

x =

n =

100 50 2 1 0,01
1,018 0 0 2 1 1,02
17 0 0 18 17 17,00
54,6 100 50 55 54 54,60
1234,1234 1200 1250 1234 1234 1234,12
8776,54321 8800 8800 8776 8777 8776.54

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

Кнопка Формула Описание

image.

TCROUND(x, n) Позволить think-cell определять ближайшее кратное число для округления, чтобы минимизировать ошибку округления.

image.

TCROUNDUP(x, n) Принудительное округление x от нуля.

image.

TCROUNDDOWN(x, n) Принудительное округление x к нулю.

image.

TCROUNDNEAR(x, n) Принудительное округление x к ближайшему кратному числу с требуемой точностью.

image.

Удалить все функции округления think-cell из выбранных ячеек.

image.

Выберите или введите требуемое кратное число для округления.

image.

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

image.

Вращающееся колесико означает, что функция округления think-cell применяется.

Для получения оптимальных результатов и минимального отклонения от базовых значений, следует использовать TCROUND, когда это возможно. Используйте более ограничительные функции TCROUNDDOWN, TCROUNDUP или TCROUNDNEAR, только если это необходимо.

Внимание! Не следует использовать недетерминированные функции, такие как RAND(), с какими-либо формулами TCROUND. Если функции возвращают разные значения при каждом вычислении, округление think-cell будет совершать ошибки при вычислении значений.

22.1.2 Макет вычисления

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

22.1.3 Размещение функций TCROUND

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

Неправильно: =TCROUND(A1, 1)+TCROUND( SUM(B1:E1), 1 )
Правильно: =TCROUND( A1+SUM(B1:E1), 1 )
 
Неправильно: =3*TCROUNDDOWN(A1, 1)
Правильно: =TCROUNDDOWN(3*A1, 1)

Если вы введете что-то в строках неправильных примеров, think-cell уведомит вас о значении ошибки Excel #VALUE!.

22.2 Ограничения округления think-cell

Округление think-cell всегда ищет решение для произвольных сумм с промежуточными итогами и итоговыми значениями. Округление think-cell также предоставляет подходящие решения для других вычислений, использующих умножение и числовые функции. Однако в математических целях существование согласованного округляемого решения не может гарантироваться, если используются операторы, отличные от +, — и SUM.

22.2.1 Умножение на константу

Во многих случаях округление think-cell дает хорошие результаты, если используется умножение на константу, то есть если хотя бы один из коэффициентов основан на результате другой функции TCROUND. Рассмотрим следующий пример:

Умножение на константу при округлении в think-cell.

Точный результат вычисления для ячейки C1: 3×1,3+1,4=5,3. Чтобы получить этот результат, можно округлить значение 1,4 до 2:

Пример округления с использованием функции округления think-cell (TCROUND).

Однако округление think-cell может только изменить значение, округлив его до большего или меньшего значения. Большее отклонение от исходных значений не поддерживается. Поэтому для определенных сочетаний входных значений невозможно найти согласованное решение для округления. В этом случае функция TCROUND предоставляет значение ошибки Excel #NUM!. В следующем примере показана нерешаемая задача:

Несогласованное округление с использованием функции округления think-cell.

Точный результат вычисления для ячейки C1: 6×1,3+1,4=9,2. Округление ячеек A1 и B1 даст следующий результат: 6×1+2=8 или 6×2+1=13. Фактический результат нельзя округлить до 8 или 13, а выходные данные округления think-cell будут выглядеть следующим образом:

Ошибка #NUM! в округлении think-cell.

Примечание. Функция AVERAGE Excel интерпретируется округлением think-cell как комбинация суммирования и умножения на константу. Кроме того, сумма, в которой одно слагаемое используется несколько раз, математически эквивалентно умножению на константу, и существование решения не гарантируется.

22.2.2 Общее умножение и другие функции

Если функции TCROUND используются для соответствующих ячеек и промежуточные результаты связаны только операторами +, -, SUM и AVERAGE, слагаемые и (промежуточные) итоговые значения объединяются в одной задаче округления. В этих случаях округление think-cell найдет решение, которое обеспечивает согласованность для всех связанных ячеек, если такое решение существует.

Так как TCROUND — обычная функция Excel, ее можно объединить с любыми функциями и операторами. Но если вы используете функции, отличные от указанных выше, для соединения результатов операторов TCROUND, округление think-cell не может объединить компоненты в одной общей задаче. Вместо этого компоненты формулы будут считаться отдельными задачами, каждая из которых будет решаться независимо друг от друга. Затем результаты будут использоваться как входные данные для других формул.

Во многих случаях результаты округления think-cell по-прежнему будут рациональными. Однако в некоторых случаях использование операторов, отличных от +, -, SUM и AVERAGE, приводит к получению округленных результатов, которые существенно отличаются от вычисления без округления. Рассмотрим следующий пример:

Последствия округления из-за неправильного использования формулы.

Точный результат вычисления для ячейки C1 в этом случае: 8,6×1,7=14,62. Так как ячейки A1 и B1 связаны умножением, округление think-cell не сможет объединить формулы из этих ячеек в общую задачу. Вместо этого после обнаружения ячейки A1 как допустимых входных данных, ячейка B1 будет вычислена независимо, а результат будет считаться константой для оставшейся задачи. Так как других ограничений нет, значение 1,7 из ячейки B1 округляется до ближайшего целого числа (2).

«Точный» результат вычисления для ячейки C1 в этом случае: 8,6×2=17,2. Теперь эту задачу попытается решить функция округления think-cell. Существует согласованное решение, для которого необходимо округлить 17,2 до 18. Результат будет выглядеть следующим образом:

Округление и умножение с использованием функции округления think-cell.

Обратите внимание, что округленное значение в ячейке C1, которое равно 18, сильно отличается от исходного значения 14,62.

22.3 Устранение неполадок с формулами TCROUND

При использовании округления think-cell вы можете столкнуться с двумя ошибками: #VALUE! и #NUM!.

22.3.1 #VALUE!

Ошибка #VALUE! указывает на синтаксические проблемы, такие как неправильно введенные формулы или недопустимые параметры. Например, второй параметр TCROUND должен быть целым числом. Кроме того, уделите внимание правильному использованию разделителей. Например, в международной версии Excel формула выглядит так: =TCROUND(1.7, 0), а в немецкой версии Excel ее следует записать следующим образом: =TCROUND(1,7; 0).

Еще одна ошибка, связанная с округлением think-cell, — это размещение вызова функции TCROUND: нельзя использовать функцию TCROUND с другой формулой. Убедитесь, что TCROUND — это крайняя функция в формуле ячейки. (См. раздел Размещение функций TCROUND.)

22.3.2 #NUM!

Ошибка #NUM! возникает из-за числовых проблем. Если результат функции TCROUND равен #NUM!, это значит, что задача, определенная данным набором формул, не имеет математического решения. (См. раздел Ограничения округления think-cell.)

Если формулы, окруженные функциями TCROUND, содержат только операторы +, — и SUM и для всех операторов TCROUND используется одинаковая точность (второй параметр), решение будет гарантированно существовать и будет найдено округлением think-cell. Однако в следующих случаях существование согласованного округленного решения не гарантируется.

  • Формулы содержат другие операции, такие как умножение или числовые функции. Кроме того, суммы, в которых одно слагаемое используется несколько раз, математически эквивалентны умножению.
  • Вы должны использовать разные точности во втором параметре функции TCROUND.
  • Вы часто используете функции TCROUNDDOWN, TCROUNDUP и TCROUNDNEAR.

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

  • Используйте более высокую точность для некоторых или всех операторов TCROUND.
  • Не используйте TCROUND с умножением или числовыми функциями, отличными от +, — и SUM.
  • Используйте одинаковую точность (второй параметр) для всех операторов TCROUND.
  • Используйте TCROUND вместо функций TCROUNDDOWN, TCROUNDUP и TCROUNDNEAR, где это возможно.

Понравилась статья? Поделить с друзьями:
  • Excel проверка значений по формуле
  • Excel проверка значений в нескольких ячейках
  • Excel проверка заполнения vba
  • Excel проверка заливки ячейки
  • Excel проверка если ячейка не число