Ciao sm910004,
dovrei generare 110 numeri casuali compresi tra un massimo (0.020) e un minimo (0.010) che abbiano in totale una media pari a 0.015.
qualcuno sa come potrei fare? grazie
Per ottenere una media esattamente pari a 0.015 potrebbe richiedere molto tempo! Per ottenere valori casuali con una media pari a 0.015 ± 0.0001, prova qualcosa del genere:
- Alt+F11 per aprire l'editor di VBA
- Alt+IM per inserire un nuovo modulo di codice
- Nel nuovo modulo vuoto, incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim destRng As Range
Dim arrIn() As Variant
Dim dVal As Double, dSum As Double
Dim i As Long
Const dTolleranza As Double = 0.0001 '<<=== Modifica
Set WB = ThisWorkbook
Set SH = WB.Sheets("Foglio1") '<<=== Modifica
Set destRng = SH.Range("A1:A110")
ReDim arrIn(1 To 110)
Do
dSum = 0
Randomize
For i = 1 To 110
dVal = Int((200 - 100 + 1) * Rnd + 100) / 10000
arrIn(i) = dVal
dSum = dSum + arrIn(i)
Next i
Loop Until Abs(0.015 - (dSum / 110)) < dTolleranza
destRng.Value = Application.Transpose(arrIn)
End Sub
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
- Salva il file con l’estensione xlsm
- Alt+F8 per aprire la finestra di gestione delle macro
- Seleziona Tester | Esegui
Potresti scaricare il mio file di prova SM20160302.xlsm a:
https://www.dropbox.com/s/uwyzyo8pauo6ofj/SM20160302.xlsm?dl=0
===
Regards,
Norman