Автоматически генерировать уникальный номер без дубликатов

3106
clairelinliting

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

Например: мне нужно автоматически сгенерировать 1-10 в 2 столбца. Столбец А (фиксированный номер)

1 3 4 5 6 

Столбец B (случайное число)

сгенерировать то, что не появилось в столбце А?

Колонка B должна иметь 2,7,8,9,10.

С помощью этой формулы я могу сгенерировать уникальный номер для 2 столбцов из 1 - 10, но теперь, если я хочу исправить первый столбец, как мне кодировать, чтобы убедиться, что номер во 2-м столбце не имеет дубликатов из столбца A?

=IF(ROW()-ROW(P$3)+1>$A$3/2,"",RANK(OFFSET($B$3,ROW()-ROW(P$3)+(COLUMN()-COLUMN($P3))*($A$3/2),),$B$3:INDEX($B$3:$B$1002,$A$3))) 

Цель этих двух столбцов - сравнить текущую и следующую сессии. Я думал создать случайное число и использовать INDEX для получения имени, но сначала мне нужно получить число в отдельных строках, а не дублировать их.

Col B / C / D как информация персонала.

Полковник A, я могу вручную ввести общее количество персонала, которое будет влиять на полковник L / M / N. Если у меня 10 человек, столбец L будет меняться в зависимости от 5 групп, а столбцы M и N будут меняться в соответствии с.

На данный момент с моими формулами я могу автоматически перетасовать число для столбцов M и N на основе того, что я вставил в столбец A, а это 20. Это можно изменить.

У меня проблемы с тем, чтобы перетасовать число на М без дублирования на число, появившееся в полковнике Н.

Случайные / случайные числа 10 являются лишь примером. Список может сократиться до более чем 50. Можно автоматически сгенерировать оставшееся число вместо ручного ввода?

Check on my Screenshot

-1
Использование IF или VBA? Stephen 7 лет назад 0
Для чего нужны 2 колонки? У вас должно быть исправлено Col A 13456? Или вы застряли, просто получая рандомы от 1 до 10 без дупликов? Легко, если это не так. Наконец, вы просто хотите, чтобы случайные 10 чисел были разделены на два столбца равномерно, 5 и 5, верно? Я опубликую то, что я думаю, что вы имеете в виду. Вы должны будете вмешаться и сказать мне, работает ли это для вас или нет. Я почти убедил себя в том, что не отвечаю на вопросы кого-либо с менее чем 100 точками повторения, потому что я трачу много времени без обратной связи. ejbytes 7 лет назад 0
I'm not understanding where randomness comes in. It sounds like all of the numbers from 1-10 will appear. You define which ones are in the 1st column, and the complement is the goal of the 2nd column. Can you clarify? fixer1234 7 лет назад 0
SuperSam, ниже разработанное решение. Пользователь должен выбрать 5 уникальных чисел и ввести их вручную в один столбец, узнать, что представляют собой оставшиеся номера, а также ввести их во второй столбец. Так что нет никакой случайности вообще. Затем второй столбец перемешивается. Это то, что спросили, я полагаю. Но тогда нет никакой случайности вообще. Это перетасовать второй столбец, вот и все. Да (-1) для ясности. Это "случайность", а не случайность. Знайте, сколько представителей (1) я пытался помочь, но они, кажется, спрашивают и исчезают навсегда. ejbytes 7 лет назад 0
Remember I used Rand() to shuffle the numbers, it is the same method as OP Formulas 7 лет назад 0
Добро пожаловать в Супер пользователя. Вы можете свободно редактировать свои собственные сообщения, но для вашей защиты это должно быть сделано под первоначальной учетной записью пользователя. Похоже, вы создали вторую учетную запись, что также помешает вашей возможности комментировать в вашей теме и принимать ответ. См. [Объединить мои учетные записи] (http://superuser.com/help/merging-accounts), чтобы объединить ваши учетные записи, что решит проблему. fixer1234 7 лет назад 0

1 ответ на вопрос

0

Сначала вам нужно написать случайные числа столбца B, например, в новом столбце H (H1 = 2, H3 = 9 ... H5 = 7), оставьте столбец A с вашим выбором и B для сгенерированных чисел.
В I1 напишите = Rand () и перетащите его вниз, чтобы получить 5 строк со случайными числами <0,
в J1 напишите следующую формулу для ранжирования чисел Rand () столбца I:
=RANK(I1,$I$1:$I$5,0)
перетащите его до J5, чтобы у вас было 5 чисел от 1 до 5
В B1 напишите:
=OFFSET($H$1,J1-1,0)
и перетащите его вниз до B5, у вас будут случайным образом оставшиеся 5 уникальных чисел.
Обновление
Вы можете объединить формулы Rank и Offset вместе и написать в B1:
`= OFFSET ($ H $ 1, RANK (I1, $ I $ 1: $ I $ 5,0) -1,0) '
Обратите внимание, что Rank работает на Rand ( ) в столбце I, а не на H, где цифры.

I thought it was cool that it may be that simple. I tried it out myself and I couldn't figure this out. I'm pretty good with Excel and algorithms in general. I got a column of randoms < 1, like you said. But the Rank formula just put them in order. Can you explain this with an example? Maybe a print-screen with formula? I'm curious if/how this works. Thanks! "Ctrl + ~" for formula reveal. ejbytes 7 лет назад 0
The Rank is on Rand() not your numbers, I will update the answer with screen shot 7 лет назад 0
Таким образом, столбец A всегда статичен 6,3,4,1,5. И поэтому второй столбец должен быть 2,7,8,9,10, но в случайном порядке. Так что, если я выбрал столбец а, чтобы быть 1,2,3,4,5? Второй столбец будет по-прежнему содержать 2,7,8,9,10. Это правильно? Так что будет дубликат. Это работает только в том случае, если в столбец A вручную вводятся 5 уникальных чисел, а также в столбец H - оставшиеся уникальные числа из 5 оставшихся. Таким образом, действительно выберите 5 уникальных чисел, затем перемешайте оставшиеся 5 не выбранными, но те, которые сначала должны быть введены, также должны быть введены. Это работает, но я не вижу смысла от ОП. Я думаю, это то, что он спрашивал, а? ejbytes 7 лет назад 0
SuperSam, я просто должен сказать ... Вы ответили на вопрос, как он был задан. Но я только что увидел ум в твоем решении. Предложите лучшее решение, используя ваш метод, просто используя один столбец из 10 рандов в прямой линии / столбце, а затем ранжируйте столбец из десяти. Тогда 2-я колонка из 5 будет первой-5 и оставшейся-5. Шоу это как, «Это то, что вы хотите, я думаю», как альтернатива, лучший выбор. ejbytes 7 лет назад 0
И спасибо! Я научился от тебя хитрому трюку. ejbytes 7 лет назад 0
OP had the solution for non manual choices and asked if one column is fixed and a random choice for the second, that is why I answered with this method 7 лет назад 0

Похожие вопросы