Страницы: 1
RSS
Случайные данные без повторов, Из списка 20 человек заполнить 400 строчек
 
Есть список 20 человек, нужно заполнить 400 ячеек данными из списка в  случайном порядке так, чтобы в каждых 10 строчках не было повторяющихся данных.
т.е. первые 10 строчек должны содержать разные фамилии,
вторые 10 строчек также должны содержать разные фамилии, но могут повторяться фамилии из первых 10 строчек итд
Изменено: MIKHAIL - 09.10.2020 15:03:20
 
Пользуйтесь
 
«в лоб»
Цитата
MIKHAIL: так, чтобы в каждых 10 строчках не было повторяющихся данных
вот это я не учёл  :oops:
Изменено: Jack Famous - 09.10.2020 15:28:23
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
В таком случае встречаются одинаковые фамилии в группах из 10 строчек. Например, в первых 10 строчках Нечаев, Мочалов и Плакидов по 2 раза

DemonAMT, а дальше? в каждой группе по 10 строчек такое прописывать?
 
Вариант на формулах
 
Вот это кажется работает, спасибо)
А формула в столбце С вручную редактируется на все 400 строчек? а если таких строчек тысячи
 
Вариант с макросом
 
Классно конечно, постараюсь разобраться и переделать для своей таблицы
 
Тоже формула. Массивная:
=ЕСЛИ(СТРОКА()=1;A1;ИНДЕКС(A:A;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ(СМЕЩ(F1;-1;;-МИН(10;СТРОКА()-1));A$1:A$20)=0;СТРОКА($1:$20));СЛУЧМЕЖДУ(1;МАКС(10;СЧЁТЗ(A:A)-СТРОКА()+1)))))
Фамилии случайно повторяются не меньше, чем через 11 строк во всём столбце. Как частный случай с предыдущей десяткой.
Если формулу использовать с 11 строки, то она значительно упрощается:
=ИНДЕКС(A:A;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ(G1:G10;A$1:A$20)=0;СТРОКА($1:$20));СЛУЧМЕЖДУ(1;СЧЁТЗ(A:A)-10)))
=ИНДЕКС(A:A;НАИБОЛЬШИЙ((СЧЁТЕСЛИ(H1:H10;A$1:A$20)=0)*СТРОКА($1:$20);СЛУЧМЕЖДУ(1;СЧЁТЗ(A:A)-10)))
 
Еще формульный вариант
Страницы: 1
Наверх