Вариант Маугли хорош. Уточнил у тренера, да, Андрей Вы правы, по регламенту соревнований в последнем заплыве группы если остается один участник, то надо оставить в предыдущем 5 участников (для 6 дорожек), а в последнем будет 2 участника. (моменты где есть один участник в группе невозможен по регламенту т.к. участников всегда больше чем в тестовом файле, но код эту ситуацию обрабатывает и это хорошо). Девочки и мальчики плывут отдельно, у них таблица разрядов разная, Правда бывают случаи, сам наблюдал с балкона, когда делали отступления и совмещали два заплыва в один, но это редкость и уже будет ручная корректировка. Да и ближайшие соревнования будут через неделю попробую обкатать и выложу, что получится. Сейчас при создании массива участников добавил ключевое поле, которое складывается по формуле "Категория &100+дистанция&пол". потом по этому полю и по заявленному времени сортирую и в коде Маугли дописал Case на выбранный бассейн с 4 и 8 дорожками. Сейчас разберусь еще с подсчетом участников одного заплыва, чтобы не оставался сирота в последнем заплыве и все будет хорошо. Спасибо за помощь и за готовый код.
Подскажите пожалуйста, у кого есть идея алгоритма как сформировать заплывы на соревнованиях. нужна идея.
задача: (реализовывать буду через макрос- нажал кнопку и получил результат.)
Есть таблица с реквизитами пловцов (файл приложу). Заплывы формируются по группам, дистанциям, полу, из сортированной таблицы по группам, дистанциям, полу и заявленному результату. При этом бассейны могут быть с 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 минут пока вручную сведут данные и распределят места.