rick1177

rick1177

Пикабушник
Дата рождения: 19 декабря 1984
поставил 5405 плюсов и 495 минусов
отредактировал 5 постов
проголосовал за 5 редактирований
Награды:
За неравнодушие к судьбе Пикабу5 лет на Пикабу
54К рейтинг 150 подписчиков 55 подписок 651 пост 49 в горячем

Рабочие полезности Excel с моей работы (Полезность 1)

Вчера пришёл Генеральный и говорит: "Нужно создать простой и понятный инструмент для составления графика работы водителя на предприятии".

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

Итак, решаем поэтапно задачу.

1. Сначала нужен общий вид этой визуализации.

Был придуман и разработан такой вид:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Пример отображения

2. Определяем настройки графика, которые нам нужны для отображения.

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

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Настройки календаря для отображения информации

Из прикольного:

  • от изменения месяца меняется количество отображаемых дней;

  • от установленного интервала меняется отображение шапки таблицы;

  • от изменения времени начала и окончания рабочего дня также изменяется отображение;

  • всё оформлено в удобном виде с использованием выпадающих списков;

  • "заливка" календаря сформирована условным форматированием;

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

3. Оформляем таблицу для занесения информации.

У неё очень просто и понятный вид:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Таблица занесения информации о событиях

Умная таблица, которая легко продляется вниз.

4. "Всхлапываем" обе таблицы.

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

Формулу, конечно, я переработал и получил такой её вид:

=ЕСЛИ(И($J3<>"";K$2<>"");--(ЕСЛИ(ИЛИ($J3="";K$1="");"";СУММПРОИЗВ(($J3=Таблица2[[Дата]:[Дата]])*((--ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]])=0)))>0);"")

Надо разобрать формулу, чтобы понять, что сделали ребята и как получили нужный результат. А что за результат? В календаре в задействованную дату и время выставляется 1 и на этой основе выстраивается условное форматирование.

Давайте разбирать поэтапно:

1. --ЛЕВСИМВ(K$1;5) - получает из строки "09:00 - 09:15" начальное_время в формате числовом (0,375) (если не значете, что это за число, то это 1/24/60*(9*60);

2. --ПРАВСИМВ(K$1;5) - - получает из строки "09:00 - 09:15" конечное_время в формате числовом (0,385416667) (если не значете, что это за число, то это 1/24/60*(9*60+15), где 15 - заданный временной интервал для отображения таблицы;

3. Соответственно, конструкция вида --ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]] возьмёт массив времени окончания и каждое значение сравнит с временем начала. Результатом такого действа для времени 09: 00 станет массив такого вида:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Что проверяется с помощью данного куска? Есть ли среди времени окончания такое, которое меньше для начала проверяемого интервала. Если нет, то формула выдаёт ЛОЖЬ

4. Аналогичным образом для начального времени операция вида --ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]] выдаст результат:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Вид массива для времени окончания

5. Таким образом, операция вида (--ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]]) позволит получить массив такого вида:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

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

6. Дальнее сравнение с 0 операции (--ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]])=0 приведёт к образованию массива вида:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Результат сравнения массива на шаге 5 с 0

Графическая интерпретация такова:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Графическая интерпретация выражения

7. Поскольку в столбце "↓↓ ДНИ ↓↓" на рисунке "Пример отображения" на самом деле находятся даты, то операция вида ($J3=Таблица2[[Дата]:[Дата]]) выдаст массив подходящих дат для даты 01.09.2023 такого вида:

Рабочие полезности Excel с моей работы (Полезность 1) Microsoft Excel, Полезное, Фишки, Длиннопост, Скриншот

Пример массива подходящих дат

8. После перемножения результата проверки даты с результатов проверки времени, если получат ИСТИНА, то всё, мы говорим, что это время задействовано.

9. СУММПРОИЗВ необходимо, чтобы проверить везде и по всем сочетаниям событий и проверяемой даты. Сравнение с ">0" просто приведёт к постановке исключительно "1" в ячейку, т.е. не будет учитываться количество раз, если пересечение есть несколько раз.

Решение гениально и просто. Приложение полностью рабочее!

Вот готовый файл!

P.S. Если Вам было полезно, то рассчитываем на благодарность (автор формулы не останется неудел)!

Показать полностью 9

Вопросы Незнайки по Linux (Вопрос 1)

Ситуация такая. Стоят в параллель 2 операционки: Windows, Ubuntu. Поскольку есть сенсорный экран, то установил альтернативный загрузчик rEFInd. Вещь хорошая, работала нормально. Устанавливал в соответствии с инструкцией. Но вот незадача... сегодня перестала работать.

Какие симптомы:
1. Вместо него загружается GRUB.
2. В списке Grub нет rEFInd, т.е. в него перейти нельзя;
3. Попытка переустановки (удаление через purge и повторная установка) результата не дала.

Чему хочу научиться и в чём вопрос.

Можно ли как-то и как восстановить его? Как вообще смотреть и изучать что там в загрузочной области? В общем, пожалуйста, помогите внести ясность в вопрос.

Помощь матеров графики

Ребят, помогите, плиз, сделать форматное "траурное" фото человека. Не бесплатно, конечно.

Надо быстрой на формат А4, чтобы можно было распечатать.

Сам я, как выяснилось после двух часов колупания, рукожопый.

@rick1177 в телеге. Напишите, кто может, плиз.

Кто бесит больше пид*ров с музыков

Бабки в больничной очереди, которые уже знаю как всё лечится в области гастроэнтерологии. Сука! Я сидел 40 минут ожидая приёма и одна местная знахарь втерала другой, как и что ей назначит доктор и почему и как ей надо жить. И бубнела так, что аж телефон читать мешала.

Senior Python developers, мне нужна помощь... отзовитесь, пожалуйста

Добрый день, уважаемые товарищи!

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

У меня складывается впечатление, что я дошёл до определённой черты, преодолеть которую уже самостоятельно не получается. Т.е. я плюхаюсь в вопросах, которые по отдельности не выводят меня на правильное решение, и проблема не уходит.

Мне бы небольшое менторсвто, помощь, наставничество.

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

Пожалуйста, отзовитесь. кто может поучаствовать )

Как-то я неправильно понимаю написание и работу своего ПО на Python (работа с памятью)

Товарищи, подскажите, пожалуйста. Наверное я что-то неправильно делаю или неправильно понимаю.

Вопрос таков... Работает моё приложение, собирает информацию определёнными функциями и складывает эту информацию в базу. Вроде бы приложение писал так, чтобы работало 24/7. При запуске приложения размер занятой MEM примерно 650 Мб (операционная система Ubuntu, просматриваю с помощью htop), но в процессе работы приложения этот показатель постепенно прирастает.

Пытаюсь понять, как это исправить и как отследить.

Как-то я неправильно понимаю написание и работу своего ПО на Python (работа с памятью) Linux, Python, Вопрос, Память, Программист, Программирование, Помощь, IT

Динами изменения показателей работы программы

Буду благодарен за идеи!

Показать полностью 1

И себя надо любить и поощрять!

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

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

На дня жена потащила меня на первое родительское собрание (так и не понял, зачем я был там нужен). Отсидел за низкой партой 1,5 часа, вышел... иду в направлении киоска.

Жена: "Ты куда!?"
Я: "За мороженкой."
Жена: "Для себя?"
Я: "Я же хорошо себя вёл на собрании)"

В общем, поощрял себя ))

Ответ на пост «Были времена...»

Были времена, когда тебе, чтобы бабу голую увидеть, в шашки надо было комп выиграть. А она раздевалась постепенно! И полностью голой становилась только после 5-ой победы. А комп наращивал сложность и дойти до конца, когда покажется пельмень - не реальным мастером надо быть. И вот, писька стоит, азарт хлещет, и дрочить то уже или играть - выбор не такой очевидный.

А сейчас, открываешь ленту... опять баба голая, нахрен, отключаешь NSFW-контент ))

Отличная работа, все прочитано!