Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Выбор по множеству условий
 
Планетяне, жертвы реформ здравоохренения просят помощи...
Ситуация:
В лабораторию могут приходить разные наборы для выполнения тестов. Каждому тесту (КодТеста) соответствует некоторое количество кат№ наборов с разной суммой штук тестов (∑тестов) в наборе. Наборы внутри упаковки поделены на самодостаточные "кванты". Каждый квант характеризуется, помимо числа Тестов/квант, ещё и сроком стабильности. Если за этот срок квант не израсходован - остаток выкидывается и вскрывается новый. См. "из справочника".
При вскрытии нового всегда тратится некоторое число тестов на калибровку - ТестовКалПериод, + непрерывно идёт расход на контроль качества - ТестовQCПериод, и неизбежный % повторных исследований - ТестовПовторПериод. См "расчёт по потоку".
В итоге должно вычисляться количество упаковок, потребных на выполнение всех тестов (и "полезных", и "обязательных расходов") в заданный период для каждого кат№.

Очень хочется, пока даже наплевав на привязку к приборам, линейкам и прочим нашим плохо алгоритмизуемым лабораторным премудростям, сделать полуавтоматику для выбора оптимальных наборов:
  1. Остаток тестов ОстатокТестовПоток сверх расчётного ∑ТестПериод должен быть минимальным.
    Как посчитано:
        ∑ТестПериод - сумма заданного ТестовРасчПериод, "довеска" неизбежных повторов ТестовПовторПериод (% Повторы*ТестовРасчПериод) и суммы обязательных расходов ТестовQCПериод + ТестовКалПериод, считаемых отдельно и для простоты введенных числами.
    Полученное число потребных тестов делится на число тестов в "кванте" (Тест/квант),  полученные "кванты" приводятся к упаковкам через их число в упаковке (Квантов), на всех этапах округление до целого вверх.


  2. Число упаковок УпакПериодПоток для исполнения необходимых ∑ТестПериод тестов должно быть минимальным;
  3. Необходима проверка на то, что кванты расходуются быстрее, чем "тухнут" по истечению срока стабильности. Тухнущие должны исключаться из оценки по п.п. 1 и 2;
  4. Если ни один из Кат№ не удовлетворяет условию 3 - выбирается кат№ с минимальным остатком (= потери "в мусор");
  5. Если условиям 1-3 удовлетворяет больше 1 Кат№ (тогда критерий по остатку нестрогий, с задаваемым допуском в %%), то предусмотреть выбор по приоритету - можно "утилизировать" для этого столбцы между КодТеста и кат№. Приоритет будет задаваться простым числом от 1 до "дофига".
Вроде, сделал (если криво - буду рад помощи), начитавшись Планеты:
  1. Собственно счёт тесты -> кванты -> упаковки - ничего сложного, ВПР из пополняемого справочника по Кат№№, составу, числу тестов и срокам стабильности (адское зло на ~10 тыс строк, вручную из инструкций к наборам), + с листа с данными про тесты, потоки и период;
    Как посчитано:
        ∑ТестПериод - сумма заданного ТестовРасчПериод, "довеска" неизбежных повторов ТестовПовторПериод (% Повторы*ТестовРасчПериод) и суммы обязательных расходов ТестовQCПериод + ТестовКалПериод, считаемых отдельно и для простоты введенных числами.
    Полученное число потребных тестов делится на число тестов в "кванте" (Тест/квант),  полученные "кванты" приводятся к упаковкам (УпакПериодПоток) через их число в упаковке (Квантов), на всех этапах округление до целого вверх.
  2. Выбор Кат№ (Кат№МинОстаток) и посчитанных количеств упаковок (УпакМинОстаток) по минимальному остатку тестов - МинОстТест -> МинОстТестВыбр, через именованные диапазоны тестов (статические, динамику из "Приёмов" не стал городить, и так для меня предел сложности);
  3. Оценку по стабильности - тупо (УпакПериодПоток) > минимально-необходимого кол-ва упаковок по стабильности на период (МинУпСтабПериод), с визуальным дублированием в столбец Оценка.
Как прикрутить остальные "хотелки" к малому сделанному - голова уже не соображает.
Многопараметровые выборы из форума через СУММЕСЛИМН, ВПР и ИНДЕКС по сцепленным столбцам просмотрел, но не смог адаптировать критерии совпадения текстовых значений к моим численным с критериями больше/меньше :(
Выделенное жирным - соответствует столбцам во вложенном файле.
Изменено: Krok - 11.01.2016 01:56:42
Страницы: 1
Наверх