Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

7 Декабрь 2021, 18:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: Суммирование ячеек по цвету.  (Прочитано 1938 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Любопытный
Участник
**
Offline Offline

Сообщений: 9


« Ответ #15: 9 Октябрь 2021, 10:34 »

))) Прошу прощения, Уважаемый eeigor. Я недавний пользователь этого форума, на имя даже не посмотрел. Думал мы тут вдвоём с Bigor-ом))))). Большое Вам спасибо и дай Бог Вам здоровья )))))) Я обязательно попробую Ваш вариант, очень интересное решение, на мой взгляд. Особенно если всё получится ))))))))))
Записан
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 752



« Ответ #16: 11 Октябрь 2021, 15:00 »

Рабочий пример на ваших данных

UPD 1:
Макет графика в части календарных дней (1..31) изменять не нужно. Добавьте строки по количеству работников. Уточните (проверьте) формулы условного форматирования. Данный пример следует сохранить в качестве образца настройки формул.
Совет. Как восстанавливать условное форматирование для ячеек?
Установите указатель мыши на первый день (левый верхний угол диапазона), скопируйте формат (кисточка) и проведите мышью по всем дням, начиная с первого.

UPD 2: Обновил пример

Замечание. После копирования ячейки с кодом типа дня в строке "Условные обозначения" её надо правильно вставлять, чтобы вместе со значением не переносить ненужный формат в область диапазона с условным форматированием.
Специальная вставка (Paste Special): Ctrl+Shift+V → Values Only (скриншот). Если это непонятно, то вводите числовой код с клавиатуры, а потом можно скопировать эту ячейку (а не из области условных обозначений) и вставить, куда требуется. Условное форматирование при этом "не страдает".
В моём примере диапазоны условного форматирования имеют связный вид (без разрывов). Это хорошо.

У вопрошающего есть вопросы? Тоже любопытно Улыбка

UPD 3:
И какая тут формула самая "сложная"? Наверное вот эта:

AE3: =IF(AD$3<DAY(EOMONTH(DATE($B$2;$A$3;1);0));AD$3+1;"")

которая вычисляет, есть ли 29 число в заданном месяце. Например, в 2021 году в феврале месяце только 28 дней. Этот расчёт задан только для трёх последних дней: 29-31. Если день отсутствует, ячейка очищается и заливается бордовым цветом (скриншот).
Соответственно, для трёх последних ячеек день недели вычисляется с учётом возможной ошибки (отсутствия дня в календаре):

AE4: =IFERROR(TEXT(DATE($B$2;$A$3;0)+AE$3;"NN");"")

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

DATE($B$2;$A$3;0), где B2: =2021; A3: =7

с нулём вместо дня? Правильно: последний день, но предыдущего месяца (в примере это будет 30.06.2021), однако руководство о таком использовании этой функции умалчивает. А потом мы к этой дате прибавляем дни, что в строке выше, начиная с 1 (это переводит нас сразу к первому дню текущего месяца) и так до конца графика. И получаем даты текущего месяца, только отображаем день недели ("NN"). Вот и всё! "Живой" календарь готов.

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

UPD 4:
Добавлена защита листа для безопасности работы. Срока 4 и столбец C заморожены. Добавлено чередование фона строк работников для удобства зрительного совмещения строк левой и правой частей графика.
 


* Снимок экрана от 2021-10-11 17-39-31.png (64.04 Кб, 643x398 - просмотрено 12 раз.)

* Снимок экрана от 2021-10-11 22-47-44.png (12.67 Кб, 547x114 - просмотрено 12 раз.)

* Снимок экрана от 2021-10-11 23-09-36.png (113.13 Кб, 1768x440 - просмотрено 13 раз.)
* график-цвет.ods (22.64 Кб - загружено 7 раз.)
« Последнее редактирование: 12 Октябрь 2021, 09:34 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 752



« Ответ #17: 12 Октябрь 2021, 09:19 »

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

=NETWORKDAYS(StartDate;EndDate[;[Holidays][;Workdays]])

однако из-за переноса выходных процесс подсчёта усложняется.
Здесь имеется в виду то, что Сб вполне может быть рабочей (например 20.02.2021). Поэтому приходится все Сб и Вс считать рабочими днями, то есть обнулять массив Workdays*:={0;0;0;0;0;0;0}, и указывать конкретно, какие из них являются выходным днём в массиве Holidays, то есть вместе с праздниками перечислять также все Сб и Вс, за исключением тех, которые стали рабочими днями в результате переноса выходных. Это не очень удобно. Или я не прав, и можно поступить как-то иначе, чтобы сократить размер массива Holidays?

Какие будет соображения? Впрочем, Вс в массиве Workdays можно оставить нерабочим днём, тогда массив Holidays сократится. У нас когда-нибудь было так, чтобы Вс делали рабочим из-за переноса выходных?
_____
* Этот список начинается с воскресенья, рабочие дни обозначаются нулевым значением, а нерабочие дни - ненулевым значением (обычно 1).
Workdays:={1;0;0;0;0;0;1} для нашей 5-дневки (значение по умолчанию).

Пример прилагается.

Сделал все Вс выходным днём, и массив Holidays значительно уменьшился. Workdays:={1;0;0;0;0;0;0}.
При этом "улетел" День Победы, приходящийся на Вс.
Пример 2

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

UPD:
Для задачи автора нет необходимости вычислять количество рабочих дней по формуле. Надо просто жёстко вбить количество рабочих дней (диапазон B28:C39) согласно производственному календарю.
Количество рабочих дней по месяцам (2021)
      
   Январь     5
   Февраль    19
   Март     22
   Апрель    22
   Май      19
   Июнь    21
   Июль    22
   Август    22
   Сентябрь 22
   Октябрь    21
   Ноябрь    20
   Декабрь    22

Пример 3. Окончательный вариант

* график-цвет.ods (29.03 Кб - загружено 3 раз.)
* график-цвет (2).ods (28.47 Кб - загружено 7 раз.)
* график-цвет (3).ods (27.25 Кб - загружено 5 раз.)
« Последнее редактирование: 12 Октябрь 2021, 15:42 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 625


WWW
« Ответ #18: 12 Октябрь 2021, 13:41 »

Хотя тема и не подходит...
Я когда-то написал в Excel "универсальный" генератор для производственных календарей для регионов РФ (региональные праздники разные) и "развитых" стран мира. Увлекательное занятие - узнаешь, например, о формулах Гаусса для вычисления даты Пасхи и т.п.
Самый информированный сайт о календарях.
Любой такой универсальный календарь требует поддержки. Меняются праздничные дни (например, СССР -> РФ), в некоторых странах практикуется перенос выходных дней по решению правительства, даты мусульманских праздников традиционно объявляются ежегодно и т.д.
Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 752



« Ответ #19: 12 Октябрь 2021, 13:49 »

@sokol92, но я посмотрел на этот год для России: всё верно. Кто-то ведь поддерживает всё это многообразие!
Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 625


WWW
« Ответ #20: 12 Октябрь 2021, 13:56 »

Небольшая команда с центром в Норвегии.
Записан

Владимир.
Любопытный
Участник
**
Offline Offline

Сообщений: 9


« Ответ #21: 12 Октябрь 2021, 14:30 »

Уважаемый eeigor, Огромное Вам спасибо. Вопросов пока нет, возникнут, я с Вашего позволения, обращусь))))))). А пока буду изучать материал. Ещё раз благодарю )))))))))
Записан
eeigor
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 752



« Ответ #22: 12 Октябрь 2021, 15:37 »

Да, конечно.
Я ещё доработал макет, добавив один именованный диапазон «Год» и одну именованную формулу «Месяц» (возвращает порядковый номер выбранного месяца). Читать формулы станет легче. Посмотрите.
Я заменил пример 3 в ответе #17: график-цвет (3).ods

C "заменой/тренингом" в вашей классификации (ответ #9) немного непонятно и с полями "Осталось".
Попробуйте адаптировать пример сами.


UPD: Экспорт файла в формат Excel.

Открыл файл в Excel 2016. Ошибки.
=TEXT(DATE(Год;Месяц;0)+C$3;"NN")

1) Именованная формула "Месяц" не работает.
=SWITCH($График.$B$3;"Январь";1;"Февраль";2;"Март";3;"Апрель";4;"Май";5;"Июнь";6;"Июль";7;"Август";8;"Сентябрь";9;"Октябрь";10;"Ноябрь";11;"Декабрь";12)
В Excel формула ПЕРЕКЛЮЧ (SWITCH) появилась только в Excel 2019. В рассматриваемом примере можно заменить функцией ПОИСКПОЗ (MATCH) для поиска номера месяца в диапазоне названий месяцев.

2) Формат для дня недели. "NN" надо заменить на "DDD" (Excel понимает только второе значение, а Calc оба).

После этих изменений пример работает в Excel.
Обе программы неплохо совмещаются на уровне формул.

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

* график-цвет (4).ods (30.49 Кб - загружено 7 раз.)
« Последнее редактирование: 13 Октябрь 2021, 06:24 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.2.2.2 Community
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!