Boa noite,
Uma maneira de fazer com fórmulas exigiria a utilização de colunas auxiliares.
Um exemplo para 30 valores seria o seguinte:
1) Preencha o intervalo "B1:AE1" com números de 1 a 30;
2) Coloque a seguinte fórmula na célula "A1" e copie na coluna "A" até a célula "A31":
=MAIOR(B1:AE1;ALEATÓRIOENTRE(1;31-LIN(A1)))
3) Coloque a seguinte fórmula na célula "B2" e copie nas colunas "B:AE" até a célula "AE31":
=SE(B1<>$A1;B1;0)
Desta maneira você terá 30 números aleatórios no intervalo "A1:A30".
A maneira mais prática, na minha opinião, seria utilizando VBA.
Segue uma outra sugestão de código:
Sub Sorteio()
Dim Vetor()
Dim Qt As Long
Dim i As Long
Dim n As Long
Dim Max As Long
Columns("A").Clear
Qt = [C1].Value
Max = [C2].Value
If Qt > Max Then
MsgBox "O valor da célula C1 não pode ser maior que o da célula C2!"
Exit Sub
End If
ReDim Vetor(Max)
For i = 1 To Max
Vetor(i) = i
Next
For i = 1 To Qt
n = Int(Rnd * (Max - i + 1)) + 1
Vetor(0) = Vetor(n + i - 1)
Vetor(n + i - 1) = Vetor(i)
Vetor(i) = Vetor(0)
Cells(i, 1).Value = Vetor(i)
Next
End Sub
Na célula "C1" da planilha você deve colocar a quantidade de números a serem gerados, 30 no seu exemplo, e na célula "C2" o maior número, que também é 30 no seu exemplo.
Abraço
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 04/09/2011 9:59 pm