Libreoffice calc как посчитать стаж работы
Перейти к содержимому

Libreoffice calc как посчитать стаж работы

  • автор:

Определить стаж работы сотрудника на предприятии — VBA — Ответ 16659428

Вывести список сотрудников заданного отдела, имеющих стаж работы на предприятии более 20 лет
1.Информация о сотрудниках содержит ФИО, номер отдела, должность, стаж работы на предприятии.

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

Определить средний стаж работы и вывести все сведения о сотрудниках, стаж которых выше среднего.
Фамилия Имя Отчество Должность Пол Дата приема на работу Определить средний стаж работы и.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Стаж сотрудника
Всем привет Не могу нормально посчитать стаж сотрудника. Нужно что бы выводило стаж всех.

Определить средний стаж работы
Количество строк: 3. Столбцы: Фамилия, Отдел, Год поступления на работу, Образование. Определить.

Определить фамилию работника, имеющего самый большой стаж работы.
а) Создать файл, содержащий данные: • ФИО работника; • склад; • стаж работы. Добавлено.

Вывести данные сотрудника чей стаж превышает заданное число лет
#include <stdio.h> #include <math.h> #include <time.h> #include <iostream> const int size=80;.

Тестирование производительности таблиц офисных пакетов в Linux на примере MS Office, LibreOffice, МойОфис, OnlyOffice

Актуальность темы обусловлена форсированием перехода Государственных ведомств и госкомпаний России с Windows на Astra Linux. Это было сделано на фоне заявления корпорации Microsoft о сворачивании бизнеса в РФ. Так как у автора, да и у многих других пользователей MS Office, за долгие годы работы скопилось ряд наработок, то вопрос об их работоспособности и переносе под новый офисный пакет, на платформе Linux, стоит остро, как и возможность малой автоматизации рутинных действий.

1. Введение

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

У каждого инженера со стажем рано или поздно скапливается множество программок, табличек, макросов упрощающих или облегчающих работу. Однако учитывая тот факт, что на законодательном уровне принято решение о прекращении закупок импортного ПО для критической информационной инфраструктуры и набирающие обороты процессы импортозамещения, на мой взгляд, пришло время поговорить о том, как рядовой инженер, скажем инженер-сметчик/инженер-ПТО сможет перевести часть своего легаси (устаревший код, который больше не поддерживается, не обновляется, но используется) на один из предлагающихся к импортозамещению офисных пакетов.

2. Сравнение и тестирование функциональности и производительности Офисных пакетов в Linux

2.1 Информация об оборудовании на котором будет происходить тестирование
Тестирование производительности я произвел на ноутбуке Hasee ZX7-CT5DA (он же Clevo N957TC), обзор которого я уже делал ранее на данном ресурсе, с предустановленным гипервизором Proxmox, в виртуальной машине с проброшенной видеокартой.. При этом гостевой операционной системой для тестов у меня используется полюбившийся мне Debian 11.3 non-free

Характеристики ноутбука:
ЦП — Intel Core i7-8700
ВК — GTX 1660Ti
ОЗУ — 16 GB
Установленные диски — 512GB Phison SSD SATA m.2/1TB Kingston KC2500 SSD NVMe m.2/250GB Samsung EVO 850 SSD SATA 2.5″
Дисплей — 15,6 »IPS 45% NTSC

Настройки виртуальной машины

ProxMox работает на 1TB Kingston KC2500 SSD NVMe m.2, на нем же хранятся файлы виртуальных машин. Несмотря на проброшенный диск 512GB Phison SSD SATA m.2 в тестировании он участвовать не будет и служит лишь для обмена данными между виртуальной машиной и хостом (устройство, предоставляющее сервисы, выступающее сервером).

Тест дисковой подсистемы на хосте




Тест дисковой подсистемы в виртуальной машине

2.2 Краткая характеристика тестируемого ПО
MicroSoft Office 2010, установленный при помощи PlayOnLinux в Wine. Ныне устаревший офисный пакет от MicroSoft будет выступать в качестве системы для легаси, который необходимо будет перенести в другой офисный пакет по результатам тестов. 2010-я версия выбрана лишь только потому что, в моем случае, это последняя версия, которая устанавливается без проблем в PlayOnLinux на моей конфигурации в Debian 11. В общем и целом в представлении не нуждается.

Внешний вид MicroSoft Office

LibreOffice 7.0.4.2 — стандартный офисный пакет, который шел в комплекте с Debian 11.

Кроссплатформенный, свободно распространяемый офисный пакет с открытым исходным кодом, созданный как ответвление OpenOffice.org в 2010 году. Разрабатывается сообществом из более чем 480 программистов под эгидой некоммерческого фонда The Document Foundation за счёт пожертвований отдельных лиц и организаций.

Внешний вид и Версия LibreOffice


МойОфис Домашняя версия 2022.01. Сборка 4 — по моему скромному мнению офис, менеджеры которого наиболее активны в PR’е на различных площадках с целью продвижения своего продукта.

Экосистема приложений для совместной работы с документами с возможностью интеграции в закрытые облачные инфраструктуры и специализированные информационные системы. Разработчик «Новые облачные технологии» Продукты МойОфис включены в Единый реестр российских программ для электронных вычислительных машин и баз данных, полностью соответствуют законодательству РФ и дополнительным требованиям к офисному ПО, согласно постановлению Правительства №325 от 23 марта 2017 года. Приложения ориентированы на коммерческих и государственных заказчиков, сертифицированы на соответствие требованиям по информационной безопасности ФСТЭК, ФСБ и МО РФ и могут применяться для работы с конфиденциальной информацией и сведениями, составляющими государственную тайну.

Внешний вид и Версия МойОфис


OnlyOffice Desktop Editors версия 7.1.0.215

Офисный пакет с открытым исходным кодом, разработанный компанией Ascensio System SIA с головным офисом в Риге (Латвия). Решение включает в себя систему для управления документами, проектами, взаимоотношениями с клиентами и электронной почтой.
Доступны облачная версия и версия для развертывания в локальной сети. Кроме того, редакторы ONLYOFFICE интегрируются с популярными платформами для совместной работы, включая ownCloud, Nextcloud, SharePoint и другими. ONLYOFFICE является официальным технологическим партнером Nextcloud, ownCloud, SeaFile, Pydio, eXo Platform и XWiki.

Внешний вид и Версия OnlyOffice

Другие офисные программы в рамках данной статьи расматриваться не будут по разным причинам, например потому что WPS Office в бесплатной версии не имеет макросов, зато заявлена поддержка VBA, OpenOffice не встает в систему рядом с LibreOffice и требует его полного удаления, Р7-Офис — мои земляки, требует обязательную регистрацию что, на мой взгляд, совершенно неоправданно с т.з. популяризации ПО.

По сути из Российского ПО здесь только МойОфис, наверное на этом можно можно было бы и закончить не начав, но все же я продолжу, потому что и OnlyOffice открыл код редакторов под лицензией GNU AGPL v.3 , и LibreOffice под общественной лицензией MPL 2.0, а значит есть все основания сравнивать Российское ПО с открытым.

2.3 Постановка задачи
Производится Сравнение и тестирование Табличных редакторов Офисных пакетов будет с точки зрения удобства и функциональности программирования простых, но крайне необходимых макросов, которые будут автоматизировать работу в части формирования и заполнения шаблонных документов, а так же будет частично затронут вопрос работоспособности ключевых формул, которые будут помогать в форматировании и подготовке таких документов.

Иными словами рассмотрим возможность переписать программу, написанную мной в 2019-м году, для MS Excel при помощи VBA, для тех кто хочет заполнять файлы по своим шаблонам, с открытым VBA кодом. Выбор тестов продиктован желанием повторить все то, что мною было сделано несколько лет назад в рамках малой автоматизации, по заполнению шаблонов документов заранее подготовленными данными, с открытым VBA кодом.

2.4 Интерфейс и формулы
Далее будут приводится скриншоты для каждой операции каждого офисного табличного процессора из указанных выше офисных пакетов: MS Excel, LibreOffice Calc, МойОфис Таблицы Домашняя версия, OnlyOffice Таблица.
Последующий текст будет ориентирован на продвинутого пользователя программного пакета MS Office для русскоязычных пользователей. В конце статьи будет ссылка на файлы, в которых будут хранится все этапы тестов, для тех кто захочет попробовать повторить и сравнить на своих ПК.

2.4.1 Именованные диапазоны
Именованный диапазон это ячейка/диапазон ячеек, которому присвоено имя. Применяется в формулах, для определения границ печати (в MS Excel для выводимого диапазона на печать всегда присваивается имя диапазону Область_печати), а так же для выпадающих списков, но это мы немного забегаем вперед.

Для того что бы создать Именованный диапазон необходимо:
а) в MS Excel открыть вкладку «Формулы» и выбрать пункт «Диспетчер имен»

Скриншот окна в MS Excel

б) в LibreOffice Calc выделить диапазон данных, открыть меню «Данные» и выбрать пункт «Задать диапазон. »

Скриншот окна в LibreOffice Calc

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица открыть вкладку «Формула», выбрать меню «Именованные диапазоны» и выбрать пункт «Диспетчер имен»

Скриншот окна в OnlyOffice Таблица

2.4.2 Выпадающий список в ячейке
Выпадающий список в ячейке служит, с одной стороны, для удобства Пользователя при выборе регламентированных вариантов ответа, с другой стороны, исключаются случайные ошибки при заполнении значениями там где это важно. При этом будьте аккуратными, потому что если ссылаться напрямую на диапазон ячеек отличный от текущего листа, то в MS Office 2007 и младше приводит к сбросу настроек выпадающего списка в ячейке через непродолжительное время. Но для MS Office 2013 и старше это уже не так актуально, поэтому для порядка и удобства ссылки на такие списки лучше делать через Именованный диапазон.

Для того что бы создать Выпадающий список в ячейке необходимо:
а) в MS Excel открыть вкладку «Данные» и выбрать пункт «Проверка данных»

Скриншот окна в MS Excel

б) в LibreOffice Calc открыть меню «Данные» и выбрать пункт «Проверка. »
Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия, по состоянию на июнь 2022 года, выпадающий список своими средствами или сделанный в другом офисном пакете, сделать/задействовать невозможно.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица открыть вкладку «Данные» и выбрать пункт «Проверка данных».
Скриншот окна в OnlyOffice Таблица

2.4.3 Условное форматирование
Условное форматирование (цветовая раскраска и форматирование текста) применяют тогда и там, когда привносят в таблицы элемент дизайна и наглядности, и когда необходимо выделить ошибки/выбивающиеся значение и т.д. и т.п., т.е. все то на что необходимо заострить/обратить внимание. Такое форматирование ячеек происходит по различным наборам условий.

Для того что бы создать Условное форматирование в ячейке необходимо:
а) в MS Excel выделить диапазон ячеек, открыть вкладку «Главная», открыть меню «Условное форматирование» и выбрать пункт «Создать правило. »

Скриншот окна в MS Excel

б) в LibreOffice Calc выделить диапазон ячеек, открыть меню «Формат», открыть подменю «Условное» и выбрать пункт «Условие. »

Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия, по состоянию на июнь 2022 года, функционал Условного форматирования своими средствами сделать невозможно, но файлы созданные в других офисных программах отрабатываются корректно.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица выделить диапазон ячеек, открыть вкладку «Главная», открыть меню «Условное форматирование» и выбрать пункт «Новое правило»

Скриншот окна в OnlyOffice Таблица

2.4.4 Получить диапазон области печати текущего листа формулой
Этот пункт и следующий будут из разряда колдунства. Такие функции необходимы в том случае, если Вам необходимо решать вопросы форматирования таблица/шаблона с учетом вывода на печать/принтер. Для этого используется формула MS Excel, которая для текущего листа выводит адрес диапазона печати в формате диапазона ячеек. Как мы помним MS Excel хранит диапазоны печати в именованных диапазонах «Область_печати», а так же оперативно отслеживает ее изменение в случае изменения границ области печати. =СЦЕПИТЬ(АДРЕС(СТРОКА(Область_печати);СТОЛБЕЦ(Область_печати);1;1);»:»;АДРЕС(СТРОКА(Область_печати)+ЧСТРОК(Область_печати)-1;СТОЛБЕЦ(Область_печати)+ЧИСЛСТОЛБ(Область_печати)-1;1;1))

После ввода формулы в ячейке:
а) в MS Excel обязательно настроить область печати на текущем листе и радоваться рабочей формуле. При настраивании области печати автоматически создается именованный диапазон с именем «Область_печати»

Скриншот окна в MS Excel

б) в LibreOffice Calc данный способ не работает, в этом табличном процессоре не поддерживается функция MS Excel ЧИСЛСТОЛБ, а LibreOffice Calc при задании границ печати не создает именованный диапазон со значениями для печати и хранит данные в другом виде. Если загрузить предварительно сохраненный рабочий файл в MS Excel, то формула отразит последнее значение отображенное в таблице при закрытии в MS Excel. Соответственно этот вариант не работает, т.е. нужен другой подход.

Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия после ввода формулы в ячейке и задания границ печати получаем ошибку, т.к. у офисного пакета МойОфис сложные отношения с Именованными диапазонами. Если загрузить предварительно сохраненный рабочий файл в MS Excel, то мы получим нерабочую формулу.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица обязательно настроить область печати на текущем листе и радоваться рабочей формуле.

Скриншот окна в OnlyOffice Таблица

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

Формула + объяснение

Первая строка в A3:
=ПСТР(A1;1;105-ПОИСКПОЗ(» *»;ПРАВСИМВ(ПСТР(A1;1;105);СТРОКА($B$1:$C$104));))
Вторая и последующие строки A4 и далее (протянуть):
=ПСТР(A$1;СУММ(ДЛСТР(A$3:A3))+2;105-2-ПОИСКПОЗ(» *»;ПРАВСИМВ(ПСТР(A$1;СУММ(ДЛСТР(A$3:A3));105);СТРОКА($B$1:$C$104));))

Вводить формулы только через комбинацию клавиш Ctrl+Shift+Enter (в случае MS Excel)
Здесь:
— число 105 – максимальное число символов в строке, т.е. 105 символов;
— A1, ПСТР(A$1 – жесткая привязка на ячейку в которой содержится текст, который требуется разбить на несколько строк. При правках сохранять знак символа $;
— ДЛСТР(A$3:A3) – диапазон строк перед текущей строкой, необходим для определения начала позиции для копирования последующего блока текста. При правках сохранять знак символа $;
— СТРОКА($B$1:$C$104) – малофункциональный блок, который лучше не трогать, но стоит иметь ввиду, что если Ваш блок будет после 104-й строки, то необходимо будет диапазон скорректировать в сторону увеличения до максимальной строки в Вашем блоке текста. При правках сохранять знак символа $

После ввода формул в ячейке:
а) в MS Excel в ячейку А1 забиваем очень длинную тестовую фразу, с количеством символов больше 105 в несколько раз и радуемся результату:

Скриншот окна в MS Excel

б) в LibreOffice Calc данный способ не работает, т.к. он не знает функцию ПРАВСИМВ, а так же мне сходу не удалось запустить эти формулы ни через одну из комбинаций клавиш. Если загрузить предварительно сохраненный рабочий файл в MS Excel, то формула так же не работает. Соответственно нужен другой подход.

Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия после ввода формулы в ячейки ведет себя так же как и LibreOffice Calc, с той лишь разницей, что у МойОфис нет проблем с функцией ПРАВСИМВ.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица после ввода формулы в ячейки ведет себя так же как и LibreOffice Calc и МойОфис Таблицы Домашняя версия. Если загрузить предварительно сохраненный рабочий файл в MS Excel, то первоначально отображает вид как перед закрытием, но в случае правок в ячейке А1 пересчет формул заканчивается ошибкой.

Скриншот окна в OnlyOffice Таблица

2.4.6 Открытие файлов с большим количеством строк


Достаточно простой тест на ресурсоемкость. Давайте представим что у нас есть файл с большим числом строк данных, выгруженных из условной 1С, для чего смоделируем утрированную нагрузку, для этого:

а) в MS Excel в ячейку A1 вводим арабскую единицу, в соседнюю ячейку B1 вводим формулу «=A1+1», протягиваем ячейку B1 вправо до тех пор, пока не будет цифра 100, а затем копируем формулы на 11750 строк, получаем файл размером 9,1Мб и радуемся результату:

Скриншот окна в MS Excel

При этом сам MS Excel в оперативной памяти занимает порядка 251 308 КиБ, прокрутка работает быстро и плавно, а так же ничего не тормозит.
б) в LibreOffice Calc открытие того же самого файла осуществляется быстро, прокрутка осуществляется быстро и плавно, а так же ничего не тормозит. В оперативной памяти LibreOffice Calc занимает порядка 701 254 КиБ.

Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия открытие того же файла началось с вывода окна ожидания, прокрутка осуществляется с заметными глазу небольшими задержками, скролинг осуществляется неудобно из-за постоянных подгрузок, в оперативной памяти МойОфис Таблицы Домашняя версия занимает порядка 1 858 726 КиБ.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица открытие того же файла осуществляется быстро, прокрутка происходит быстро и плавно, хотя на мой взгляд не такая плавная как LibreOffice Calc, в оперативной памяти OnlyOffice Таблица занимает порядка 618 188 КиБ.

Скриншот окна в OnlyOffice Таблица

2.5 Макросы
2.5.1 Краткий обзор редакторов Макросов в офисных пакетах
а) в MS Excel редактор VBA в представлении не нуждается. Visual Basic for Applications, на текущий момент, представляет собой немного упрощенную реализацию языка программирования Visual Basic 6.0. VBA, будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX.
VBA хорошо документирован. Справочная информация предоставлена как в локальном варианте, так и онлайн. Кроме того пользователи MS Office создали огромное число площадок, сайтов, групп, видео, книг по обучению и обмену опытом, в результате чего возможность программировать на VBA достаточно просто, т.к. относительно легко найти в сети подходящий пример, при условии что Вы правильно формулируете запрос.
Дополнительной возможностью, не мало важной для нас, является еще и тот факт, что выполнение макроса можно связать с кнопкой, которую можно расположить на рабочем листе книги, что так же повышает удобство.

Скриншот окна в MS Excel

б) в LibreOffice Calc используется LibreOffice Basic (LO Basic, LibreOffice Basic, OOo Basic, он же StarBasic), который в свою очередь частично совместим с VBA, но реализован иначе, из-за чего мы имеем разную производительность абсолютно идентичных макросов. Справочная информация предоставлена как в локальном варианте, так и онлайн, однако ресурсов посвященных этому BASIC’у намного меньше чем у VBA, тем не менее совместимость с VBA частично помогает решать вопросы.
Дополнительной возможностью, немаловажной для нас, является еще и тот факт, что выполнение макроса можно связать с кнопкой, которую можно расположить на рабочем листе книги, что так же повышает удобство.

Скриншот окна в LibreOffice Calc

в) в МойОфис Таблицы Домашняя версия в настоящий момент реализована поддержка Lua версии 5.3.2, который является свободно распространяемым, с открытым исходным кодом. На сколько я знаю, из широко известных программных продуктов, он так же используется для написания плагинов к FAR. Здесь по ссылке можно скачать справочник макрокоманд. В настоящий момент в рунете сообществ посвященных программированию на Lua только у FAR’а. Редактор имеет спартанский интерфейс, но есть поддержка, правда в тестовом режиме, записи макросов. Назначить кнопку для запуска макроса нельзя.

Скриншот окна в МойОфис Таблицы Домашняя версия

г) в OnlyOffice Таблица используется JavaScript API. Документация по нему… доступна на сайте разработчика. Интерфейс редактора макросов — спартанский, записи макросов нет. Назначить кнопку для запуска макроса нельзя.

Скриншот окна в OnlyOffice Таблица

2.5.2 Пишем тестирующий производительность макрос

Техзадание на макрос:

Тестовый этап №1 — в первую очередь нас интересует производительность операций ввода-вывода в ячейки. Для чего на каждом языке программирования будет написан код, который будет заполнять матрицу 1000х1000 ячеек случайными числами;
Тестовый этап №2 — затем будет осуществляться чтение с заполненного листа в массив (память);
Тестовый этап №3 — после чего макросом осуществим запись заполненного листа в 10 файлов на жесткий диск;
Все три тестовых этапа должны будут сопровождаться фиксацией времени выполнения каждого этапа, собственно это время мы и будем сравнивать в рамках статьи. Таким образом, мы протестируем операции ввода-вывода.

Ну а теперь более развернуто по каждому из офисных пакетов.

2.6.2.1 Макрос VBA в MS Excel

Макрос VBA в MS Excel

Rem -= Заполняем область на Лист1 1000х1000 ячеек случайными значениями до 1000 =- Dim wb As Workbook Dim x As Integer, y As Integer Set wb = ThisWorkbook wb.Sheets("Лист1").Cells(1, "B") = Format(time, "hh:mm:ss") Randomize time For x = 1 To 1000 Step 1 For y = 1 To 1000 Step 1 wb.Sheets("Лист1").Cells(y + 6, x) = rnd * 1000 Next y Next x wb.Sheets("Лист1").Cells(2, "B") = Format(time, "hh:mm:ss") Rem -= Читаем область на Лист1 1000х1000 ячеек в массив в память устройства =- Dim q(1000, 1000) As Single For x = 1 To 1000 Step 1 For y = 1 To 1000 Step 1 Let q(x, y) = wb.Sheets("Лист1").Cells(y + 6, x) Next y Next x wb.Sheets("Лист1").Cells(4, "B") = Format(time, "hh:mm:ss") Rem -= Сохраняем Лист1 на жесткий диск в виде MS Excel фала 10 раз =- Dim ИмяФайла As String Application.DisplayAlerts = False For x = 1 To 10 Step 1 Let ИмяФайла = ThisWorkbook.Path + "\" + "Test" Let ИмяФайла = ИмяФайла + CStr(x) + ".xlsx" wb.Sheets("Лист1").Copy ActiveWorkbook.SaveAs Filename:=ИмяФайла, _ FileFormat:=51 ActiveWindow.Close Next x Application.DisplayAlerts = True wb.Sheets("Лист1").Cells(6, "B") = Format(time, "hh:mm:ss") 

Собственно, здесь все просто и без выкрутасов. Два вложенных цикла, в которых перебираются ячейки по X и Y, сперва заполняя случайными числами, а потом считывая их в массив. Сохранение тоже без каких-либо неожиданностей. Результат выполнения макроса в приведенном скриншоте.

2.6.2.2 Макрос LibreOffice Basic в LibreOffice Calc

Макрос LibreOffice Basic в LibreOffice Calc

Rem -= Заполняем область на Лист1 1000х1000 ячеек случайными значениями до 1000 =- Dim wb As Workbook Dim x As Integer, y As Integer Set wb = ThisWorkbook wb.Sheets("Лист1").Cells(1, "B") = Format(time, "hh:mm:ss") Randomize time For x = 1 To 1000 Step 1 For y = 1 To 1000 Step 1 wb.Sheets("Лист1").Cells(y + 6, x) = rnd * 1000 Next y Next x wb.Sheets("Лист1").Cells(2, "B") = Format(time, "hh:mm:ss") Rem -= Читаем область на Лист1 1000х1000 ячеек в массив в память устройства =- Dim q(1000, 1000) As Single For x = 1 To 1000 Step 1 For y = 1 To 1000 Step 1 Let q(x, y) = wb.Sheets("Лист1").Cells(y + 6, x) Next y Next x wb.Sheets("Лист1").Cells(4, "B") = Format(time, "hh:mm:ss") Rem -= Сохраняем Лист1 на жесткий диск в виде MS Excel фала 10 раз =- Dim ИмяФайла As String Application.DisplayAlerts = False For x = 1 To 10 Step 1 Let ИмяФайла = ThisWorkbook.Path + "\" + "Test" Let ИмяФайла = ИмяФайла + CStr(x) + ".xlsx" wb.Sheets("Лист1").Copy ActiveWorkbook.SaveAs Filename:=ИмяФайла, _ FileFormat:=51 ActiveWindow.Close Next x Application.DisplayAlerts = True wb.Sheets("Лист1").Cells(6, "B") = Format(time, "hh:mm:ss") 

Несмотря на то что VBA и LibreOffice Basic имеют отличия, в этом фрагменте макрос LibreOffice Basic идеально повторяет код для VBA. Так же все просто и без выкрутасов. Два вложенных цикла, в которых перебираются ячейки по X и Y, сперва заполняя случайными числами, а потом считывая их в массив. Сохранение тоже без каких-либо неожиданностей. Результат выполнения макроса в приведенном скриншоте. Заметна разница в операциях заполнения/чтения ячеек в файле, по сравнению с VBA, при чем на порядок, но тут же в 2,5 раза выше скорость доступа к диску, при записи файлов.

2.6.2.3 Макрос Lua в МойОфис Таблица Домашняя версия

Предвосхищая удивленный возглас — да, здесь все сложно. К сожалению мне не удалось разобраться с записью макросом таблиц в несколько файлов, а так же с передачей времени в переменную. Тут меня ждало фиаско: Lua позволяет работать со временем, т.е. можно получить текущее время в переменную и записать его в ячейку, но проблема в том, что os.time() здесь не работает, а при использовании DocumentAPI.DateTime из инструкции макрос выдает ошибку: либо nil, либо пусто, если прописать его в переменную с конвертацией типа в текст. Примеров по использованию этого API в сети нет. Соответственно все замеры времени сделаны на секундомере смартфона и содержат некоторую погрешность, в отличие от других случаев оценки времени для других Офисов в статье. Каюсь, ибо грешен.

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

Макрос Lua в МойОфис Таблица Домашняя версия

-- This macros is generated by the MacroRecorder feature. function changeTableSelection(anchorOffsetRow, anchorOffsetColumn, cursorOffsetRow, cursorOffsetColumn) local selection = EditorAPI.getSelection() local tbl = selection:getTable() local beginRow = selection:getBeginRow() + anchorOffsetRow local beginColumn = selection:getBeginColumn() + anchorOffsetColumn local lastRow = cursorOffsetRow and selection:getLastRow() + cursorOffsetRow or beginRow local lastColumn = cursorOffsetColumn and selection:getLastColumn() + cursorOffsetColumn or beginColumn assert(beginRow >= 0 and beginRow = 0 and beginColumn = tbl:getRowsCount()) then tbl:insertRowAfter(tbl:getRowsCount() - 1, false, lastRow - tbl:getRowsCount() + 1) end if (lastColumn >= tbl:getColumnsCount()) then tbl:insertColumnAfter(tbl:getColumnsCount() - 1, false, lastColumn - tbl:getColumnsCount() + 1) end local position = DocumentAPI.CellRangePosition(beginRow, beginColumn, lastRow, lastColumn) EditorAPI.setSelection(tbl:getCellRange(position)) end function updateFormulaInCurrentCell(value) local selection = EditorAPI.getSelection() local cellPos = DocumentAPI.CellPosition(selection:getBeginRow(), selection:getBeginColumn()) selection:getTable():getCell(cellPos):setContent(value) end --main changeTableSelection(5, 2, nil, nil) updateFormulaInCurrentCell('1') EditorAPI.changeSelection(EditorAPI.SelectionMode.Move, EditorAPI.SelectionDirection.Down, EditorAPI.TableSelectionUnit.ToClosestCell) 

Здесь монструозная текстом функция changeTableSelection вызывает смещение относительно текущей позиции курсора на задаваемое число ячеек по строкам и столбцам, а EditorAPI.changeSelection(EditorAPI.SelectionMode.Move, EditorAPI.SelectionDirection.Down, EditorAPI.TableSelectionUnit.ToClosestCell) сдвиг курсора после ввода на одну ячейку вниз. Собственно на этой механике постоянного перемещения курсора и строится адресация записи в ячейку, сама же запись происходит через функцию updateFormulaInCurrentCell . Пользуясь этим мы пишем Первый вариант макроса на заполнение поля 1000 на 1000 ячеек.

Первый вариант макроса на заполнение поля 1000 на 1000 ячеек.

-- This macros is generated by the MacroRecorder feature. function changeTableSelection(anchorOffsetRow, anchorOffsetColumn, cursorOffsetRow, cursorOffsetColumn) local selection = EditorAPI.getSelection() local tbl = selection:getTable() local beginRow = selection:getBeginRow() + anchorOffsetRow local beginColumn = selection:getBeginColumn() + anchorOffsetColumn local lastRow = cursorOffsetRow and selection:getLastRow() + cursorOffsetRow or beginRow local lastColumn = cursorOffsetColumn and selection:getLastColumn() + cursorOffsetColumn or beginColumn assert(beginRow >= 0 and beginRow = 0 and beginColumn = tbl:getRowsCount()) then tbl:insertRowAfter(tbl:getRowsCount() - 1, false, lastRow - tbl:getRowsCount() + 1) end if (lastColumn >= tbl:getColumnsCount()) then tbl:insertColumnAfter(tbl:getColumnsCount() - 1, false, lastColumn - tbl:getColumnsCount() + 1) end local position = DocumentAPI.CellRangePosition(beginRow, beginColumn, lastRow, lastColumn) EditorAPI.setSelection(tbl:getCellRange(position)) end function updateFormulaInCurrentCell(value) local selection = EditorAPI.getSelection() local cellPos = DocumentAPI.CellPosition(selection:getBeginRow(), selection:getBeginColumn()) selection:getTable():getCell(cellPos):setContent(value) end --main -- перед стартом поместить курсор в ячейку А1 for x=1, 1000, 1 do for y=1, 1000, 1 do updateFormulaInCurrentCell(math.random()*1000) EditorAPI.changeSelection(EditorAPI.SelectionMode.Move, EditorAPI.SelectionDirection.Down, EditorAPI.TableSelectionUnit.ToClosestCell) end changeTableSelection(-1000, 1, nil, nil) end

Тут нужно сказать еще об одном нюансе. МойОфис таблицы не позволяет иметь на листе кол-во столбцов больше 1000 (ALL). Что наводит на некоторые мысли связанные с ограничениями работы ПО.
Однако я отвлекся, т.к. время выполнения макроса было слишком большое, то мне пришлось оценивать скорость по выполнению лишь одной его части — записи одного столбца. При заполнении 1-го столбца на 1000 ячеек случайными числами от 1 до 1000 тратится время 1мин. 54 сек. Таким образом поле 1000 х 1000 ячеек будет заполнено за время =(60+54)сек/столбец * 1000 столбцов / 60сек / 60мин = 31,67час.

Однако в инструкции есть другой метод адресации для записи в ячейку через getCell(DocumentAPI.CellPosition(y, х)) . Пишем теперь уже совсем простенький макрос:

Второй вариант макроса на заполнение поля 1000 на 1000 ячеек.

local tbl = document:getBlocks():getTable(1) for x=0, 1000, 1 do for y=0, 1000, 1 do tbl:getCell(DocumentAPI.CellPosition(y, x)):setNumber(math.random()*1000) end end 

Что выглядит значительно проще для восприятия и логики работы, но при этом… Оценка времени велась так же: при заполнении 1-го столбца на 1000 ячеек случайными числами от 1 до 1000 тратится время 6минут. Таким образом поле 1000 х 1000 ячеек будет заполнено за время = 6мин/столбец * 1000 столбцов / 60 мин = 100час. Видимо из-за этой разницы функционал записи макроса генерирует не этот код, а другой, более объемный.

Дальше пишем макрос на чтение поля 1000 х 1000 ячеек в массив.

Чтение поля 1000 х 1000 ячеек в массив

local tbl = document:getBlocks():getTable(1) Arr = <> for x=1, 1000, 1 do Arr[x] = <> for y=1, 1000, 1 do Arr[x][y]=tostring(tbl:getCell(DocumentAPI.CellPosition(y-1, x-1)):getFormattedValue()); end end

Который выполняется за… 12 секунд. С чем связана такая разница между временем записи данными в ячейки и считыванием их в память на Lua в МойОфис — хороший вопрос!

При беглом знакомстве был выявлен минус работы с макросами это то, что область таблицы недоступна для навигации и правок, пока открыт редактор макросов. В том же MS Excel можно без проблем переключаться между таблицей и редактором. Так же, в отличие от того же редактора VBA, не исправляется регистр букв в соответствии с внутренними представлениями о прекрасном. Зато тут есть консоль в которую выводятся как ошибки выполнения, так и через print() содержание переменных, что удобно при отладке. Работа с массивами непривычна, т.к. они не жесткие, как я привык по Basic, Pascal, C. В сети мало информации и примеров. Документация на сайте представлена всего лишь одной инструкцией, которая хоть и идет с примерами, но их явно недостаточно. В сети нет сообществ по обмену опытом программирования макросами Lua в МойОфис, но, справедливости ради, есть сообщество по Lua, что не одно и то же. Нет жесткой типизации переменных. В общем это другая парадигма отличная от той что меня учили в 90-е… может это и хорошо, но в целом непривычно.

2.6.2.4 Макрос JS в OnlyOffice Desktop Editors

Макрос JS в OnlyOffice Desktop Editors

var oWorksheet = Api.GetActiveSheet(); var arr = new Array(1001); // Из-за отсутствия прямой цифровой адресации по колонкам обхожу ограничение через костыль for (let x1 = 1; x1 // Заполняем поле на листе 1000 х 1000 ячеек var currentdate1 = new Date(); let t1 = currentdate1.getHours() + ":" + currentdate1.getMinutes() + ":" + currentdate1.getSeconds(); oWorksheet.GetRange("C1").SetValue(t1); for (let y = 7; y oWorksheet.GetRange("D1").SetValue(y); > var currentdate2 = new Date(); let t2 = currentdate2.getHours() + ":" + currentdate2.getMinutes() + ":" + currentdate2.getSeconds(); oWorksheet.GetRange("C3").SetValue(t2); // читаем поле на листе 1000 х 1000 ячеек в массив var arr1 = Array(1001); for (let y1 = 7; y1 oWorksheet.GetRange("D1").SetValue(arr1[1000]); > var currentdate3 = new Date(); let t3 = currentdate3.getHours() + ":" + currentdate3.getMinutes() + ":" + currentdate3.getSeconds(); oWorksheet.GetRange("C4").SetValue(t3); 

Здесь сразу возникли трудности, с частью из которых удалось разобраться благодаря справке на сайте OnlyOffice , другие вещи пришлось google’ить. В ряде случаев выручили примеры кода, так что справка очень даже полезная. Например из чтения документации я понял что в явном виде JS не поддерживает многомерные массивы и это нужно обходить, потом вышли накладки с повторным использованием переменных в коде, из-за чего пришлось их дублировать. Что не критично, но в то же время не совсем корректно. При адресации к ячейке необходимо прописывать адреса исключительно текстом, например «D7», в отличие от тех же Basic’ов/Lua где столбец-строка допускают в макросе использовать цифровую адресацию, что не удобно, но не критично и решается через дополнительный массив.
Какие-то моменты от меня ускользнули, т.к. это мой первый код на JS да и еще в виде макроса. К сожалению OnlyOffice при такой масштабной портянке значений 1000 х 1000 ячеек постоянно вис, вылетал, из-за чего код пришлось прогонять частями. При этом, насколько я понял из описания, поправьте если ошибаюсь, JS не позволяет макросом сохранить текущий лист в файл. Нет, OnlyOffice двигает функционал генерации документов с помощью ONLYOFFICE DocumentBuilder, здесь про него написано на официальном сайте, но это внешний модуль, благодаря которому программируя можно создавать новые файлы (однако придется прописывать весь текст и форматирование таким образом отдельным макросом), в то время как я планирую использовать уже готовые шаблоны, для чего открывать файлы с диска, производить манипуляции и сохранять как новый файл, таким образом исключая необходимость программировать стили оформления и заполняемый текст. Запросив поддержку я получил ответ в чате, что по десктопной версии они не консультируют и предложили пролистать несколько десятков страниц форумов и справки.
Еще один минус работы с макросами в ONLYOFFICE это то, что как и в МойОфис область таблицы недоступна для навигации и правок, пока открыт редактор макросов. В отличие от MS Excel, где можно без проблем переключаться между таблицей и редактором. Так же, в отличие от того же редактора VBA, не исправляется регистр букв в соответствии с внутренними представлениями о прекрасном. Зато есть всплывающая подсказка, предлагающая закончить вводимый текст, что удобно. Общие ошибки подсвечиваются, но комментарии по ним куцые. Часто код останавливает без вывода ошибок, если они связаны с логикой, и разобраться почему ты напортачил, т.е. подсмотреть по коду ошибки куда копать — нельзя.

Результат выполнения макроса в приведенном скриншоте. В операциях ввода-вывода на текущем листе макрос отрабатывает быстрее чем VBA, но не критично, но при этом файл на больших данных виснет. Сохранение такого файла занимает 20сек.

3. Выводы

3.1 Оценка производительности Офисных продуктов

Результаты тестирования возможностей.

Результаты тестирования макросов.

3.2 Оценка альтернатив для замены MS Office
На текущий момент, из рассмотренных офисных пакетов, оптимальной заменой MS Office, с учетом связки возможностей таблиц и макросов, будет LibreOffice, а если не касаться вопросов макросов и огромных файлов, то OnlyOffice так же может быть рекомендован к домашнему использованию. МойОфис, на фоне остальных офисных продуктов, откровенно подкачал, здесь и меньшее количество поддерживаемых формул/функционала, здесь и слабая справка по продукту, особенно в части макросов.

Что же касается проблемы переноса моей программы «Автоматизированное заполнение документации» для заполнения Ваших шаблонов и документов, то лучше всего ее переносить на базу LibreOffice с полной перезаписью кода. При этом полученный вариант будет работать медленнее чем на MS Office, из-за медленного StarBasic. На текущий момент ни МойОфис, ни OnlyOffice не смогут в полной мере справиться с реализацией такого функционала, а искренне жаль…

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

На мой взгляд объективно лучшим для малой автоматизации есть пакет MS Office, не смотря на старые подходы, тому же VBA уже 29 лет, если считать с момента первого появления в составе Офисного пакета в далеком 1993м году. Однако он работает и на нем написано огромное количество кода, а если учесть что такой подход не требует дополнительной установки ПО/библиотек, то это означает отсутствие барьеров для распространения и внедрения кроме воли самих пользователей.

И JS, и Lua, и StarBasic уступают, по разным причинам, VBA. Отказ от иностранного ПО часть таких барьеров возводит, потому что ограничивает выбор ПО, и здесь мы получаем ситуацию, когда альтернативы сами по себе, без установки дополнительного ПО, откровенно не вывозят по сравнению с VBA. На текущий момент, VBA в таких условиях для сохранения возможностей, перспективнее всего будет заменить внешним ПО, позволяющим многофункциональную работу и редактирование форматов файлов электронных таблиц, например python или аналогичных. Что поднимет не только порог вхождения новым пользователям/разработчикам, но так же вызовет вопросы с установкой и настройкой нового ПО. Однако это не прогресс в технологиях, а откат, т.к. сократится число потенциальных пользователей, которые смогут выступить в роли программиста на час. Что в свою очередь вызовет увеличение трудоемкости в документообороте страны.

Функция СРЗНАЧЕСЛИ

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel Web App Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще. Меньше

В этой статье описаны синтаксис формулы и использование С AVERAGEIF в Microsoft Excel.

Описание

Возвращает среднее значение (среднее арифметическое) всех ячеек в диапазоне, которые соответствуют данному условию.

Синтаксис

СРЗНАЧЕСЛИ(диапазон, условия, [диапазон_усреднения])

Аргументы функции СРЗНАЧЕСЛИ указаны ниже.

  • Диапазон. Обязательный. Одна или несколько ячеек для вычисления среднего, включающих числа или имена, массивы или ссылки, содержащие числа.
  • Условие. Обязательный. Условие в форме числа, выражения, ссылки на ячейку или текста, которое определяет ячейки, используемые при вычислении среднего. Например, условие может быть выражено следующим образом: 32, «32», «>32», «яблоки» или B4.
  • Диапазон_усреднения. Необязательный. Фактическое множество ячеек для вычисления среднего. Если этот параметр не указан, используется диапазон.

Замечания

  • Ячейки в диапазоне, которые содержат значения ИСТИНА или ЛОЖЬ, игнорируются.
  • Если ячейка в «диапазоне_усреднения» пустая, функция СРЗНАЧЕСЛИ игнорирует ее.
  • Если диапазон является пустым или текстовым значением, то #DIV0! значение ошибки #ЗНАЧ!.
  • Если ячейка в условии пустая, «СРЗНАЧЕСЛИ» обрабатывает ее как ячейки со значением 0.
  • Если ни одна из ячеек в диапазоне не соответствует условиям, то #DIV/0! значение ошибки #ДЕЛ/0!.
  • В этом аргументе можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому одиночному символу; звездочка — любой последовательности символов. Если нужно найти сам вопросительный знак или звездочку, то перед ними следует поставить знак тильды (~).
  • Значение «диапазон_усреднения» не обязательно должно совпадать по размеру и форме с диапазоном. При определении фактических ячеек, для которых вычисляется среднее, в качестве начальной используется верхняя левая ячейка в «диапазоне_усреднения», а затем добавляются ячейки с совпадающим размером и формой. Например:

Если диапазон равен

И «диапазон_усреднения»

Обрабатываемые ячейки

Примечание: Функция СРЗНАЧЕСЛИ измеряет среднее значение, то есть центр набора чисел в статистическом распределении. Существует три наиболее распространенных способа определения среднего значения: :

  • Среднее значение — это среднее арифметическое, которое вычисляется путем сложения набора чисел с последующим делением полученной суммы на их количество. Например, средним значением для чисел 2, 3, 3, 5, 7 и 10 будет 5, которое является результатом деления их суммы, равной 30, на их количество, равное 6.
  • Медиана — это число, которое является серединой множества чисел, то есть половина чисел имеют значения большие, чем медиана, а половина чисел имеют значения меньшие, чем медиана. Например, медианой для чисел 2, 3, 3, 5, 7 и 10 будет 4.
  • Мода — это число, наиболее часто встречающееся в данном наборе чисел. Например, модой для чисел 2, 3, 3, 5, 7 и 10 будет 3.

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

Примеры

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Стоимость имущества

Урок № 1
Тема: Электронные таблицы. Назначение. Электронные таблицы
LibreOffice Calc
Ячейки и диапазоны ячеек. Ввод и редактирование данных.

Ввод формул.

Электронные таблицы (ЭТ) – это специальные программы, предназначенные для работы с данными в табличной форме:

· Для проведения расчетов над данными,

· Для построения диаграмм на основе табличных данных,

· Для сортировки и поиска данных на основе определенного критерия,

· Для проведения анализа данных и просчета сценариев типа «что, если?»,

· Для создания баз данных,

· Для печати таблиц и их графического представления.

Первые ЭТ появились в 1979 году.

Общепризнанным родоначальником электронных таблиц как отдельного класса ПО является Дэн Бриклин, который совместно с Бобом Фрэнкстоном разработал программу VisiCalc в 1979 г. Эта электронная таблица для компьютера Apple II стала очень популярной, превратив персональный компьютер из игрушки для технофилов в массовый инструмент для бизнеса.

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

3. LibreOffice Calc

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

Офисный пакет LibreOffice может свободно устанавливаться и использоваться в школах, офисах, вузах, домашних компьютерах, государственных, бюджетных и коммерческих организациях и учреждениях России и стран СНГ согласно GNU General Public License .

Состав пакета LibreOffice

LibreOffice Writer

LibreOffice Calc

LibreOffice Impress

LibreOffice Base

Механизм подключения к внешним СУБД и встроенная СУБД HSQLDB

LibreOffice Draw

LibreOffice Math

Вид экрана стандартный для приложений WINDOWS :

· Строка заголовка, в которой содержится название программы и текущего документа.

· Строка меню с основными командами.

· Панели инструментов – Стандартная, Форматирования и Строка формул.

· Рабочее поле, которое состоит из ячеек. Каждая ячейка имеет свой адрес: имя столбца и номер строки, на пересечении которых она находится. Например : А1, С8, Р15. Столбцов всего 256 (последний IV ), строк – 65636.

· Слева и внизу экрана находятся полосы прокрутки. Слева от нижней полосы прокрутки находятся вкладки с названиями рабочих листов. Таким образом, мы видим только кусок огромной таблицы, которая формируется в памяти ПК.

5. Документы LibreOffice Calc

Документы, которые создаются с помощью LibreOffice Calc , называются рабочими книгами и имеют расширение . ODS . Новая рабочая книга имеет три рабочих листа, которые называются ЛИСТ1, ЛИСТ2 и ЛИСТ3. Эти названия указаны на ярлычках листов в нижней части экрана. Для перехода на другой лист нужно щелкнуть на названии этого листа. На рабочем листе могут располагаться

· диаграммы (в качестве элемента таблицы или на отдельном листе).

Действия с рабочими листами:

· Переименование рабочего листа. Установить указатель мыши на корешок рабочего листа и два раза щелкнуть левой клавишей или вызвать контекстное меню и выбрать команду переименовать.

· Вставка рабочего листа. Выделить ярлычок листа, перед которым нужно вставить новый лист, Вставка ê Лист, или с помощью контекстного меню.

· Удаление рабочего листа. Выделить ярлычок листа, Правка ê Удалить , или с помощью контекстного меню.

· Перемещение и копирование рабочего листа. Выделить ярлычок листа и перетащить на нужное место (с нажатой клавишей CTRL – скопировать) или через буфер обмена.

6. Ячейки и диапазоны ячеек.

Рабочее поле состоит из строк и столбцов. Строки нумеруются числами от 1 до 65536. Столбцы обозначаются латинскими буквами: А, В, С, …, АА, АВ, … , IV , всего – 256. На пересечении строки и столбца находится ячейка. Каждая ячейка имеет адрес, состоящий из имени столбца и номера ячейки. Адрес ячейки записывается только на английском языке — это важно

Для работы с несколькими ячейками их удобно объединять их в «диапазоны».

Диапазон – это ячейки, расположенные в виде прямоугольника. Например, А3, А4, А5, В3, В4, В5. Для записи диапазона используется «:»: А3:В5

Примеры: A1:C4, B6:E12, G8:H10

Задание:

— выделить следующие диапазоны ячеек B 2: D 7; A 1: G 2; D 4: H 8

— записать диапазоны

7 . Ввод и редактирование данных.

В LibreOffice Calc можно вводить следующие типы данных:

· Текст (например, заголовки и поясняющий материал).

· Функции (например, сумма, синус, корень).

Данные вводятся в ячейки. Для ввода данных нужную ячейку необходимо выделить. Существует два способа ввода данных:

· Просто щелкнуть в ячейке и напечатать нужные данные.

· Щелкнуть в ячейке и в строке формул и ввести данные в строку формул.

Изменение данных.

· Выделить ячейку ê нажать F 2 ê изменить данные.

· Выделить ячейку ê щелкнуть в строке формул и изменить данные там.

Для изменения формул можно использовать только второй способ.

8. Ввод формул.

Формула – это арифметическое или логическое выражение, по которому производятся расчеты в таблице. Формулы состоят из ссылок на ячейки, знаков операций и функций. LibreOffice Calc располагает очень большим набором встроенных функций. С их помощью можно вычислять сумму или среднее арифметическое значений из некоторого диапазона ячеек, вычислять проценты по вкладам и т. д.

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

Оператор

Возведение в степень

В формулах можно использовать скобки для изменения порядка действий.

Ввести следующие данные

Убедитесь, что активный является английский шрифт.

Установите табличный курсор в ячейке D2.

Щелкните левой кнопкой мыши в строке формул.

Введите знак равенства, а затем формулу: В2*С2. Нажмите клавишу Enter>.

Убедитесь, что в ячейке D2 появилось числовое значение

Заполнить следующую таблицу, в поле «сумма» записать формулы для расчета итоговой суммы

Цена за единицу

Урок № 2
Тема: Автозаполнение ячеек электронной таблицы.
Автозаполнение ячеек формулами. Использование функции «Сумма»

1. Автозаполнение.

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

· Введите в первую ячейку нужный месяц, например январь.

· Выделите эту ячейку. В правом нижнем углу рамки выделения находится маленький квадратик – маркер заполнения.

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

Если необходимо заполнить какой-то числовой ряд, то нужно в соседние две ячейки ввести два первых числа (например, в А4 ввести 1, а в В4 – 2), выделить эти две ячейки и протянуть за маркер (от нижнего правого угла второй ячейки) область выделения до нужных размеров.

Задание:

— используя автозаполнение построить ряды

— от 1 до 50,

— от 2 до 100,

— январь …декабрь

  1. Автозаполнение формулами

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

Пример: Известна легенда об изобретателе шахмат, который попросил в награду за свое изобретение столько зерна сколько выйдет, если на первую клетку шахматной доски положить 1 зернышко, на вторую – 2, на третью – 4, на четвертую – 8 и т.д., то есть на каждую следующую в 2 раза больше, чем на предыдущую. Всего клеток на шахматной доске 64.

Попробуем подсчитать общее количество зерна, выложенного на доску

На первую ячейку — 1 зернышко

На следующую – 2, т.е. в два раза больше, однако вместо числа 2 в ячейку B 2 введем формулу. Так как закономерность описывается уравнением y =2 x , то и формула будет аналогичной = A 1*2

Нажимаем Enter и растягиваем вторую ячейку за маркер вниз на 64 ячейки

  1. Использование функции «сумма»

Посчитаем теперь сумму всех ячеек в примере. Для этого выделяем требуемый диапазон (в нашем случае от 1 до 64 ячейки ( A 1 – A 64)). Находим сверху кнопку «сумма» и щелкаем по ней

Значение суммы запишется в следующей по порядку ячейке. Если значение суммы должно быть в отдельной ячейке, то необходимо активировать данную ячейку, щелкнуть по значку суммы, выбрать диапазон и нажать « enter ».

Задание:

— найти сумму всех натуральных чисел от 1 до 100 включительно

— найти сумму всех нечетных числе от 1 до 99

— найти сумму квадратов натуральных чисел от 1 до 10 (1 2 + 2 2 +3 2 +…)

Урок № 3
Тема: Относительная и абсолютная адресация

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

В ячейке D 3 составим формулу, по которой считается сумма чисел в ячейках B 2 и С2

Если теперь изменить данные, например, в ячейке B 2, то автоматически пересчитается значение суммы

Попробуем теперь скопировать формулу вниз методом «перетаскивания»

Обратите внимание, после копирования формулы в другую ячейку, ее вид изменился, т.е.в ней вместо ссылок на ячейки B 2 и C 2 стоят ссылки на ячейки B 3 и C 3.

Данный способ называется относительной адресацией. Его удобно применять при заполнении однотипных данных.

Однако бывают ситуации, когда использование данного метода ведет к неправильному расчету. Рассмотрим пример:

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

В другие ячейки введем сумму в долларах

Составим в ячейке B 3 формулу для перевода долларов в рубли

Попробуем скопировать формулу в нижние ячейки

Видим, что результат посчитан неправильно (должно получиться не 0 а 1200 и 3000)

При внимательном изучении получившейся формулы видно, что ячейка A 3 «превратилась» в ячейку A 4 (что правильно, так как теперь подставляется значение «40»), а вот вторым множителем теперь автоматически стала ячейка стоящая ниже ячейки C 2 – ячейка C 3, в которой пусто, и, следовательно, вторым множителем становится число 0. Значит, чтобы результат был верным, необходимо каким-то способом зафиксировать вторую ячейку, не давая изменять ее запись.

Это можно сделать, используя так называемую абсолютную адресацию. Суть этого метода заключается в том, что в записи формулы перед буквой или цифрой ставится знак $, который не дает изменяться соответствующей букве или цифре. Если этот знак стоит и перед буквой и перед цифрой то мы имеем дело с абсолютной адресацией, а если только перед буквой или только перед цифрой – со смешанной адресацией (в этом случае часть ссылок формулы при копировании может меняться)

Изменим нашу начальную формулу методом абсолютной адресации

И скопируем ее вниз

Обратите та часть формулы, которая заключена в «доллары» не изменилась!

Метод абсолютных и смешанных ссылок продемонстрируем на примере составления таблицы умножения

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

Попробуем просто скопировать формулу в ячейке B 2 вниз

Как видим, результат, как и следовало ожидать, неверный. Попробуем понять в чем же дело, анализируя формулу, например в ячейке B 3

Правильно должно быть = A 3* B 1, значит цифру «1» находящуюся в формуле в ячейке B 2 надо «зафиксировать»

Попробуем теперь скопировать формулу вниз

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

— составить таблицу умножения 10 на 10

Урок № 4
Тема:
Стандартные функции в LibreOffice Calc

1. Стандартные функции.

Вычисления, которые позволяет производить программа Calc , не ограничены простейшими арифметическими операциями. Имеется возможность использовать большое число встроенных стандартных функций и выполнять весьма сложные вычисления. Функциями в OpenOffice.org Calc называют объединения нескольких вычислительных операций для решения определенной задачи. Значения, которые используются для вычисления функций, называются аргументами. Значения, возвращаемые функциями в качестве ответа, называются результатами.

Когда мы начинаем ввод формулы (нажатием клавиши «=»), то поле Имя в строке формул заменяется раскрывающимся списком стандартных функций.

Этот список содержит десять функций, использовавшихся последними, а также пункт Другие функции, с помощью которого можно открыть диалоговое окно Мастер функций.

Это диалоговое окно позволяет выбрать любую стандартную функцию из имеющихся в Calc.

Для удобства работы функции разбиты по категориям:

· финансовые (функции для расчёта разнообразных экономических показателей, таких как норма прибыли, амортизация, ставка доходности и т.д.);

· дата и время (с помощью функций даты и времени можно решить практически любые задачи, связанные с учётом даты или времени, в частности, определить возраст, вычислить стаж работы, определить число рабочих дней на любом промежутке времени, например: TODAY()— вводит текущую дату компьютера);

·математические (функции для выполнения различных арифметических и алгебраических действий, например: ABS()— возвращает модуль числа, SUM()— суммирование диапазона ячеек , SQRT()— значение квадратного корня и т.д.);

·статистические (в этой категории собраны разные функции, с которыми работают такие разделы математики, как теория вероятностей, математическая статистика, комбинаторика);

· текстовые (при помощи текстовых функций имеется возможность обрабатывать текст: извлекать символы, находить нужные, записывать символы в строго определённое место текста и многое другое, например: LOWEL()— делает все буквы в строке текста строчные);

·логические (эти функции помогают создавать сложные формулы, которые в зависимости от выполнения тех или иных условий будут совершать различные виды обработки данных или выполнять разветвляющиеся вычисления, например: IF(), AND(), OR()).

При выборе функции появляется её краткое описание, поэтому можно легко найти нужную функцию. На первых порах вам вполне хватит математических и логических функций.

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

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

Например, если в ячейке А5 записана формула с функцией возведения в степень =POWER( A 4;3), значением этой ячейки будет значение А4, возведенное в степень 3.

В дальнейшем мы часто будем обращаться к математическим функциям, к которым относятся такие известные из курса школьной математики функции, как SIN () — синус, COS () — косинус, TAN () — тангенс, LN () — натуральный логарифм, SQRT() — квадратный корень числа и т.д.

Давайте рассмотрим пример:

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

MAX – функция определения наибольшего значения;

А1:А10 – диапазон ячеек, среди которых требуется отыскать наибольшее значение.

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

Составим таблицу значений функции синус на интервале от 1 до 2 с шагом 0,1

Вначале строим ряд значений независимого аргумента ( x ), учитывая заданные параметры

В ячейке B 2 вставляем функцию синус (любым методом) от аргумента ячейки A 2

Копируем формулу вниз

— составить таблицу значений функции косинус на интервале от 1 до 3 с шагом 0,2

— составить таблицу значений функции y = x 2 на интервале от 0 до 3 с шагом 0,1

Урок № 5
Тема: «Использование логических функций.
Построение графиков и диаграмм»

1.Логические функции Функция IF

Функция IF используется для проверки условий при вычислениях.

IF (лог_выражение; значение_если_истина; значение_если_ложь)

Лог_выражение — это любое значение или выражение, принимающее значения ИСТИНА или ЛОЖЬ. Например, A10=100 — это логическое выражение; если значение в ячейке A10 равно 100, то выражение принимает значение ИСТИНА. В противном случае — ЛОЖЬ.

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

Дата приема на работу

Коэффициент

Коэффициент вычисляется таким образом:

Если Стаж >= 10 лет, то он равен 2, иначе – 1.

В столбец E вставляем такую формулу: = IF (C2>=10;2;1),

Соответственно, в столбец F : =D2*E2

В этом же примере будем вычислять коэффициент так:

Стаж до 10 лет – 1,

От 10 до 20 – 1,5,

Следовательно, здесь нужно выбирать из 3 вариантов. Используем вложенные функции IF .

В столбец Е вставляем формулу: = IF (C2=20;2;1,5))

Обратите внимание, что в формуле второе IF стоит внутри скобок

Таблица примет вид:

Дата приема на работу

Коэффициент

2. Построение диаграмм

LibreOffice calc предоставляет широкие возможности для создания деловой графики – диаграмм и графиков. Они отображают данные нагляднее, чем числа в ячейках таблицы. Рассматривая диаграммы или графики, можно сразу проводить анализ данных в таблице.

Диаграмма – это графическое представление данных в таблице.

Диаграммы строятся на основе уже готовых таблиц.

Графики и диаграммы строятся при помощи мастера диаграмм

Мастер диаграмм – это серия диалоговых окон, позволяющих создать новую диаграмму или отредактировать уже существующую.

В диалоговом окне №1 выбрать тип диаграммы.

Выбрав тип диаграммы, нажимаем кнопку ДАЛЕЕ.

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

Переключатели Ряды в строках или столбцах позволяют выбрать направление данных для построения диаграммы в том случае, если выбранный диапазон представляет собой прямоугольную область.

Ряды данных – наборы данных, представленные графически столбиками, секторами или линиями диаграммы.

Нажать кнопку ДАЛЕЕ.

В диалоговом окне №4 устанавливаются параметры диаграммы.

Общие для всех типов элементы:

ЗАГОЛОВОК – можно ввести заголовок диаграммы.

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

ПОДПИСИ ДАННЫХ – числовые, процентные или текстовые подписи возле каждого элемента диаграммы.

ТАБЛИЦА ДАННЫХ – под диаграммой помещается фрагмент исходной таблицы с данными для диаграммы.

  1. Ввести исходный набор данных (совокупность ячеек)
  2. Выделить нужный диапазон (в простейшем случае один столбец или строка)
  3. Нажать кнопку диаграмма

  1. В открывшемся мастере по шагам определить структуру будущей диаграммы или графика

  1. Нажатием на кнопку «Готово» завершить построение

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

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

составить диаграмму стоимости продуктов, купленных в магазине по следующему шаблону, общую стоимость посчитать самостоятельно, выделять только столбцы B и E (через клавишу ctrl )

3. Построение графиков

В качестве примера рассмотрим порядок построения графика функции y = sin ( x ) на интервале от 0 до 6,3 с шагом 0,1

1) Готовим исходные данные

2) Выделяем весь диапазон данных и вызываем мастер диаграмм

3) На первом шаге мастера выбираем следующие пункты:

4) Можно нажать кнопку «Готово». График готов!

— Построить график функции y = x 2 на интервале от -3 до 3 с шагом 0,1

— Построить график функции cos ( x /2 ) на интервале от -1 до 4 с шагом 0,1

Урок № 6
Тема:
«Электронные таблицы – как средство компьютерного моделирования»

1. Нашей моделью, которую мы будем разрабатывать на основе ЭТ будут биологические ритмы.

Что представляют собой биологические ритмы?

Все мы живем по определенным законам. Существует теория, что жизнь человека подчиняется трем циклическим процессам, называемым биоритмами. Говоря строго научно, биоритмы – это периодически повторяющиеся изменения характера и интенсивности биологических процессов и явлений в живом организме. Это отраженные организмом цикличности явлений, идущих в природе. Более простое и известное понятие – это “биологические часы”. Греческий врач Герофил (за 300 лет до н. э.) обнаружил, что пульс у здорового человека меняется в течение дня. Подсознательно человек выбирает время, когда ему легче работать. Приблизительно 400 — 500 лет назад человек стал жить по часам, а до этого в них необходимости не было, так как работали природные и биологические часы. Биоритмы организма – суточные, месячные, годовые – практически остались неизменными с первобытных времен и не могут угнаться за ритмами современной жизни.

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

Физический биоритм характеризует жизненные силы человека, т.е. его физическое состояние.

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

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

Графическим изображением этих ритмов является синусоида. Многие полагают, что “взлетам” графика, представляющего собой синусоидальную зависимость, соответствуют более благоприятные дни. Однодневные периоды, в которые происходит переключение фаз («нулевые» точки на графике) и которые, якобы, отличаются снижением соответствующего уровня активности, получили название “критические дни”, т.е. неблагоприятные. Если одну и ту же «нулевую» точку пересекают одновременно две или три синусоиды, то такие «двойные » или «тройные » критические дни особенно опасны. Более того, в некоторых странах в такие дни людям рискованных профессий (летчикам, каскадерам и т.п.) предоставляют выходной.

По теории биоритмов возможности человеческого организма изменяются периодически. По прошествии определенного числа дней (периода) организм возвращается в тоже состояние.

Различают несколько циклов организма: физический, интеллектуальный, эмоциональный.

Это не зависит ни от возраста, ни от пола, ни от национальности человека.

Начало каждого биоритма совпадает с датой рождения.

— Физический цикл длится 23 дня,

— Эмоциональный – 28 дней,

— Интеллектуальный – 33 дня.

Приступим к созданию модели биологических ритмов

1) Создание математической модели:

Указанные циклы можно описать приведенными ниже выражениями, в которых переменная x – количество прожитых человеком дней:

Физический цикл ФИЗ(х) = sin(2пи x/23)

Эмоциональный цикл ЭМО(х) =sin(2пи x/28)

Интеллектуальный цикл ИНТ (х) =sin(2пи x/33)

Ясно, что все эти функции периодически изменяют свои значение от -1 до 1 (область значений функции sin ( x ) ).

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

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

Чтобы узнать, сколько дней прошло от дня рождения, нужно из текущей даты вычесть дату рождения

Окончательно формула будет иметь вид

Т0 – дата рождения человека

Тк – расчетная дата

К – период цикла

Имеет смысл в одной системе координат построить все 3 графика функций, соответствующие каждому циклу

2) Составление компьютерной модели

В ячейку А1 вводим название столбца — Дата рождения

В В1 вводим – Расчетная дата

В С1 вводим — Физический цикл

В D 1 вводим – Эмоциональный цикл

В Е1 вводим – Интеллектуальный цикл

Шапка таблицы готова.

В А2 – дату рождения человека, например 01.01.2000

В В2 – расчетную дату, например 19.02.2004

В С2 формулу для определения физического цикла = sin (2*пи()*(В2-А2)/23)

В D 2 формулу для определения эмоционального цикла = sin (2*пи()*(В2-А2)/28)

В Е2 формулу для определения интеллектуального цикла = sin (2*пи()*(В2-А2)/33)

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

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

Далее вам предстоит выполнить самый сложный этап – этап создания компьютерной модели. Введите данные модели и постройте графики биоритмов.

Итоговый график может получиться примерно такого вида

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

3) Анализ результатов моделирования.

Посмотрите на полученные графики. Чем выше поднимается синусоида, тем выше соответствующие способности и наоборот. Исключения могут составлять те дни, в которых график пересекает ось Х. Тогда способности могут быть непредсказуемыми: или замечательными, или очень плохими.

1. Проанализировав диаграмму, выбрать “неблагоприятные” дни для занятий физкультурой

2. Выбрать дни, когда ответы на уроках будут наиболее (наименее) удачными.

3. Проверьте свое настроение, когда на вашем графике показатели эмоционального биоритма находятся на спаде или на подъеме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *