Страницы: 1
RSS
Выбор случайного значения из ячеек с текстом с последующим исключением предыдущих результатов., выделить неповторяющиеся значения
 
Доборый день,
Есть набор ячеек с текстом. Необходимо выделить несколько случайных значений, которые бы не повторялись или исключали предыдущие значения.
 
Код
В A3 и протянуть вниз         =A2+1*(B3<>$G$3)
в G4                          =ВПР(СЛУЧМЕЖДУ(1;19);A:B;2;0)
в G5 по аналогии с G4
 
Почему-то значения в G4 и G5 повторяются. Что-то делаю не так.
 
Файл с решением прилагаю.
Есть один ньюанс: у меня Excel 2016 и в нём есть встроенная функция SplitWithoutRepeats().
Код
=INDEX(SplitWithoutRepeats(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXTJOIN(";";;IF(A3:A22=MATCH(E3;B3:B22;0);"@";B3:B22));";@;";";");";@";"");"@;";"");";");RANDBETWEEN(1;19))
Эта функция преобразует текст, полученной в результате функции TEXTJOIN в виртуальный диапазон, из которого функция INDEX и вытягивает случайное значение.
Возможно она у меня появилась после того, как была поставлена надстройка OpenSolver, но точно утверждать не буду. Без неё результата не получить, а как корректно SplitWithoutRepeats() заменить  - не знаю...
 
Всем спасибо за помощь, немного не то, что хотел.
 
Может кому-то и пригодится...
В приложенном файле немного другое решение задачи, что было представлено в сообщении #4.
Сделала пользовательскую функцию в файле SplitUser() - посмотреть её можно в коде VBA в этом же файле. Она заменила ранее используемую мной SplitWithoutRepeats().  
Изменено: turbidgirl - 28.02.2020 11:28:25
Страницы: 1
Наверх