Проблема округления в 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

Причиной того, что результат вычисления вышеуказанной формулы равен не 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)

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

Бухгалтеры (и не только) знают одну «нехорошую» особенность 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. Несмотря на небольшую разницу, неприятно, когда в общем итоге не хватает нескольких копеек или сумма процентов в колонке составляет 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. НЕРАВНЫЕ ПАРЫ

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

Источник

 

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

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

Содержание

  • Особенности округления чисел Excel
    • Округление с помощью кнопок на ленте
    • Округление через формат ячеек
    • Установка точности расчетов
    • Применение функций
  • Вопросы и ответы

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

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

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

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

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

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

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

Увеличить разрядность в Microsoft Excel

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

Уменьшить разрядность в Microsoft Excel

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

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

Переход в формат ячеек в Microsoft Excel

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

Формат ячеек в Microsoft Excel

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

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

  1. Перейдите на вкладку «Файл», оттуда — в раздел «Параметры».
  2. Переход в параметры в Microsoft Excel

    Lumpics.ru

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

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

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

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

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

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

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

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

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

Округление до ближайшего кратного числа в Microsoft Excel

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

округление до четного числа в Microsoft Excel

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

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

  1. Переходим во вкладку «Формулы» и кликаем по кнопке «Математические». В открывшемся списке выбираем подходящую функцию, например, «ОКРУГЛ».
  2. Округление через формулу в Microsoft Excel

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

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

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

  9. Число округлилось. Чтобы таким же образом округлить и все другие данные нужного столбца, наводим курсор на нижний правый угол ячейки с округленным значением, жмем на левую кнопку мыши, и протягиваем ее вниз до конца таблицы.
  10. Копирование формулы в Microsoft Excel

  11. Теперь все значения в столбце будут округлены.
  12. Значения в таблице округлены в Microsoft Excel

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

Понравилась статья? Поделить с друзьями:
  • Проблема word проблемы печати
  • Проблема с сортировкой в excel
  • Проблема word открывает только один файл
  • Проблема с макросами в excel
  • Пробелы при впр в excel