Страницы: 1
RSS
Алгоритм для формирования заплывов в соревнованиях
 
Подскажите пожалуйста, у кого есть идея алгоритма как сформировать заплывы на соревнованиях.
нужна идея.

задача: (реализовывать буду через макрос- нажал кнопку и получил результат.)

Есть таблица с реквизитами пловцов (файл приложу).  
Заплывы формируются  по группам, дистанциям, полу, из сортированной таблицы по группам, дистанциям, полу и заявленному результату.
При этом бассейны могут быть с 4, 6, 8 дорожками (задаем в параметре)
мне надо придумать как разбить спортсменов чтобы заплывы формировались так:
берем 6 дорожек бассейн,
для первого заплыва топ шесть спортсменов выставляем первого на 3 дорожку, второго на 4, третьего на 2, четверного на 5, пятого на 1 и шестого на 6.
берем следующие 6 записей с 7 и расставляем порядок дорожек с максимума до минимума 3 4, 2 5, 1 6.
для бассейна на 4 дорожки расставлять 2 3, 1 4
для восьми дорожек   4 5,  3 6,  2  7,  1  8.
и так до конца списка девочек отдельно, мальчиков отдельно.
Но если остается 1 человек в остатке, то 1 и 6 дорожку забрать на последний заплыв или хотя бы одну 6ую или 4ую или 8ую.

А уже эту таблицу сортировать по заплывам и дорожкам 3 строки кода.

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

А так тренера заставляют родителей и спортсменов ждать 20-30 минут пока вручную сведут данные и распределят места.
Изменено: goldenbid - 08.12.2017 18:39:09
 
Доброе время суток.
Интересная задача, если не заглядывать в файл ;)  Версия на Power Query.
 
Как вариант..
Скрытый текст
Изменено: Маугли - 12.12.2017 17:56:12 (поправил код)
 
Маугли, Коллега, для 6 дорожек получилось, что в 4 заплыве только один участник. Да и число заплывов 7 не многовато ли? По идее, можно и в 5 вписаться.
 
Добрый день,Андрей!Я так понял задачу.Мальчики отдельно-девочки отдельно в каждой категории.
Что поделаешь, если в этой категории одна девушка: придеться плыть одной.
В категории VD - девочки получилось два заплыва 6 и 7
Автору виднее, посмотрим..
 
Цитата
Маугли написал:
В категории VD - девочки получилось два заплыва 6 и 7
А да, упустил, что нужно сначала сгруппировать участников по возможности совместного заплыва по категориям и полу. Приношу свои извинения. Решал задачу относительно уже выполненнего отбора.
 
Вариант Маугли хорош. Уточнил у тренера, да, Андрей Вы правы, по регламенту соревнований в последнем заплыве группы если остается один участник, то надо оставить в предыдущем 5 участников (для 6 дорожек), а в последнем будет 2 участника. (моменты где есть один участник в группе невозможен по регламенту т.к. участников всегда больше чем в тестовом файле, но код эту ситуацию обрабатывает и это хорошо). Девочки и мальчики плывут отдельно, у них таблица разрядов разная, Правда бывают случаи, сам наблюдал с балкона, когда делали отступления и совмещали два заплыва в один, но это редкость и уже будет ручная корректировка. Да и ближайшие соревнования будут через неделю попробую обкатать и выложу, что получится. Сейчас при создании массива участников добавил ключевое поле, которое складывается по формуле "Категория &100+дистанция&пол". потом по этому полю и по заявленному времени сортирую и в коде Маугли дописал Case на выбранный бассейн с 4 и 8 дорожками. Сейчас разберусь еще с подсчетом участников одного заплыва, чтобы не оставался сирота в последнем заплыве и все будет хорошо.
Спасибо за помощь и за готовый код.
Изменено: goldenbid - 10.12.2017 15:55:17
 
Насколько я понял какие бы критерии не учитывались при разделении на группы, самое главное это правильно раздать дорожки согласно заявкам.
Если нужно учитывать критерии для разделения на группы, то отметьте столбцы с критериями "+" (как в приложенном файле).
Раздача дорожек по двойному клику на заголовке "Дорожки".
Сирот не будет по принципу добавки одного из предыдущих.
При добавлении/удалении столбцов, работоспособность должна сохраняться
Количество дорожек любое, при 10-ти нумерация с нуля.
Изменено: AAF - 10.12.2017 22:57:47
 
Здравствуйте. Загорелся разобраться в формировании стартовых и итоговых протоколов в эксель, но мало что понимаю в этом (к моему сожалению) :cry: . И наткнулся на этот сайт, уже увидел тут готовые файлы с кодами. но не могу понять как нужно вбивать время, чтобы автоматически всё редактировалось, и как сделать чтобы сначала указывался один раз заплыв, потом номера дорожек. и чтобы потом при вводе итогового результата автоматически редактировалось. ( как на всероссийских соревнованиях). Знаю, что у них есть специальная программа, но интересно как это работает через эксель. если можно, то какое-нибудь обучающее видео или запись экрана как этим всем пользоваться. Надеюсь мне кто-нибудь ответит)
 
Андрей VG, AAF, goldenbid, если сможете помочь, то буду благодарен
Страницы: 1
Читают тему
Наверх