Hugo, проверил, все работает корректно! В понедельник проверю на реальных базах.
Спасибо еще раз за помощь!
Спасибо еще раз за помощь!
31.08.2024 19:05:33
Hugo, спасибо! Сейчас попробую.
Что касается проверки - считаю, что это, как сказать, избыточный функционал на этом конкретном листе с выводом журнала работ. Корректность введенных дат планирую реализовать в основном листе - реестре актов выполненных работ. Полагаю, что условного форматирования будет достаточно, чтобы показать ситуации, когда дата начала > даты окончания. |
|
|
31.08.2024 18:45:24
Hugo, хм, да, по допустимым значениям справедливо.
Ну, как бы я описал эти ограничения. Если одно из трёх полей пустое - игнорим строку; если дата начала > дата окончания - игнорим строку. В целом, варианты разные перебрал - все работает корректно. Но вот эта "01 января 1900" в начале таблицы мешает и нумерации строк и универсальности. По идее, первой строке задать белый шрифт и забыть про нее, но тогда потеряем первую строку при корректной отработке... |
|
|
31.08.2024 18:24:11
Hugo,
Добрый день! Это фантастика ) UDF и PQ - это отличные инструменты для анализа данных. Надо будет записаться на курсы на досуге. По делу, благодарю за потраченное время и за, по сути, готовое решение! Да, код UDF (если честно, первый раз в жизни встречаю, хотя с VB в рамках экселя в общих чертах когда-то был знаком) работает и работает корректно. Более того, не требует умных таблиц, обновляет данные в режиме реального времени, что очень удобно. И, по ощущениям, работает быстрее, чем способ выше на PQ. Плюсом еще вижу - легкость переноса в другие книги - специализированных знаний не требуется - скопировал код, не забыл синксис формулы и все. Функция работает в рамках таблицы с фильтром - для автоматического подбора нужного количества строк (удобно для печати документа). Еще один колоссальный плюс этого решения на UDF - это возможность задать диапазон, условно говоря, неограниченный, который будет пополняться по мере заполнения другого листа. При этом, функция игнорирует пустые строки и это здорово! Функция игнорирует пустые строки, да, но в начало динамического массива вставляет дату "01 января 1900" и без работ, что, в целом, ломает таблицу. Есть ли возможность поправить этот досадный момент? Заранее спасибо. Обновлённый файл прилагаю. |
|
|
30.08.2024 20:26:58
AlienSx, на работе смогу посмотреть только в понедельник, но Фильтр работает - получается, да, либо 2021, либо 365. Судя по тому, что компания коммерческая и большая - вероятно, 365, но, опять же, только в понедельник.
За решение - огромное спасибо! Сейчас буду пробовать в 2021 офисе. |
|
|
30.08.2024 17:29:28
Hugo, в моем случае, точнее в текущих условиях формирования ИД, общий журнал работ формируется исходя из названий актов работ и дат начала/окончания. Ну, например, "Монтаж систем теплоснабжения А1-А6". Наименования могут быть и длиннее, но не критично.
Предпрложим, у нас 5 таких работ в день. Если руками, то через альт+ввод, если автоматом, то, уверен, что есть спецсивол перевода абзаца на новую строку в ячейке. Что касается читабельности: выделить все и двойной клик по границе строки - для автоподбор а высоты. |
|
|
30.08.2024 16:55:32
Hugo, спасибо. В макросах, увы, не силен. Единственное, чем пользуюсь, что, кстати, нашел на этом форуме - ActiveSheet.AutoFilter.ApplyFilter для автоматического удаления пустых/добавления полных строк в таблицах с фильтром и умных таблицах.
Предлагаю немного подождать - может решение найдется. Чувствую, что через ТРАНСП, ВПР и ФИЛЬТР задача может решиться. |
|
|
30.08.2024 16:40:22
Добрый день.
Столкнулся с задачей, решение которой не приходит в голову. В этой связи прошу помощи. Ситуация, вероятно, многим знакома по возможному применению при формировании исполнительной документации в строительстве. В таблице, в постоянно пополняющемся столбце E перечислены разные виды работ. В той же строке в соответствующих ячейках указаны даты начала выполнения работы (столбец F) и окончание проведения работы (столбец G). Цель заключается в автоматическом формировании и пополнении журнала работ в электронном виде: столбец E - последовательное перечисление дат, в которые проводились те или иные работы; столбец F - перечисление всех видов работ, которые проводились в конкретную эту дату (в одной ячейке). Пример прилагаю в виде эксель-таблицы. Заранее спасибо за помощь.
Изменено: |
|
|