Фишки - валюта и азарт моего детства
Наконец то я сделал видео с воспоминаниями об этом прекрасном времени, когда дети 90х и 2000х проводили время на асфальте отбивая свои фишки.
Приятного просмотра! Пишите свое вспоминаем или что я упустил в комментариях.
Ответ на пост «Рабочие полезности Excel с моей работы (Полезность 1)»
Извините, не мог пройти мимо! Меня прям конкретно задело какими же сложными формулами вы решаете эту задачу.
Раз уж это "Лига помощи Excel", выкладываю своё решение. Оно более динамичное, масштабируемое, с огромным потенциалом доработки. Сделано на PowerQuery + сводные таблицы.
Решение можно легко расширять до безграничности: прикрутить водителей с ФИО, статистику сколько кто проехал в месяц, и т.п.
С 2016 года формулы в Экселе в привычном понимании стали практически не нужны. Тем более такие сложные условия, как у автора поста.
Всем, кто читает этот пост, рекомендую изучать Эксель в такой последовательности: "умные" таблицы, сводные таблицы, условное форматирование, Power Query.
rick1177, если нужна доработка точно как у вас в примере (с полной сеткой дней), я доделаю.
График водителя на сводных таблицах и Power Query
Рабочие полезности Excel с моей работы (Полезность 1)
Вчера пришёл Генеральный и говорит: "Нужно создать простой и понятный инструмент для составления графика работы водителя на предприятии".
Постановка задачи: водитель указывает в простой форме куда он едет, указывает дату, время начала и конца занятости. Его график должен выглядеть наглядно и быть понятный для всех, кому нужен водитель.
Итак, решаем поэтапно задачу.
1. Сначала нужен общий вид этой визуализации.
Был придуман и разработан такой вид:
Пример отображения
2. Определяем настройки графика, которые нам нужны для отображения.
Вот такой набор настроек предлагается:
(Дополнительная ценность заключается в том, что можно выбрать интервал отображения - выпадающий список, месяц отображения - выпадающий список, указать год, время начала рабочего дня и его окончания. Графическое отображение графика изменится)
Настройки календаря для отображения информации
Из прикольного:
от изменения месяца меняется количество отображаемых дней;
от установленного интервала меняется отображение шапки таблицы;
от изменения времени начала и окончания рабочего дня также изменяется отображение;
всё оформлено в удобном виде с использованием выпадающих списков;
"заливка" календаря сформирована условным форматированием;
Т.е. заполняя постоянно таблицу с событиями в любой месяц можно получить отображение.
3. Оформляем таблицу для занесения информации.
У неё очень просто и понятный вид:
Таблица занесения информации о событиях
Умная таблица, которая легко продляется вниз.
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 станет массив такого вида:
Что проверяется с помощью данного куска? Есть ли среди времени окончания такое, которое меньше для начала проверяемого интервала. Если нет, то формула выдаёт ЛОЖЬ
4. Аналогичным образом для начального времени операция вида --ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]] выдаст результат:
Вид массива для времени окончания
5. Таким образом, операция вида (--ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]]) позволит получить массив такого вида:
Результат сложения массивов
6. Дальнее сравнение с 0 операции (--ЛЕВСИМВ(K$1;5)>=Таблица2[[Время окончания]:[Время окончания]])+(--ПРАВСИМВ(K$1;5)<=Таблица2[[Время начала]:[Время начала]])=0 приведёт к образованию массива вида:
Результат сравнения массива на шаге 5 с 0
Графическая интерпретация такова:
Графическая интерпретация выражения
7. Поскольку в столбце "↓↓ ДНИ ↓↓" на рисунке "Пример отображения" на самом деле находятся даты, то операция вида ($J3=Таблица2[[Дата]:[Дата]]) выдаст массив подходящих дат для даты 01.09.2023 такого вида:
Пример массива подходящих дат
8. После перемножения результата проверки даты с результатов проверки времени, если получат ИСТИНА, то всё, мы говорим, что это время задействовано.
9. СУММПРОИЗВ необходимо, чтобы проверить везде и по всем сочетаниям событий и проверяемой даты. Сравнение с ">0" просто приведёт к постановке исключительно "1" в ячейку, т.е. не будет учитываться количество раз, если пересечение есть несколько раз.
Решение гениально и просто. Приложение полностью рабочее!
Вот готовый файл!
P.S. Если Вам было полезно, то рассчитываем на благодарность (автор формулы не останется неудел)!
Игра из 90-х. Кто помнит?
Необычный факт об игрушке из 90-х
Любимые российскими детьми 90х "сотки" (они же капсы, фишки) были запрещены в 90х во всех школах США, так как взрослые думали, что эти безобидные кружочки картона продвигают азартные игры. Никто не удосужился им сказать, что в основном они были бесполезны и имели ценность только для конкретного человека, который пытался собрать ту или иную коллекцию. У нас же в школе в основном играли на "Турбы" - вкладыши от жвачки "Turbo". Помните такие?
Источник - Телеграм канал "Нетипичные Факты"