Показаны сообщения с ярлыком Формулы. Показать все сообщения
Показаны сообщения с ярлыком Формулы. Показать все сообщения

четверг, 2 апреля 2020 г.

Расширение Formatting of All Math Formulas обновилось до версии 0.1.9

Мы обновили расширение Formatting of All Math Formulas до версии 0.1.9.
Расширение позволяет изменить размер и вид шрифта во всех или только выделенных формулах Math в документе Writer, Calc, Draw или Impress.
В этой версии исправлена проблема с потерей жирного или курсивного выделения символов в формуле на обычный вид после использования расширения.
Я обновил расширение на официальном сайте по ссылке https://extensions.libreoffice.org/extensions/formatting-of-all-math-formulas.
А вот прямая ссылка на скачивание расширения https://extensions.libreoffice.org/extensions/formatting-of-all-math-formulas/0-1.9/@@download/file/FAF-0.1.9.oxt

среда, 5 февраля 2020 г.

Различия в русских именах функций между Calc и Excel

В своё время один из локализаторов LibreOffice запилил локализованные имена функций в Calc. Это значит, что вместо VLOOKUP русские пользователи теперь могут использовать столь милый им ВПР. Однако из почти 500 функций, которые совпадают в Calc и Excel остались такие, которые в силу неких причин, имеют одинаковое английское имя, но отличающиеся имена в русском варианте. Ниже я приведу список таких функций по состоянию на текущую разрабатываемую версию 7.0 в формате "слева имя в Calc - справа в Excel":
ЧСТОЛБ - ЧИСЛСТОЛБ
ЧКОМБ - ЧИСЛКОМБ
ЧКОМБА - ЧИСЛКОМБА
СЧЁТА - СЧЁТЗ
СЧЁТПУСТОТ - СЧИТАТЬПУСТОТЫ
ДСЧЁТ - БСЧЁТ
ДСЧЁТА - БСЧЁТА
ДИЗВЛЕЧЬ - БИЗВЛЕЧЬ
ДПРОИЗВ - БДПРОИЗВЕД
ДСТОТКЛ - ДСТАНДОТКЛ
ДСТОТКЛГ - ДСТАНДОТКЛП
ДСУММ - БДСУММ
ДДИСП - БДДИСП
ДДИСПГ - БДДИСПП
ФОШ.ТОЧН - ФОШ.ТОЧНО
ДФОШ.ТОЧН - ДФОШ.ТОЧНО
ГАММАНЛОГ.ТОЧН - ГАММАНЛОГ.ТОЧНО
ДСВТ - ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ
МНИМ.ПРОИЗВ - МНИМ.ПРОИЗВЕД
ЛЕВ - ЛЕВСИМВ
ПРОИЗВ - ПРОИЗВЕД
ПРАВ - ПРАВСИМВ
СТОТКЛ - СТАНДОТКЛОН
СТОТКЛ.Г - СТАНДОТКЛОН.Г
СТОТКЛ.В - СТАНДОТКЛОН.В
СТОТКЛА - СТАНДОТКЛОНА
СТОТКЛГ - СТАНДОТКЛОНП
СТОТКЛГА - СТАНДОТКЛОНПА
ИТОГ - ПРОМЕЖУТОЧНЫЕ.ИТОГИ
ЗНАЧ - ЗНАЧЕН
ДИСПГ - ДИСПР
ДИСПГА - ДИСПРА
Как видно, есть минимальные различия, буквально в одну букву, а есть довольно значительные, как например ДСВТ вместо ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ.
Пусть логика в сокращении имени функции есть какая-то, но я не могу понять, в чём прикол отличия на одну две буквы? Всё равно аббревиатуры и сокращения бессмысленные же. Я всё равно лезу в справку, чтобы найти по ключевому слову функцию, а как уж она там звучит ДСУММ или БДСУММ - то дело последнее. Зато в инете искать информацию проще, если имена функций будут идентичные.
В этой теме на нашем форуме я поднял этот вопрос. Если есть желающие высказать своё мнение, милости прошу. Чем больше мнений, тем проще нам будет понять, а что же хочет пользователь в среднем?

суббота, 21 апреля 2018 г.

Расширения LibreOffice. Форматирование всех формул Math в документе

Если у вас есть много формул Math в текстовом документе Writer, электронной таблице Calc, презентации Impress или рисунке Draw, и вам нужно во всех этих формулах изменить размер или шрифт, то вам придется ручками открывать каждую формулу в Редакторе формул и делать соответствующие изменения для каждой формулы отдельно. Это потому, что формула Math - это отдельный объект со своими свойствами, не имеющий своего стиля, через который можно было бы варьировать его форматирование.
По большому счету уже давным давно существовал макрос, который позволяет изменять форматирование всех формул в документе за один раз. Однако пользоваться им простому пользователю очень уж муторно.
Поэтому я решил сделать расширение к LibreOffice, которое в режиме диалога запросит у пользователя вводные по размеру шрифта и самому шрифту и выполнит форматирование всех формул в документе.
Начал я вот в этой теме на нашем форуме. После чего Майк решил немного это дело расширить и дополнить, и в итоге мы имеем сейчас версию 0.1.5. На сегодня разработка и улучшение расширения остановились, поскольку я не кодер, а Майк крайне занят основной работой.
Также я это расширение опубликовал на официальном сайте с расширениями для LibreOffice - https://extensions.libreoffice.org/extensions/formatting-of-all-math-formulas.
Расширение нужно скачать и установить в LibreOffice. После установки расширения в меню Сервис -> Дополнения появится пункт FaF, при нажатии на который появится вот такой диалог:
В первом поле нужно ввести размер шрифта (меньше 4 вводить нельзя). В выпадающем списке ниже можно выбрать шрифт из имеющихся в системе. Учтите, что если в формулах был какой-то редкий шрифт, и он не установлен в системе, то восстановить вид формул не получится, отмена действия в данном случае не сработает. При этом можно оставить шрифт пустым, тогда изменится только размер шрифта на указанный выше.
После настроек нажмите кнопку Formatting, чтобы отформатировать все формулы.
Также есть возможность изменять только выделенные формулы. Вы можете выделить только кусок текстового документа, либо часть слайдов презентации или только несколько объектов на листе Draw, запустить диалог FaF, настроить нужные параметры и нажать на кнопку Formatting only in selection, чтобы отформатировать только выделенные формулы.
Обо всех проблемах данного расширения, с которыми вы столкнетесь, можно (и нужно) написать в тему на форуме, указанную выше.

суббота, 14 января 2017 г.

Перевод на русский язык названий функций LibreOffice Calc

Я может открою кому-то глаза на реальный мир, но переводом всего интерфейса пользователя LibreOffice на русский язык занимается ровно ОДИН человек.
На сегодня, в выпуске первого релиз кандидата LibreOffice 5.3, что-то (как всегда, я так понял) случилось с локализацией, огромное количество элементов в интерфейсе не переведено. Причем это какая-то системная ошибка (на мой взгляд конечно) во взаимодействии локализаторов и программистов, которую программисты просто не видят, а локализаторы по какой-то причине не озвучивают, потому что считают, что лучше ничего сделать нельзя. При этом новых терминов в GUI добавляется не так много, однако уже переведенные термины из релиза в релиз теряют привязку к своим переводам на иные языки. 
Так вот, этот самый один человек устал от своего труда и написал на форум странный пост, после которого, однако, ему вызвались помочь с допереводом элементов. А сам он, внезапно, решил начать перевод давно выпрашиваемой для LibreOffice Calc пользователями MS Excel штуки: локализации имен функций электронных таблиц!
Чтобы вы понимали: внутри программы имена функций все равно хранятся на английском языке (и в Эксель точно так же), локализация влияет только на отображение формулы и усложняет процесс ввода формулы (потому что функция будет на русском, а ссылки на ячейки все равно на английском, приходится туда сюда дергать раскладку).
Настройка отображения английских или русских названий функций находится в диалоге Сервис-Параметры, в разделе LibreOffice Calc - Формула:
Начать решили с самых популярных и часто используемых функций. Что у них там получится и в какой выпуск они будут это запускать - пока непонятно. Учитывая, что это по сути локализация, которую принимают в любой промежуточный релиз, наверное это может случиться тихо и незаметно в любой момент времени.
Update: собственно во втором релиз кандидате 5.3.0.2 на 80% наверное уже переведно:

пятница, 13 января 2017 г.

Вычисления в таблицах Writer - 2

Я как-то писал уже, что в таблицах Writer можно проводить несложные вычисления, используя формулы. Оказывается, можно создавать формулы со ссылками на ячейки не только этой же таблицы, также можно использовать ссылки на ячейки иных таблиц документа. Но при таком использовании есть один ньюанс. Если Вы используете формулы в таблице, и при этом формулы в таблице содержат ссылки на ячейки другой таблицы:
то при смене имени таблицы
формулы перестанут работать. Будут выдавать ошибку вида:
Поэтому совет: сначала создайте все Ваши таблицы с нужными Вам именами, а уж потом создавайте в таблицах формулы со ссылками на ячейки из иных таблиц документа.
Один из разработчиков LibreOffice считает это багом, который подлежит исправлению, потому что если удалить или добавить строку или столбец в таблицу, на которую ссылается формула, то ссылка автоматически исправится, а при смене всего навсего имени выдается ошибка. Посмотрим, что скажут другие разработчики.
Я написал ещё статей по теме вычисления в таблицах Writer:
Часть 3 здесь
Часть 4 здесь
 

понедельник, 4 июля 2016 г.

Функция IFERROR в LibreOffice Calc. Что это и зачем это нужно

Функция IFERROR является одним из обработчиков внутренних ошибок электронных таблиц при расчётах в LibreOffice Calc. Что это значит? Это значит, что, если в ячейке в результате расчёта получается какая-либо внутренняя ошибка Calc (типа "Деление на ноль"), то функция IFERROR обработает такое событие и в ячейку запишет не код ошибки, который мешает производить дальнейшие действия с этой ячейкой, а заданное пользователем значение, будь то число или текст. Это очень удобно в том случае, если у Вас есть большая таблица, в которой исходные данные задаются последовательно и Вы, как пользователь, заранее уверены или можете предположить, что в некоторых ячейках обязательно будут ошибки (из-за того же деления на ноль), которые будут мешать обрабатывать результаты вычислений в целом по таблице. Приведу пример.
На рисунке ниже приведена абсолютно обычная табличка, в которой считается средняя цена одной единицы продукции на основе имеющихся данных о сумме выручки и количестве товара:

Цена за единицу в ячейке Е2 рассчитывается по простой формуле =ROUND(C2/D2;2) (функция ROUND округляет значение в ячейке до заданного пользователем числа знаков после десятичной запятой). Соответственно в ячейках Е3, Е4, Е5 и Е6 в формулах меняются ссылки на исходные данные  построчно. Средняя цена (ячейка Е8) считается, как =AVERAGE (E2:E6). Всё хорошо, если все данные в таблице есть и они корректные (то есть число, а не текст, там, где должно быть число, и вообще в ячейках столбца "Количество" есть данные).
Что же будет, если данных не хватает:
Итак, мы видим ошибку типа "Деление на ноль", которая тянет за собой и ошибку в итоговой цифре "Средняя цена", ради которой всё и затевалось. Как вариант, при отсутствии данных, можно просто удалить строку с компанией "Абхазия-4". Однако, если она в дальнейшем опять понадобиться или данные по сумме от этой компании требуются где-то ещё в расчётах, то удалять строку нельзя. Вот тут и пригодится функция IFERROR:
Что мы сделали: в ячейках Е2...Е6, столбца "Цена за единицу", мы добавили в формулу расчета цены обработчик ошибок IFERROR. Получилась формула =IFERROR(ROUND(C2/D2;2);"нет данных") вот такая. В случае, если при вычислении получается ошибка, то функция отображает простой текст "нет данных", который, с одной стороны, является подсказкой для пользователя, что чего-то не хватает, а с другой стороны не мешает функции AVERAGE высчитывать среднее значение цены, потому что AVERAGE оперирует исключительно числами, а текстовые значения в расчёт не принимает. Поэтому в последнем примере средняя цена считается на основании данных от четырёх компаний, а не от пяти, и считается вполне корректно.
Обратите внимание, что функцию IFERROR можно было бы использовать и в ячейке, где считается средняя цена, то есть в Е8. Однако в этом случае её роль была бы исключительно уведомительной, в том плане, что вместо кода ошибки можно было бы указать пользователю, что он ввёл не все данные или ввёл их некорректно.

суббота, 2 апреля 2016 г.

Создание формулы Math в документе Writer без запуска редактора формул

В Руководстве пользователя Math подсмотрел такую интересную штуку. Если Вам знаком язык разметки формул, используемый в LibreOffice Math, то можно прямо в документе Writer, установив курсор в нужное место, ввести формулу на языке разметки, выделить её и выбрать пункт меню Вставка > Объект > Формула (или на значок Формула на панели инструментов, предварительно настроив её отображение). Текстовая запись на языке разметки будет преобразована в объект формула без необходимости отдельного запуска редактора формул.
Кстати объект формула из документа Writer можно сохранить в отдельный файл в формате ODF (родном для LibreOffice Math), либо в формате MathML, используя который можно переносить формулу в другие офисные пакеты и размещать на сайтах в сети Интернет. Просто нажмите правой кнопкой мыши на объекте формула и выберите из контекстного меню пункт Сохранить копию как.

вторник, 15 марта 2016 г.

Вставка математических формул с автонумерацией в LibreOffice Writer

Часто в научных статьях (или иных больших наукоориентированных документах) необходимо поместить кучу формул, которые должны располагаться по центру страницы, и при этом быть пронумерованы, причём номер формулы должен располагаться по правому краю страницы.
Небольшое отступление: вообще в таких случаях я бы посоветовал освоить LaTeX, однако для разового применения можно воспользоваться и возможностями LibreOffice (или MS Office).
Итак, в LibreOffice Writer есть возможность быстро вставить формулу, причём именно таким образом, как было описано в преамбуле поста. Сделайте следующее: наберите буквы fn и нажмите клавишу F3 на клавиатуре. Произойдет вставка таблички, состоящая из одной строки, разделённой на два столбца. В левом столбце по середине будет вставлена формула E=mc^2, в правом будет вставлено поле с автоматической нумерацией (которую можно отдельно настроить). Формулу необходимо будет исправить на нужную (щёлкните по ней два раза мышкой). Внешний вид листа будет примерно вот такой:
Обратите внимание, светло-серые границы табличек напечатаны не будут, как и затенение номера формулы. Они показываются просто для удобства редактирования.
Не забудьте исправить формулы на нужные. Если не знаете как, то вот вам Руководство пользователя LibreOffice Math.

пятница, 11 марта 2016 г.

Математические формулы. Бага в MS Word

Да да, в заголовке не ошибка. В МСО 2007 я не нашел отдельного MS Equation, а просто нажал в MS Word на кнопку Формула на вкладке Вставка (она крайняя справа на вкладке).
А теперь про багу, на которую я наткнулся в MS Word. Вот некая формула (я не знаю, что это, просто нашёл на просторах сети Интернет для примера):
Вот эта вот рамка вокруг формулы означает, что курсор в настоящее время ВНУТРИ формулы и её можно редактировать. А теперь щелкаем рядом с формулой, рамка пропадает и нажимаем ОДИН раз пробел:
Обратите внимание на пределы под и над знаком суммы, они сместились почему-то. А также почему-то уменьшился размер формулы. При этом, если пробел после формулы удалить, то формула вернется к нормальному виду.
Я допускаю, что у меня необновлённый МСО 2007 и в дальнейших патчах для 2007, а также в более поздних версиях офиса, эту багу исправили, однако само её наличие - это показатель небезгрешности продукта от МикроМягких.
Update from 2019: это не бага вовсе, а специальный режим, позволяющий запихать формулу в размер текущей строки с привязкой не к абзацу новому, а "как символ". В LibreOffice есть аналогичный режим для формул Math, только включается он руками.

суббота, 12 декабря 2015 г.

Вычисления в таблицах Writer

Может не все знают, что в таблицах, нарисованных в текстовом редакторе Writer, можно производить расчеты, ровно так же, как это происходит в электронных таблицах Calc (ну или в Excel, чтобы совсем уж все поняли). Есть ограничения в плане используемых функций по сравнению с электронными таблицами: в таблицах Writer доступны 5 общих функций, 11 логических операторов, 3 статистических функции и 6 тригонометрических, а для Calc доступно 438 функций и операторов самого различного вида. Однако для простейших вещей обычно хватает и этого.
Для того, чтобы ввести в ячейку таблицы Writer формулу необходимо нажать клавишу "=" на клавиатуре (работает только, если ячейка абсолютно пустая, даже без пробелов), либо нажать клавишу F2 на клавиатуре, либо на панели инструментов Таблица (появляется внизу экрана, как только курсор будет установлен в любую ячейку таблицы) нажать на соответствующий значок Формула. В верхней части экрана появится строка формул, аналогичная таковой в Calc. В этой строке слева направо: поле с адресом текущей ячейки, три кнопки: Функции, Отменить, Применить, и собственно поле для ввода формул. Далее можно выбрать функцию из выпадающего списка, либо руками написать формулу в строке формул.
Учитывайте, что ссылки на ячейки таблицы обозначаются в таблицах Writer не просто А1 или В4, а <A1> и <B4> соответственно. Диапазоны - стандартно, через двоеточие, например <A1>:<A5>. Также можно щелкать по ячейкам таблицы напрямую - это намного упрощает процесс и не придется думать о том, что где-то ссылка на ячейку не верная.
А теперь самое интересное. MS Word точно так же позволяет производить расчеты в своих таблицах, однако между Writer и им есть различия, как в наличии функций для использования в таких таблицах, так и в удобности использования этого функционала в целом.
Для начала вот перечень функций, доступных для обоих продуктов:
Функции для таблиц Writer
Функции для таблиц Word
Сумма
SUM
Округлить
ROUND
Проценты -
Квадратный корень -
Степень -
Разделитель списка -
Равно -
Не равно -
Меньше или равно -
Больше или равно -
Меньше -
Больше -
Логическое ИЛИ
OR
Логическое исключающее ИЛИ -
Логическое И
AND
Логическое НЕ
NOT
Среднее
AVERAGE
Минимум
MIN
Максимум
MAX
Синус -
Косинус -
Тангенс -
Арксинус -
Арккосинус -
Арктангенс -
COUNT (начиная с версии 7.1)
COUNT (возвращает количество ячеек с числами в заданном диапазоне)
ABS (начиная с версии 7.1)
ABS (возвращает модуль числа)
-
DEFINED (устанавливает, определен ли аргумент внутри скобок)
-
FALSE (ложь)
-
IF (если)
-
INT (возвращает целую часть числа, отбрасывая дробную)
MOD (начиная с версии 26.2)
MOD (определяет остаток от деления)
PRODUCT (начиная с версии 7.1)
PRODUCT (перемножает все числа, заданные её аргументами)
SIGN (начиная с версии 7.1)
SIGN (возвращает знак. показывает вектор изменения значения в двух ячейках, в плюс, в минус или неизменное)
-
TRUE (истина)

Заметьте, насколько по разному видят разработчики программных продуктов нужность каких-либо функций в данном случае.
А теперь посмотрим на удобство реализации этого функционала в Writer и в Word:

Writer
Word
Активация функционала ввода формул (курсор уже установлен в нужную ячейку)
Нажать «=»
Нажать F2
Нажать значок на панели
Нажать значок на панели
Ввод формулы
В отдельной строке, аналогично Calc
В отдельном диалоговом окне
Названия функций
На русском
На английском
Возможность щелкать по ячейкам для использования их адресов в формуле
Есть
Нет
Автоматический пересчет результата при изменении исходных значений в ячейках
Есть
Нет

Если по поводу удобства вызова функционала можно даже не говорить ничего (быструю клавишу назначить на это можно наверное и в Word), то по поводу названия функций можно только удивленно посмотреть в глаза девелоперам Word. Почему названия функций локализованы в Excel и не локализованы в Word. Ну и кстати да, даже локализация ничего не даст пользователю, который не работал в Excel. Если СУММ - это всем понятно, то SIGN, который в локализованном варианте ЗНАК - это что-то малопонятное (у меня слово ЗНАК ассоциируется со знаком на дороге типа КИРПИЧ). ИМХО тут разработчики LibreOffice поступили крайне разумно, а локализаторы ещё более разумно.
Далее: возможность щелкать по нужным ячейкам при создании формулы - это крайне нужная и полезная штука, это намного снижает вероятность ошибки, тут и говорить нечего.
Автоматический пересчет значения в ячейке с формулой - это тоже обязательная вещь. Забыли вы ткнуть лишний раз в "обновление полей" в Word и получили на выходе неправильные результаты в финансовом отчете или итоге эксперимента, тогда как в Writer такого не случится.
Напоследок хочу посетовать на то, что ячейка таблицы, содержащая формулу, ни во Writer, ни в Word никак не выделяется. Ни цветом, ни значком, ни шрифтом, никак. И это очень плохо по вполне очевидным причинам.
Я написал ещё пару статей по теме вычисления в таблицах Writer:
Часть 2 здесь 
Часть 3 здесь