Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Расстановка дат по указанным условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Расстановка дат по указанным условиям
Faraway Дата: Среда, 06.05.2020, 19:14 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте.
Скажите, есть ли формула, которая бы заполняла даты по условиям, а именно:
1. Дата не обязательно должна начинаться с "дата от" и заканчиваться "датой до". Т.е. даты могут начинаться и заканчиваться данными значениями, но не всегда, а рандомно;
2. Даты идут по возрастанию (от меньшего значения к большему);
3. Разрыв между датами рандомный, но по заданным параметрам (минимальный разрыв и максимальный разрыв)
4. С указанием даты от и до интересующего интервала
Вот ТУТ набросал табличку, в которой можно попробовать варианты. В диапазоне А4:А21 хотелось бы чтоб формула расставила даты. В ячейках подкрашенных фоном указаны интересующие параметры.
Нужно это для назначения разного рода задач с рандомным временем выполнения. Сейчас это все делаю вручную, неудобство заключается в том, что руками получается почему то одинаково... т.е. прослеживается некая закономерность, а хотелось бы чтоб была формула с рандомом.
Спасибо всем, кто попытается помочь.
 
Ответить
СообщениеЗдравствуйте.
Скажите, есть ли формула, которая бы заполняла даты по условиям, а именно:
1. Дата не обязательно должна начинаться с "дата от" и заканчиваться "датой до". Т.е. даты могут начинаться и заканчиваться данными значениями, но не всегда, а рандомно;
2. Даты идут по возрастанию (от меньшего значения к большему);
3. Разрыв между датами рандомный, но по заданным параметрам (минимальный разрыв и максимальный разрыв)
4. С указанием даты от и до интересующего интервала
Вот ТУТ набросал табличку, в которой можно попробовать варианты. В диапазоне А4:А21 хотелось бы чтоб формула расставила даты. В ячейках подкрашенных фоном указаны интересующие параметры.
Нужно это для назначения разного рода задач с рандомным временем выполнения. Сейчас это все делаю вручную, неудобство заключается в том, что руками получается почему то одинаково... т.е. прослеживается некая закономерность, а хотелось бы чтоб была формула с рандомом.
Спасибо всем, кто попытается помочь.

Автор - Faraway
Дата добавления - 06.05.2020 в 19:14
Faraway Дата: Среда, 06.05.2020, 21:46 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Один из способов, как я это делал ранее - в первой ячейке указывал "дату от", в последней - "дату до", между ними я ставил формулы "случмежду" и тогда уже сортировал по порядку, но это немного не то, что хотелось бы.
 
Ответить
СообщениеОдин из способов, как я это делал ранее - в первой ячейке указывал "дату от", в последней - "дату до", между ними я ставил формулы "случмежду" и тогда уже сортировал по порядку, но это немного не то, что хотелось бы.

Автор - Faraway
Дата добавления - 06.05.2020 в 21:46
Gustav Дата: Четверг, 07.05.2020, 15:29 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2809
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Я предлагаю сначала сгенерировать валидную последовательность дат в колонке A - от начальной даты и до некоторой даты в будущем, заведомо большей конечной даты. Для этого приравняем ячейку A4 начальной дате:
[vba]
Код
=C3
[/vba]
А в ячейку A5 введем (и затем протянем в будущее) следующую формулу:
[vba]
Код
=A4 + RANDBETWEEN($C$4;$C$5)
[/vba]

Далее в ячейку E4 введем мегаформулу, которая будет отображать последовательность дат, удовлетворяющую условиям задачи:
[vba]
Код
=SORT(FILTER(
{FILTER(A4:A;A4:A<=C3-C4);C3;IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")};
ISNUMBER(
{FILTER(A4:A;A4:A<=C3-C4);C3;IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")}
)))
[/vba]Формула использует сгенеренные даты от [начальной] до [конечной-3 дня], добавляет [конечную] и анализирует разрыв между [конечной] и предыдущей. Если он больше 11 дней, то между [конечной] и предыдущей добавляется дата, среднеарифметическая между ними.

Всё это формульное хозяйство добавил в Ваш файл по ссылке из сообщения №1.

[p.s.]А если переживем необходимость иметь одну пустую ячейку сразу после даты конца месяца (туда отсортировывается пустая строка, если не вычисляется дополнительная среднеарифметическая дата), то формулу можно еще больше упростить (см. в ячейке F4):[/p.s.]
[vba]
Код
=SORT({
FILTER(A4:A;A4:A<=C3-C4;A4:A<>"");
C3;
IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")
})
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Пятница, 08.05.2020, 02:34
 
Ответить
СообщениеЯ предлагаю сначала сгенерировать валидную последовательность дат в колонке A - от начальной даты и до некоторой даты в будущем, заведомо большей конечной даты. Для этого приравняем ячейку A4 начальной дате:
[vba]
Код
=C3
[/vba]
А в ячейку A5 введем (и затем протянем в будущее) следующую формулу:
[vba]
Код
=A4 + RANDBETWEEN($C$4;$C$5)
[/vba]

Далее в ячейку E4 введем мегаформулу, которая будет отображать последовательность дат, удовлетворяющую условиям задачи:
[vba]
Код
=SORT(FILTER(
{FILTER(A4:A;A4:A<=C3-C4);C3;IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")};
ISNUMBER(
{FILTER(A4:A;A4:A<=C3-C4);C3;IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")}
)))
[/vba]Формула использует сгенеренные даты от [начальной] до [конечной-3 дня], добавляет [конечную] и анализирует разрыв между [конечной] и предыдущей. Если он больше 11 дней, то между [конечной] и предыдущей добавляется дата, среднеарифметическая между ними.

Всё это формульное хозяйство добавил в Ваш файл по ссылке из сообщения №1.

[p.s.]А если переживем необходимость иметь одну пустую ячейку сразу после даты конца месяца (туда отсортировывается пустая строка, если не вычисляется дополнительная среднеарифметическая дата), то формулу можно еще больше упростить (см. в ячейке F4):[/p.s.]
[vba]
Код
=SORT({
FILTER(A4:A;A4:A<=C3-C4;A4:A<>"");
C3;
IF(C3-MAX(FILTER(A4:A;A4:A<=C3-C4))>C5;INT(AVG(C3;MAX(FILTER(A4:A;A4:A<=C3-C4))));"")
})
[/vba]

Автор - Gustav
Дата добавления - 07.05.2020 в 15:29
Faraway Дата: Среда, 20.05.2020, 19:23 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Gustav, спасибо. Потерял закладку с темой (не только с этой) и вот теперь снова возникла надобность в таких датах и я вспомнил что задавал вопрос.
Да, по логике вроде как формула работает. И я почти понимаю, что формула делает, ключевое слово - почти )
Еще сделал так, чтоб начальная дата и конечная тоже выдавались рандомно и они теперь постоянно будут меняться в указанных пределах, так вообще то что надо! Спасибо!
 
Ответить
СообщениеGustav, спасибо. Потерял закладку с темой (не только с этой) и вот теперь снова возникла надобность в таких датах и я вспомнил что задавал вопрос.
Да, по логике вроде как формула работает. И я почти понимаю, что формула делает, ключевое слово - почти )
Еще сделал так, чтоб начальная дата и конечная тоже выдавались рандомно и они теперь постоянно будут меняться в указанных пределах, так вообще то что надо! Спасибо!

Автор - Faraway
Дата добавления - 20.05.2020 в 19:23
Faraway Дата: Суббота, 01.05.2021, 09:56 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Gustav, а реально вот это все сделать без использования столбца А, а только используя условия из столбов В и С? В идеале еще и так, чтоб можно было указывать необходимое количество результатов в выдаче. (это конечно же если не займет много времени и сил)


Сообщение отредактировал Faraway - Суббота, 01.05.2021, 10:32
 
Ответить
СообщениеGustav, а реально вот это все сделать без использования столбца А, а только используя условия из столбов В и С? В идеале еще и так, чтоб можно было указывать необходимое количество результатов в выдаче. (это конечно же если не займет много времени и сил)

Автор - Faraway
Дата добавления - 01.05.2021 в 09:56
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!