четверг, 13 ноября 2014 г.

Использование вычислений в таблицах LibreOffice Writer на примере анализа финансовой устойчивости предприятия

Почему-то многие не знают такой вещи, как возможность использования несложных вычислений в таблицах текстовых редакторов LibreOffice Writer и MS Word. Однако, этот функционал значительно облегчает жизнь при написании отчетов, позволяя не «прыгать» между программами и быть более уверенным, что цифры «сходятся». Кроме самого объяснения, я покажу небольшой пример на основе анализа финансовой устойчивости предприятия.

Начнём с очень простой идеи: в таблицах LibreOffice Writer можно делать несложные вычисления. Например, складывать, вычитать, умножать... А также, есть возможность использовать несложные статистические функции (среднее, максимум, минимум), делать тригонометрические вычисления и находить логические значения.
Давайте для начала разберём короткий пример. Нарисуем таблицу 2х2 и заполним её следующим образом:

Таблица пример формулы в LibreOffice Writer

Теперь поставим курсор в последнюю ячейку (вторая строка второго столбца) и введём там знак = (равно). Можно также, установив курсор в ячейку таблицы, нажать F2 или воспользоваться меню "Таблица" → "Формула". Сразу после этого над документом у нас появится панель формул.

Панель редактирования формул в LibreOffice Writer

Если вы случайно попали в этот режим, нажмите клавишу Escape (Esc) на клавиатуре.
Также как и в Calc, в Writer каждая ячейка имеет свой адрес. Адрес ячейки, в которую вы вводите формулу, отображается в левом поле. Правее от этого поля находится мастер формул. Мастер формул — это очень громкое название, по сути, это просто выпадающий список с небольшим количеством часто используемых функций. Таких функций как IF, TRANSPOSE, CHISQ.TEST и других, присущих Calc, в Writer нет, но это же не электронная таблица. Правее мастера находятся кнопки «Отмена» и «Применить». Самым правым элементом панели является поле, в которое и вводится сама формула. Формулу можно как и в Calc вводить руками и мышкой. Так что тут есть выбор, и привычки менять не придётся. Главной отличительной чертой является другой синтаксис элементов формул. Например, функции часто имеют другое название, пишутся с маленькой буквы, ссылка на ячейку заключаются между знаками больше и меньше, при этом ссылка на ячейку в другой таблице объединяется в одну лексему (например, <Таблица1.A1>). Но ко всем этим отличиям привыкаешь очень быстро.
Все простые математические знаки в вычислениях доступны, включая операторы очерёдности действий (круглые скобки) и операторы сравнения (<, >, <=, >=). Так что, несмотря на небольшой функционал, многие вещи можно реализовать, вспоминая правила математики.
Ещё одним существенным отличием являются пробелы между элементами формулы. Не всегда они необходимы, но я, например, их ставлю автоматически, чтобы не запоминать, где они обязательны, а где нет.
Существует маленький нюанс, обнаруженный мной, это неполное понимание знака числа при возведении в степень. То есть, если вы хотите однозначно указать, что вы возводите именно это число, то лучше его ставить в круглые скобки (например, (<a1>)). Это некоторое время портило мне жизнь, особенно с отрицательными числами.
Если вам нужно изменить формулу, самый простой способ сделать это: нажать клавишу F2 на клавиатуре или воспользоваться меню Таблица → Формула. Самый сложный момент с редактированием возникает в определении того, где в таблице находится формула, а где обычная запись. Чтобы быстро определить формулу в ячейке, нужно включить всплывающие подсказки («Сервис» → «Параметры...» → «LibreOffice» → «Общие» в разделе «Справка»). После этого при наведении на ячейку таблицы будет высвечиваться подсказка с формулой.

Всплывающая подсказка о наличии формулы в ячейке в LibreOffice Writer

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

Пример таблицы с расчетами анализа финансовой устойчивости предприятия

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

Таблица с примером для расчетов в LibreOffice Writer

Расчет Абсолютного отклонения

Все формулы указаны в первом столбце таблицы, за исключением «Темпа прироста» и «Абсолютного отклонения».
Абсолютное отклонение:

Абсолютное отклонение при финансовом анализе предприятия

, где
ΔYb — это Абсолютное отклонение показателя;
Yi — значение на конечный период;
Y0 — значение на базовый (предыдущий) период.
Основная проблема с этим показателем в том, что нам нужен модуль числа, а функции abs() у нас нет. Сделать это в таблице Writer можно двумя способами:
  1. Форматирование числа — правая кнопка мыши на ячейку, в контекстном меню выбираем «Числовой формат», и в поле «Код формата» вводим # ##0;# ##0. Это позволит убрать минусы из ячеек. Но если нам в последствии необходимо будет использовать эти значения, то мы должны помнить, что некоторые из них являются отрицательными, а некоторые положительными. Ведь в данном случае, мы только меняем отображение чисел, но не берем их модуль.
  2. Использование математических операций для обращения числа в положительное — все прекрасно знают, что если умножить число на -1, мы получим обратное ему по знаку. И если у вас всегда только отрицательные значения, то это простой и хороший способ. Но если результат возможен как положительный, так и отрицательный, то я предлагаю следующий вариант: возвести число в квадрат и взять корень. Понятно что при возведении в квадрат мы всегда будем получать положительное число, а операция корня позволит нам вернуться к абсолютной величине начального значения. И это уже будет работать всегда, не важно положительное у вас число или отрицательное.
То есть формула примет вид:

Модуль абсолютного отклонения при финансовом анализе предприятия

, а запись в ячейке будет выглядеть как = sqrt ((<C2> - <B2>) pow 2), где <C2> и <B2> это адреса ячеек.

Расчет Темпа роста и Темпа прироста

Следующий момент — это Темп роста. Хочу разобрать его подробнее для того, чтобы вы понимали, почему я использую именно прирост, а не рост. Классический темп роста считается по формуле:

Формула Темпа роста

, где
Tb — это Темп роста;
Yi — значение на конечный период;
Y0 — значение на базовый (предыдущий) период.
Пока мы работаем с положительными числами, эта формула даёт прекрасные результаты. Но как только одно или оба числа становятся отрицательными, трактование этого показателя превращается в мучение. Например, предыдущее значение у нас было отрицательное, а на текущий период положительно, по правилам математики, мы получим отрицательный результат, что не соответствует действительности. Или другой пример, сегодня у нас -4, вчера было -2 условных единиц, а по формуле мы получаем рост 200%, хотя по факту рост отрицательный. Если вы решите использовать этот показатель, будьте очень внимательны.
Темп прироста:

Формула Темпа прироста

По сути, мы делим абсолютное отклонение на значение в начале периода. Но есть нюанс. Если мы имеем отрицательные значения или «переход через нуль», то вся наша формула начинает нести чепуху. Обычно на практике это решают конструкцией «ЕСЛИ» (IF), но, как я говорил выше, LibreOffice Writer не имеет этой функции, и единственный способ решить эту задачу, привести формулу к универсальному виду. Если вы рассмотрите все возможные комбинации, то увидите, что их всего 6. И чтобы ответ соответствовал реальному приросту, нам необходимо делить на модуль базового (предыдущего) значения, то есть формула примет вид:

Формула Темпа прироста с модулем базового периода

или если мы переложим знак модуля в математическую функцию, то:

Формула Темпа прироста с модулем базового периода через математические функции

В виде формулы для ячейки во Writer, это будет выглядеть как = (<C2> - <B2>) / sqrt ((<B2>) pow 2) * 100. На сто мы умножаем, чтобы получить показатель в процентах. Делать это необязательно, если вы привыкли использовать относительные показатели в единицах.
Во всех «темпах» есть один минус — это невозможность иметь базовый период равным нулю. Будьте с этим осторожны. Если вам нужно использовать базовый период, в котором есть ноль, то необходимо использовать цепные показатели (потому что на ноль делить нельзя). Это же нужно делать, когда «Абсолютное отклонение» равно нулю (потому что деление ноля даёт ноль).

Расчет трёхмерного показателя финансовой устойчивости

Трёхмерный показатель финансовой устойчивости, по сути своей, логическая функция. Нам нужно сравнить с нулём следующие показатели:
  • Излишек (недостаток) собственных оборотных средств для формирования запасов и затрат;
  • Излишек (недостаток) собственных оборотных средств и долгосрочных заемных средств для формирования запасов и затрат;
  • Излишек (недостаток) общей величины основных источников формирования запасов и затрат.
И если они будут больше нуля, то мы ставим единицу, а если равны или меньше, то ноль.
Для того чтобы это было удобно сделать в таблице, мы одну ячейку разбиваем по вертикали на шесть. Вторая, четвёртая и шестая будут содержать формулы, а остальные — скобки и точки для форматирования текста.
Вот, наверное, и все хитрости расчетов этого примера. В прилагаемом файле есть пример этой таблицы с расчетами, на случай, если что-то осталось непонятным из описания. Надеюсь, это упростит вашу работу с таблицами в LibreOffice Writer.

Дополнительная литература и источники