Страницы: 1 2 След.
RSS
Генератор случайных чисел
 
Нужен генератор случайных чисел, даже лучше два.  
 
1.Генератор случайных числе с генерацией чисел из определенного диапазона чисел (т.е. даны числа 20, 15, 135, 274, 770 из них нужно выбирать какое - нибудь одно и выводить на экран).  
 
2.Генератор случайных чисел с генерацией числе с шагом и в определенном диапазоне, например шаг 20, а диапазон от 0 до 100.  
 
Может кто знает, заранее благодарен.
 
=ИНДЕКС(A1:A5;ЦЕЛОЕ(СЛЧИС()*5)+1) первый генератор  
=ОКРВВЕРХ(ЦЕЛОЕ(СЛЧИС()*120);20)-20 второй генератор
 

А можно еще варианты решений посмотреть:)<BR>http://www.planetaexcel.ru/forum.php?thread_id=3716<BR>http://www.planetaexcel.ru/forum.php?thread_id=5348<BR>http://www.planetaexcel.ru/forum.php?thread_id=9864

 
В 2007 вроде СЛЧИСМЕЖДУ() есть...  
Хотя могу код выложить...
 
Спасибо, буду разбираться
 
{quote}{login=Serge 007}{date=31.01.2010 01:20}{thema=}{post}В 2007 вроде СЛЧИСМЕЖДУ() есть...  
Хотя могу код выложить...{/post}{/quote}  
 
если можно , то выложите, хочу разобраться.
 
Function RandomValues() As Variant  
Dim intRow As Integer  
Dim intCol As Integer  
Dim aintOut() As Integer  
Dim aintValues() As Integer  
Dim intMax As Integer  
Dim i As Integer  
ReDim aintOut(1 To Application.Caller.Rows.Count, 1 To Application.Caller.Columns.Count)  
intMax = Application.Caller.Rows.Count * _  
Application.Caller.Columns.Count  
ReDim aintValues(1 To intMax)  
For i = 1 To intMax  
aintValues(i) = i  
Next i  
Randomize  
For intRow = 1 To Application.Caller.Rows.Count  
For intCol = 1 To Application.Caller.Columns.Count  
i = Rnd * intMax  
If 1 = 0 Then i = 1  
aintOut(intRow, intCol) = aintValues(i)  
aintValues(i) = aintValues(intMax)  
intMax = intMax - 1  
Next inCol  
Next inRow  
RandomValues = aintOut  
End Function
 
Посмотрите пример.  
С уважением, Александр.
 
{quote}{login=Serge 007}{date=31.01.2010 02:00}{thema=}{post}Function RandomValues() As Variant  
Dim intRow As Integer  
Dim intCol As Integer  
Dim aintOut() As Integer  
Dim aintValues() As Integer  
Dim intMax As Integer  
Dim i As Integer  
ReDim aintOut(1 To Application.Caller.Rows.Count, 1 To Application.Caller.Columns.Count)  
intMax = Application.Caller.Rows.Count * _  
Application.Caller.Columns.Count  
ReDim aintValues(1 To intMax)  
For i = 1 To intMax  
aintValues(i) = i  
Next i  
Randomize  
For intRow = 1 To Application.Caller.Rows.Count  
For intCol = 1 To Application.Caller.Columns.Count  
i = Rnd * intMax  
If 1 = 0 Then i = 1  
aintOut(intRow, intCol) = aintValues(i)  
aintValues(i) = aintValues(intMax)  
intMax = intMax - 1  
Next inCol  
Next inRow  
RandomValues = aintOut  
End Function{/post}{/quote}  
 
 
 
Спасибо! Буду разбираться.
 
Nemo191, может Вы не заметили - кроме кнопки "ответить с цитированием" есть ещё кнопка с более короткой надписью - "ответить". Ну вот зачем в данном случае цитата?
 
{quote}{login=Sh_Alex}{date=31.01.2010 02:17}{thema=}{post}Посмотрите пример.  
С уважением, Александр.{/post}{/quote}  
 
 
Спасибо,    
но мне надо два генератора.  
 
Один чтобы генератор, чтобы отображал на экран числа из тех, которые я написал, т.е. например, есть числа 21, 15, 123, 14, 157 вот одно из них должно случайным образом отображаться на экране.  
 
По второму, мне надо чтобы отображались числа в каком-нибудь заданном диапазоне , например с 1 до 100 с шагом 10, и чтобы они отображались на экран случайным образом.    
 
Я так думаю, что это все нужно реализоватьв VBA и привязать к кнопке, т.е. чтобы это было по нажатию кнопки.  
 
Я извиняюсь, если не точно объяснил свою просьбу.
 
И еще одни вопрос.  
Можно ли в Ecxel перемешать колонку с цифрами.  
Т.е. например колонка:  
1  
2  
3  
4  
5  
и т.д., а мне надо чтобы в этой колонке цифры перемешались случайным образом, т.е. стали не по порядку?
 
{quote}{login=Юрий М}{date=31.01.2010 02:38}{thema=}{post}Nemo191, может Вы не заметили - кроме кнопки "ответить с цитированием" есть ещё кнопка с более короткой надписью - "ответить". Ну вот зачем в данном случае цитата?{/post}{/quote}  
 
Обязательно учту Ваше замечание.
 
{quote}{login=}{date=31.01.2010 02:42}{thema=Re: }{post}{quote}{login=Sh_Alex}{date=31.01.2010 02:17}{thema=}{post}Посмотрите пример.  
С уважением, Александр.{/post}{/quote}  
 
 
Спасибо,    
но мне надо два генератора.  
{/post}{/quote}  
Еще раз открыл свой пример, посчитал: - получилось два генератора, один для первой задачи, второй - для второй.  
С уважением, Александр.
 
попробовал еще раз запустить Ваш файл не получается, вероятно разные версии, у меня 2003 Excel
 
Возможно, у Вас отключена надстройка Пакет_анализа – функция СЛУЧМЕЖДУ хоть и есть в 2003, но без этой надстройки не работает. Вернее, это функция самой надстройки.  
Генератор от 0 до 100 с шагом 10:  
=ОКРУГЛТ(СЛЧИС()*100+1;10)  
Или с надстройкой:  
=ОКРУГЛТ(СЛУЧМЕЖДУ(1;100);10)  
 
Для отображения ряда чисел без СЛУЧМЕЖДУ:  
=ИНДЕКС(A2:A6;СЛЧИС()*СЧЁТЗ(A2:A6)+1)  
 
Для отображения перемешивающегося ряда от 11 до 15:  
в столбце 5 ячеек с формулой =СЛЧИС(), в соседнем столбце результат (тоже в пять ячеек):  
=РАНГ(H4;$H$4:$H$8)+10  
Это как идея. Модифицируйте под свои требования.
 
Спасибо!
 
Sh_Alex, у меня тоже проблемка есть с генератором. Мне нужно, чтоб генератор выбирал один из 30 билетов, т.е. выдавал на экран название, может подскажите как это сделать? Спасибо!
 
Есть функция Array которая по номеру элемента массива вернёт значение.
 
ВПР()+СЛЧИС()
 
Вот спасибо. Все равно придется букварь по екселю почитать, больно уж много в нем интересного...
 
{quote}{login=vikttur}{date=28.02.2011 09:25}{thema=}{post}ВПР()+СЛЧИС(){/post}{/quote}  
уважаемый Vikttur, а не знаете ли Вы случайно рецепта расстановки генераторов сл.чисел - чтобы при этом числа не дублировались? Например, у меня в каждой из 10 смежных  ячеек установлено по генератору случайных целых чисел (от 1 до 100, с шагом 1) - и задача состоит в том, чтобы при нажатии F9 (или при вводе любого значения в какую-нибудь определенную свободную от формул ячейку)все 10 генераторов сгенерировали по одному числу, и чтобы ни одно из этих чисел случайно не повторились у другого (других) генератора. Возможно ли так сделать?
 
Макросом подойдет?
Я сам - дурнее всякого примера! ...
 
{quote}{login=Free}{date=14.04.2011 06:06}{thema=Re: }{post}уважаемый Vikttur, а не знаете ли Вы случайно рецепта расстановки генераторов сл.чисел - чтобы при этом числа не дублировались? Например, у меня в каждой из 10 смежных  ячеек установлено по генератору случайных целых чисел (от 1 до 100, с шагом 1) - и задача состоит в том, чтобы при нажатии F9 (или при вводе любого значения в какую-нибудь определенную свободную от формул ячейку)все 10 генераторов сгенерировали по одному числу, и чтобы ни одно из этих чисел случайно не повторились у другого (других) генератора. Возможно ли так сделать?{/post}{/quote}  
Использовал СЛУЧМЕЖДУ (в 2003 нужно подключить надстройку "Пакет анализа")
 
Пост выше мой.  
   
ЗЫ: Виктор, извини что "отнял" тему :)
 
{quote}{login=KukLP}{date=14.04.2011 06:49}{thema=}{post}Макросом подойдет?{/post}{/quote}  
Не знаю, но можно попробовать.) Спасибо.
 
Разберетесь.
Я сам - дурнее всякого примера! ...
 
{post}{quote}  
Использовал СЛУЧМЕЖДУ (в 2003 нужно подключить надстройку "Пакет анализа"){/post}{/quote}  
У меня в пакетах расширения XML таковой отсутствует, где его можно взять? Не уверен, что есть на пиратском дистрибютиве.
 
{quote}{login=KukLP}{date=14.04.2011 10:31}{thema=}{post}Разберетесь.{/post}{/quote}  
Спасибо, разобрался.) Теперь разбираюсь с тем, как бы уговорить Ваш макрос при вводе числа 100 рэндомить не 100 чисел, а 50 или 40 - используя при этом всю шкалу от 1 до 100..
 
Так.
Я сам - дурнее всякого примера! ...
Страницы: 1 2 След.
Читают тему
Наверх