Добрый вечер всем. Подскажите с решением непростого вопроса.
Есть определенный набор чисел: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15. В ячейке C6 находится формула
Код
=СЛУЧМЕЖДУ(1;15)
В этой формуле - существует вероятность выпадания одного и того же числа подряд ( и вообще чем меньше диапазон чисел - тем больше такая вероятность).
Подскажите как формулой - выводить случайные числа в диапазоне 1-15, с условием, что одно число - не должно выпасть два раза подряд ? (То есть не должно быть ситуации, когда после выпадания числа 3, при следующем пересчете - выпадет снова 3).
Добрый вечер всем. Подскажите с решением непростого вопроса.
Есть определенный набор чисел: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15. В ячейке C6 находится формула
Код
=СЛУЧМЕЖДУ(1;15)
В этой формуле - существует вероятность выпадания одного и того же числа подряд ( и вообще чем меньше диапазон чисел - тем больше такая вероятность).
Подскажите как формулой - выводить случайные числа в диапазоне 1-15, с условием, что одно число - не должно выпасть два раза подряд ? (То есть не должно быть ситуации, когда после выпадания числа 3, при следующем пересчете - выпадет снова 3).mv6677
А после 15 пересчетов что тогда должно быть? Посмотрите вот этот ответ http://www.excelworld.ru/forum/2-94-1247-16-1288102057 (как давно это было - за него я получил свой первый плюсик в карму на этом форуме) Файл оттуда приложил Если так не подойдет, то придется макросом
А после 15 пересчетов что тогда должно быть? Посмотрите вот этот ответ http://www.excelworld.ru/forum/2-94-1247-16-1288102057 (как давно это было - за него я получил свой первый плюсик в карму на этом форуме) Файл оттуда приложил Если так не подойдет, то придется макросом_Boroda_
_Boroda_, посмотрел на ваш файл. Интересно конечно. Как я понял в диапазоне A2:A11 - выпадает комбинация чисел, которые не повторяются.
Но там же в нем - может выпасть в одной ячейке - два раза подряд - одно и то же число.
Вот в вашем файле - как запретить ячейке A11 - выдавать одно и то же число - подряд (вразнобой можно, но не подряд) ? Чтобы невозможна была ситуация - когда при пересчете листа - там (в ячейке A11) могло повторится одно и то же число.
_Boroda_, посмотрел на ваш файл. Интересно конечно. Как я понял в диапазоне A2:A11 - выпадает комбинация чисел, которые не повторяются.
Но там же в нем - может выпасть в одной ячейке - два раза подряд - одно и то же число.
Вот в вашем файле - как запретить ячейке A11 - выдавать одно и то же число - подряд (вразнобой можно, но не подряд) ? Чтобы невозможна была ситуация - когда при пересчете листа - там (в ячейке A11) могло повторится одно и то же число.mv6677
Так подойдет-то что ? В вашем файле - каждая ячейка в диапазоне - имеет возможность повтора одного и того же числа - два раза подряд. Я спрашивал про отсутствие повторов - для хотя бы одной ячейки. (Повтор - два раза подряд)
может пересчитывать случайное число - не то что 15 раз, а вообще бесконечное количество раз. После 15-го пересчета - будет такой же пересчет, что и обычно (лишь бы последнее число - не повторялось бы 2 раза подряд).
Так подойдет-то что ? В вашем файле - каждая ячейка в диапазоне - имеет возможность повтора одного и того же числа - два раза подряд. Я спрашивал про отсутствие повторов - для хотя бы одной ячейки. (Повтор - два раза подряд)
может пересчитывать случайное число - не то что 15 раз, а вообще бесконечное количество раз. После 15-го пересчета - будет такой же пересчет, что и обычно (лишь бы последнее число - не повторялось бы 2 раза подряд).mv6677
немного изменил, чтобы выводилось случайное при любом совпадении [vba]
Код
Sub NoDupl() Const lMin As Long = 1 Const lMax As Long = 15 Dim i As Long, lTemp As Long Randomize lTemp = [C6] Do i = Int(Rnd * (lMax - lMin + 1) + lMin) Loop While i = lTemp [C6] = i End Sub
немного изменил, чтобы выводилось случайное при любом совпадении [vba]
Код
Sub NoDupl() Const lMin As Long = 1 Const lMax As Long = 15 Dim i As Long, lTemp As Long Randomize lTemp = [C6] Do i = Int(Rnd * (lMax - lMin + 1) + lMin) Loop While i = lTemp [C6] = i End Sub
Соответственно макрос из предыдущего сообщения можно переписать: [vba]
Код
Sub NoDupl() Const lMin As Long = 1, lMax As Long = 15 Randomize [C6] = ([C6] - lMin + Int(Rnd * (lMax - lMin) + 1)) Mod (lMax - lMin + 1) + lMin End Sub
Соответственно макрос из предыдущего сообщения можно переписать: [vba]
Код
Sub NoDupl() Const lMin As Long = 1, lMax As Long = 15 Randomize [C6] = ([C6] - lMin + Int(Rnd * (lMax - lMin) + 1)) Mod (lMax - lMin + 1) + lMin End Sub