Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 18:32   #1
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты.

Не получил ответа в теме tissot'а о времени и дате, изложу суть вопроса тогда в новой теме.


Описание.

Есть форма таблицы, в которой столбцы А,В и С время и дата, остальное - ручной список и раб. данные.
Форма таблицы копируется вниз каждый день(или через день, край через 3 дня) часто несколько раз в день.
Дата в строчках, где содержится список и в шапке заполняется вручную. Время - выпадающий список(вручную выставляю из диапазона), время в ячейке ниже всегда строго болше или равно предыдущему. В данном примере список - шесть строчек, соответственно дата и время заполняются в шесть строчек плюс в шапке, две строчки сверху и двенадцать снизу - для формул, связи форм друг с другом и прочего.
Отступ между формами одинаковый.

Вопрос.


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

Представляю я это так:

Первая форма должна быть своего рода начальной точкой отсчёта дат, например, Пн 01.03.2010 .
В шапке каждой формы, в ячейке А - выпадающий список Пн-Вс. При выставлении этой ячейки; вниз, в шести строках со списком в ячейке А выставляется значение из этой самой шапки(например в шапке выставил - Пн - заполняется Пн; в шапке выставил - Вт - заполняется Вт). В ячейках со списком в столбце В - автоматически выставляется соответствующая дата. Копируем форму вниз, в шапке выставляем либо опять Пн, либо другой день недели, и дата распознаётся правильно. Например, если в предыдущей форме Пн 01.03.2010; а в текущей форме в шапке поставили Чт, то в ячейках заполняется 04.03.2010 .; чтобы можно было пропускать некоторые дни или праздники - выходные.
Далее, если, например, предыдущая форма - Пт 05.03.2010; а в текущей поставили Пн; то естественно заполняется не 01.03.2010; а 08.03.2010

Но, как раз насчёт привязки столбца времени к столбцу дат: если в предыдущей форме опять например пресловутый Пн 01.03.2010; и в текущей форме выставить Пн, а время в первой строке текущей формы выставить младше, чем в последней строке списка предыдущей формы, то дата чтоб выставилась (опять!!!!!!) 08.03.2010 (к примеру).
И ещё один очень важный момент по привязке времени: нужно чтоб в пределах списка (!) ; Если в нижеследующей строке списка (если это не первая строка) время стоит младше, чем в предыдущей, то в этой и следующих нижних строках списка меняется дата и значение (именно только в этих строках) в столбце А(в котором как-раз в шапке список Пн-Вс, который заполняет ячейки списка в этом столбце).
Ну здесь до кучи спрошу формулу для вычисления разницы времени, если прошло больше суток или даже более трёх суток.


Ещё хорошо было бы иметь возможность редактирования контрольной даты при сохранении всех остальных зависимостей, на случай если пропуск между формами больше недели. Но чтоб предыдущие формы не страдали. Чтоб если, например в предыдущей форме стоит 01.03.2010; а в текущей я изменил контрольное значение на 01.04.2010; то эта предыдущая форма осталась неизменной и все зависимости между ними сохранились. Это когда-нибудь, да всё-равно понадобиться, да и мало ли.

Ещё бы очень не помешала такая функция: в шапке, в ячейке где-нибудь рядом со списком Пн-Вс, создать список из двух значений: текущая неделя и следующая неделя. Значение по умолчанию "текущая неделя", это значит выполняются те правила, что я описал выше. Нужна на такой случай: Если в предыдущей форме в последней ячейке списка стоит Пн 01.03.2010; а в текущей в шапке также поставить Пн, и время в первой ячейке текущего списка выставить равное или старше, чем в последней ячейке списка предыдущей формы; То если мы имеем в виду понедельник не 1 марта, а следующей недели, то выставив "следующая неделя", получим к примеру) опять 08.03.2010. Вобщем, прекрасных девушек с неминуемо наступающими праздниками-весельями, нам хорошего настроения, спасибо всем за внимание.


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

Пример в принципе бесполезен, он просто показывает как выглядит форма (и то примерно).
Вложения
Тип файла: rar простой пример.rar (2.6 Кб, 114 просмотров)
Каравай вне форума Ответить с цитированием
Старый 02.03.2010, 18:51   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

понять что-либо из Вашего детального описания крайне сложно ... без примера тем более

Если Вы все же желаете получить ответ, попробуйте разбить всю задачу на более мелкие, тогда, возможно, все гораздо упростится. Пример обязателен.
Вложения
Тип файла: zip простой пример.zip (2.8 Кб, 64 просмотров)

Последний раз редактировалось EugeneS; 02.03.2010 в 18:54.
EugeneS вне форума Ответить с цитированием
Старый 02.03.2010, 22:07   #3
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Вот первый вопрос.
Создали таблицу. В шапке, в ячейке А создали список: Пн(понедельник), Вт(вторник), Ср(среда), короче до Вс(воскресенье). Скопировали её семь раз вниз с одинаковым отступом. В первой таблице в шапке выставили Пн, во второй Вт, в третьей Ср, в четвёртой Чт, в пятой Пт, в шестой Сб, в седьмой Вс, а в восьмой опять Пн. Как в этом примере.

Возможно ли сделать так, чтобы в первой таблице (в шапке стоит понедельник) в ячейках "дата" выставилась дата - 1 марта 2010, к примеру, во второй, где вторник - 2 марта 2010, и тд до седьмой - воскресенья. А вот в восьмой ,где опять понедельник, выставилась дата не 1 марта 2010, а следующий понедельник - 8 марта 2010 ??
Надеюсь нормально объяснил..
Как это сделать даже не догадываюсь.
Вложения
Тип файла: rar Книга.rar (2.1 Кб, 64 просмотров)
Каравай вне форума Ответить с цитированием
Старый 02.03.2010, 22:16   #4
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Забыл добавить, что не всё так просто, некоторые дни могут пропускаться, то есть не пойдёт что-то типа предыдущая дата + 1 день. Может идти по типу: понедельник 1 марта, потом вторник 2 марта, потом понедельник 8 марта, потом среда 10 марта, потом вторник 16 марта......
То есть, объясню на примере: если в предыдущей таблице стоит среда 3 марта, а в текущей ставим вторник, то дата в этой таблице выставляется - вторник 9 марта, так как следующий вторник после среды 3 марта - это вторник 9 марта. И так далее. Вот чего я хочу.

Последний раз редактировалось Каравай; 02.03.2010 в 22:36.
Каравай вне форума Ответить с цитированием
Старый 03.03.2010, 00:51   #5
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Вопросы:
1. Логика присвоения 1-му понедельнику даты 01.03.2010? Мы определяем первую дату попадающую на понедельник текущего месяца (или вторник ....)?
2. Дни недели будут располагаться в хронологическом порядке: Пн, Вт, ... и так до конца месяца?
3. Количество строк между шапками таблицы: одинаковое или разное?
4. Окрашивание строк: будет также использовано в оригинальной версии файла или только здесь для наглядности?
EugeneS вне форума Ответить с цитированием
Старый 03.03.2010, 07:53   #6
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

1. Просто напросто первая дата - это дата создания документа, от неё зависят все нижние шапки. Дата создания документа может в принципе быть любая, просто надо, чтобы при выставлении в шапке дня недели, которая соответствует этой дате в календаре, дата в ячейках " дата" выставилась нужная нам. Первой шапке мы вручную присвоили дату, остальные нижеследующие шапки зависят от неё.
2.Нет, абсолютно в любом, главное, чтоб если в предыдущей шапке день недели старше, чем в текущей, то ставилась дата правильно. Как вот проще объяснить: первая шапка(просто например) среда 3 марта, а во второй поставили вторник, значит дата во второй должна выставиться 9 марта, так как после среды 3 марта следующий вторник - это 9 марта. Надеюсь так проще понять, что мне надо.
3. Строго одинаковое.
4.Абсолютно без разницы.
5. Спасибо!
Каравай вне форума Ответить с цитированием
Старый 03.03.2010, 14:31   #7
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

посмотрите, пожалуйста, вложение.

Укажите дату в ячейке В4
Вложения
Тип файла: zip Книга.zip (9.4 Кб, 113 просмотров)

Последний раз редактировалось EugeneS; 03.03.2010 в 14:56.
EugeneS вне форума Ответить с цитированием
Старый 03.03.2010, 20:19   #8
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Спасибо, EugeneS. У меня начало вырисоваться в голове, как это должно выглядеть в итоге.
У меня возник такой вопрос о связи даты и времени: в ячейке А1 - дата(формат 01.03.2010), в ячейке В1 - время(формат 08.00). Возможно ли каким-нибудь способом сделать так, чтобы в ячейке С1 вывелось 01.03.2010. 08.00? То есть связать ячейку даты и ячейку времени(с неприсвоенной датой). Просто сама ячейка времени - выпадающий список типа 10.30 и постоянно меняется,ячейка даты тоже постоянно меняется. Или, может есть выход без использования третьей ячейки, правдо если это усложнит задачу на порядок, то не надо.
Кстати, в меню "формат ячеек" вкладка "число" в форматах времени и даты я не нашёл формата типа 01.03.2010 08.00 , а только такой - 01.03.10 08.00 . Где-то читал, что, например дата 01.03.10, расшифровывается экселем как 01.03.1910 , но это не важно, главное, чтоб писало себе типо 01.03.10 08.00, и ладно.
И ещё хотел спросить, нет ли в экселе формул, связующих день недели и дату? Ведь есть же формула ЧИСТРАБДНИ, откуда-то же он берёт для расчёта эти чистрабдни, из календаря трея или, может, из своего? Есть что-нибудь такое из формул?
Версия 2003, но если понадобиться для удобства или работоспособности - поменяю.
Заранее спасибо.
Вложения
Тип файла: rar Книга01.rar (1.4 Кб, 51 просмотров)

Последний раз редактировалось Каравай; 03.03.2010 в 20:27.
Каравай вне форума Ответить с цитированием
Старый 03.03.2010, 21:14   #9
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

см. вложение
Вложения
Тип файла: zip Книга01.zip (1.6 Кб, 260 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 03.03.2010, 21:19   #10
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Нет слов.......
Спасибо, и не подумал бы, что всё так, ээ, просто..
Каравай вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависимость формулы от текущей и прошедшей даты. segail Microsoft Office Excel 13 19.09.2009 15:36
Вывод даты и времени. mephist Microsoft Office Excel 2 12.08.2009 10:44
Менялка времени\даты StudentPolitech Свободное общение 3 26.06.2009 13:24
Зависимость даты дней от дня недели valerij Microsoft Office Excel 16 18.06.2009 01:17
Фиксация даты измения значения в ячейке Python Microsoft Office Excel 7 13.12.2006 20:47