Урок 13 — Еще вариант настройки карточки «Продукт сделки»

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

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

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

Чему сейчас равна формула поля К оплате?

Заменим эти два поля на их формулы, затем поля этих формул и так до конца.

Формула декомпозирована. Вот такая непростая она у нас получилась. Врагу не пожелаешь.

Продукт>Цена * Курс(Продукт>Валюта;Текущая дата) * К отгрузке — Продукт>Цена * Курс(Продукт>Валюта;Текущая дата) * К отгрузке * Скидка в % / 100

Проверим как работает.

Работает почти также. Но вы наверняка заметили, что результат поля К оплате немного отличается? Это связано с округлением. Когда мы используем много полей с формулами, то помещенный в них результат округляется до определенного количества знаков (в зависимости от типа поля). А при вычислении единой формулой — нет. Вернее он округляется, но только когда значение помещается в поле (в нашем случае в поле К оплате).

На округлении мы теряем при умножении, когда после запятой становится знаков больше, чем может поместить поле. Например, при вычислении цены ластика за единицу в рублях мы должны умножить его цену за единицу (0,5 евро) на курс евро (39,1326). Получили 19,5663. Но при помещении этого значения в поле мы получим округленный до двух знаков результат: 19,57. Формулы, использующие в вычислениях это поле будут использовать именно округленный результат. В этих случаях и накапливается математическая погрешность в вычислениях. Но с точки зрения финансов ошибки нет — ластик не может стоить 19 рублей 56,63 копейки.

Наверняка вы подумали, что для поля Цена за ед. в руб. можно использовать поле с четырьмя знаками после запятой. Но во первых в финансовых расчетах так делать нельзя, а во вторых результат вычисления мог бы содержать и 6 знаков после запятой. Если бы мы умножили 0,51 на 39,1326 то получили бы 19,957626. Тут и 4 знака после запятой в поле не спасли бы.

Погрешности в округлении мы подробно рассматривали для того, чтобы вы не удивлялись небольшим отличиям в вычислениях при проверке их в Excel. Ставьте в Excel функции округления, чтобы данные совпадали.

На этом все. Идем дальше.