Notifications
Clear all

criar numeros aleatórios

7 Posts
1 Usuários
0 Reactions
1,760 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caro colegas,
mais uma ajuda,
antecipo agradecimento

preciso criar números aleatórios, porem com limite até o numero 80, partindo do numero 01
e se possível sendo 05 por linha.

grato
Tadeuz B

 
Postado : 09/11/2013 4:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia tadeuz

A maneira mais fácil é usando a função ALEATÓRIOENTRE

=ALEATÓRIOENTRE(1;80)

Você pode arrastar por cinco colunas e depois por quantas linhas quiser.
A desvantagem é que repete números.

At.te

 
Postado : 09/11/2013 5:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

tadeuz,

Apesar da crença geral de que só através de VBA é possível gerar números aleatórios SEM REPETIÇÃO, segue solução via fórmulas:

Em B2 faça:

MATRICIAL

{=MAIOR(LIN($1:$80)*NÃO(CONT.SE($A2:A2;LIN($1:$80)));ALEATÓRIOENTRE(1;81-COL(A1)))}

Arraste até a Coluna F para gerar seus 5 aleatórios sem repetição.*

No anexo demonstro ainda como gerar seus 80 registros ÚNICOS divididos em 16 linhas de 5 cada.

Por fim deixo também um modelo genérico que preparei há alguns meses para treinamento.

Basta registrar 30/24 para gerar (entre os números 1 e 30), 24 registros aleatórios, por exemplo. Há instruções no modelo.

Divirta-se.

Abs,

* - para comprovar a efetividade das fórmulas, arraste até a Coluna CC e observe os 80 números gerados sem repetição.

 
Postado : 10/11/2013 4:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

a primeira do colega, Patropi
=aleatorioentre(1;80), nao funcionou gerou #nome
fico no aguardo

 
Postado : 13/11/2013 11:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Excel 2003, em B2 faça:

=MAIOR(LIN($1:$80)*NÃO(CONT.SE($A2:A2;LIN($1:$80)));INT(ALEATÓRIO()*(81-COLS($A$2:A2))+1))

Arraste para a direita.

Abs,

 
Postado : 13/11/2013 12:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

a primeira do colega, Patropi
=aleatorioentre(1;80), nao funcionou gerou #nome
fico no aguardo

Se não funcionou é porque o teu Excel é 2003 ou anterior.
Esta função só é suportada pelo Excel 2007 ou superior.

Dá para faze uma adaptação, já que você quer um número real entre x e y, podemos usar a função =ALEATÓRIO()*(y-x)+x, que para retornar só inteiro podemos fazer assim:

=INT(ALEATÓRIO()*(1-80)+80)

Arraste a formula por quantas colunas e linhas desejar, mas lembre-se que ele gera números repetidos,pois funciona igualzinho a função ALEATÓRIOENTRE().

Clique em F9 para atualizar os números.

Espero ter ajudado

Um abraço.

 
Postado : 13/11/2013 3:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Patropi,

Sinto informar que essa fórmula que vc postou

=INT(ALEATÓRIO()*(1-80)+80)

não funciona igualzinho a

=ALEATÓRIOENTRE(1;80)

É necessário acrescentar mais uma unidade aos 80... Portanto, o correto deveria ser

=INT(ALEATÓRIO()*(1-81)+81)

Aproveito para explorar mais um pouquinho o assunto e informar que é possível gerar ALEATÓRIOS ÚNICOS (sem repetição)
através de fórmulas NÃO-MATRICIAIS para qualquer versão do EXCEL, conforme exemplificado abaixo.

Para gerar verticalmente (nas linhas) aleatórios únicos de 1 a 100, em B2 faça:

Excel 2003

=MAIOR(ÍNDICE(LIN($1:$100)*(CONT.SE($B$1:B1;LIN($1:$100))=0);0;0);INT(ALEATÓRIO()*(101-LIN(A1))+1))

Excel 2007

=MAIOR(ÍNDICE(LIN($1:$100)*(CONT.SE($B$1:B1;LIN($1:$100))=0);0;0);ALEATÓRIOENTRE(1;101-LIN()+1))

Excel 2010

=AGREGAR(14;;ÍNDICE(LIN($1:$100)*(CONT.SE($B$1:B1;LIN($1:$100))=0);0;0);ALEATÓRIOENTRE(1;101-LIN()+1))

Para os 3 casos, arrastar até a linha 101.

No anexo, demonstro ainda como fazer com referências relativas (no caso do número 100 estar registrado na célula A1, por exemplo).

Abraço a todos.

 
Postado : 17/11/2013 6:19 am