17 октября 2014 г.

LibreOffice Calc: Нестандартный числовой формат. Как поставить знак «+» плюс перед числом

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

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

Особо вникать в данные не надо. Моя задача сводится к перебиванию чисел в столбцах «Сан.часть», «Госпиталь», «Изолятор», «Тенденция». С первыми тремя столбцами ничего не сделать, а вот столбец «Тенденция» всегда меня напрягает, т. к. требует ручной работы. Поэтому я решил его автоматизировать.

Немного отступлю от сути повествования, мне приходится работать в MS Excel, но в LibreOffice проблемы и способы их решения такие же.

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

Что же можно сделать с этим?

1. Для начала я разделил столбец «Тенденция» на два столбца и в первом столбце записал простую формулу, которая вычитает данные из «Всего» и «Всего за предыдущий период» . Тут возникает первая проблема, если число получается отрицательным, то знак минус пишется автоматически, но вот знак плюс — нет.

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

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

Все проблемы решаются с помощью диалога «Формат ячеек». Правой кнопкой мыши жмем на ячейку и выбираем пункт «Формат ячеек». В открывшемся диалоге выбираем вкладку «Числа».

Внизу есть поле «Код формата», в него для первого столбца я ввел следующий код:
[BLUE][<0]"+"0;[RED][>0]"-"0;"без "

Для второго столбца код выглядит так:
[BLUE][<0]" (+"0,00" %)";[RED][>0]" (-"0,00" %)";" изменений"

В итоге получил такой результат:

Теперь все считается автоматически и записывается в нужном мне формате. К сожалению, нет времени на дальнейшие разъяснения и копирование информации. О таинственных кодах, которые я вводил Вы можете прочитать здесь — https://help.libreoffice.org/Common/Number_Format_Codes/ru. Моя цель была показать конкретный пример применения .

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

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