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

1-й прогон: данные за 30 дней, завершается за 26 дней 2-й прогон: поскольку существует только 26 дней необработанных данных, выполняется до тех пор, пока он не обработает эти 26 дней данных ... И так до тех пор, пока он не будет захвачен и не сможет обработать самую последнюю работу в течение 1 дня.

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

  • А2 = 30/26
  • Колонка B это просто кумуляция А2
  • C5 = A5 - 30
  • Колонка остальной части C = клетка над ней + $ A $ 2
  • Столбец D: = ЕСЛИ (C6> A6, "Да", "Нет")

Согласно приведенным выше расчетам, он не будет пойман до 16/18/18.

Должен быть НАМНОГО лучший способ рассчитать это!

Грубые, рабочие значения Excel

2 ответа2

1

Я бы подошел к этому по-другому, используя одно предположение о времени, необходимом для обработки данных за определенное количество дней.

Предполагается, что требуемое время пропорционально количеству данных. Другими словами, если обработка данных за 30 дней занимает 26 дней, обработка данных за 15 дней займет всего 13 дней.

Таким образом, если первый прогон занимает 26 дней (и обрабатывает данные за 26 дней), второй прогон должен занимать 26/30 дольше. Этот процесс повторяется, и в таблице ниже показано время, необходимое для последующих запусков.

Формула в B3: =B2*26/30 . Заполняется до тех пор, пока время пробега не станет меньше одного дня.

Как показано в последнем ряду, запуск 24 занимает менее 1 дня, и процесс "догоняет". Общее время всех запусков составляет 188,7 дня. Если прогон не может начаться в тот же день, когда закончился предыдущий прогон, вы можете округлить время каждого прогона до суммирования.

Чтобы вычислить дату "наверстывания", используйте =TODAY()+188.7 . Я получаю 24.06.18

1

Каждый день это длится 30/26 дней, но проходит один день. Таким образом, чистый выигрыш составляет [(30/26) -1] дней в день. Это работает на получение дополнительных 4/26 числа в день каждый день. Это означает, что на то, чтобы наверстать упущенное, требуется 26/4 дня. Чтобы наверстать упущенное 30 дней, нужно 30 *(26/4) дней. Мы можем отменить, чтобы получить 30 * 13/2, а затем отменить снова, чтобы получить 15 * 13, что составляет 195.

Однако есть несколько сложностей в этом расчете. Например, если вы считаете, что процесс "настиг", когда отставание составляет менее одного дня, как, по-видимому, и есть в ответе Bandersnatch, мой ответ переоценит требуемое время. С другой стороны, если каждая итерация должна быть целым числом дней, то это будет ее недооценивать. И т.п.

Это тот же основной принцип, что и при решении головоломки с пчелами: http://mathworld.wolfram.com/TwoTrainsPuzzle.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .