Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как перебрать все возможные варианты и найти оптимальный?
 
Добрый день!
Уже несколько часов бьюсь над задачей, боюсь что без макросов не обойтись, но надеюсь что получится (макрос я точно не осилю написать).

Собственно задача (файл во вложении)

В столбцах A-M прописаны свойства для каждой фразы в столбце O (данные); Каждой фразе также соответствует число (частотность) из стобца P
Они сцепляются в столбце N в единую группу вида:
Элитные|Хай   тек|Общее|
В столбце Q через формулу Суммеслимн рассчитывается соотвествующая частотность на каждую такую группу.

Собственно задача в следующем:
Для каждой фразы, где частотность на группу ниже 100, нужно подобрать такую комбинацию группы (опуская те или иные значения, разделенные знаком "|"), чтобы значение частотности на группу было минимальным, но но не менее 100.

Например возможные комбинации для группы из примера выше будут:
Элитные|Хай тек|
Элитные|Общее|
Хай тек|Общее|

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

Очень надеюсь на вашу помощь и подсказки.
Изменено: Lamp - 3 Сен 2018 17:41:43
 
Я правильно понял задачу в упрощённом виде?
У Вас есть три числа, нужно определить, сумма каких из них будет минимальна, но не меньше 100.
 
Боюсь что не совсем так.

Числа соотносятся с фразой (столбец Данные), а не с отдельными свойствами, образующими группу.

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

частотность для Элитные|Хай тек|Общее не равна частотности Элитные + Хай тек + Общее, точно также и все прочие комбинации никак не коррелируют с частотностью каждой отдельной.

Для каждой полученой комбинации надо находить общую частотность через CуммЕсли.

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

Хотя чисел может быть куда больше чем 3, т.к. группа может включать до 10 составляющих и число комбинаций там будет соответствующим, вот почему я не хотел заниматься перебором всех вариантов (ну и еще потому что не знаю как его делать)
Изменено: Lamp - 3 Сен 2018 18:12:55
 
За неимением альтернатив, Попробую упростить задачу. Варианты Групп буду задавать вручную.
Для каждой группы посчитана частотность, нужно выбрать ту где число минимальное.

Вот новый файл примера.

Нужно в столбец А Подставить название группы с наименьшей частотностью, но не меньше 100.  
В последнем столбце я сделал вычисление наибольшего наименьшего значения, но как сопоставить его с названием? ВПР и ГПР не получилось применить.
Изменено: Lamp - 4 Сен 2018 14:59:20
 
так?
 
Спасибо больше!  Работает правильно. Почитал справку, но Функция АГРЕГАТ и деление которое тут используется, пока остается за гранью моего понимания)
 
Деление в данном случае используется как фильтр. Для отсечения значений, которые не соответствуют вашим условиям. А что непонятно в АГРЕГАТ? Вы же функцию НАИМЕНЬШИЙ использовали. АГРЕГАТ в данном случае использается для той же задачи, только он более гибко настраивается, например, позволяет пропускать ошибочные значения.
Страницы: 1
Читают тему (гостей: 1)
Наверх