in Excel 2007
ciao
--
Visita e commenta : http://unispidocafe.blogspot.com/
> Ciao. Qualcuno pu� dirmi come fare ad estrarre casualmente un numero da
> una griglia di valori (15 colonne x 15 righe)?
> E se ne volessi estrarne 15 valori dalla stessa griglia? Come fare per
> evitare eventuali ripetizioni?
>
> in Excel 2007
Vedi la funzione VBA Rnd () nell'Help per l'estrazione di un
numero casuale appartenente a un determinato intervallo.
Quanto all'unicit� di pi� estrazioni sullo stresso intervallo,
raccogline il numero che ti interessa in una Collection.
Dovrai gestire gli errori di duplicazione semplicemente
con un On Error Resume Next.
Bruno
"andreij" <andreijl...@magari.it> ha scritto nel messaggio
news:4b0a7bbf$0$8863$4faf...@reader5.news.tin.it...
> Ciao. Qualcuno pu� dirmi come fare ad estrarre casualmente un numero da
> una griglia di valori (15 colonne x 15 righe)?
> E se ne volessi estrarne 15 valori dalla stessa griglia? Come fare per
> evitare eventuali ripetizioni?
>
> in Excel 2007
>
> ciao
>
Ciao,
griglia in a1:o15
formula da immettere esclusivamente in Q1:
=INT(CASUALE()*15*15)
In Q2:
=INDICE(GRANDE(SE(CONTA.SE($A$1:$O$15;$Q$1:Q1)=0;"";$A$1:$O$15);RIF.RIGA(INDIRETTO("1:"&15^2-RIF.RIGA()+1)));INT(CASUALE()*((15^2)-RIF.RIGA()+1)))
conferma con ctrl+maiusc+invio
e copia la formula nelle 15 celle sottostanti.
ivano
vedi:
http://www.prodomosua.eu/zips/bingo.xls
qui
http://groups.google.it/group/microsoft.public.it.office.excel/msg/23e5328d5422d343
dico perch� preferisco questo ad altri metodi.
.f
Mi restituisce un numero intero (206)
>
> In Q2:
> =INDICE(GRANDE(SE(CONTA.SE($A$1:$O$15;$Q$1:Q1)=0;"";$A$1:$O$15);RIF.RIGA(INDIRETTO("1:"&15^2-RIF.RIGA()+1)));INT(CASUALE()*((15^2)-RIF.RIGA()+1)))
>
> conferma con ctrl+maiusc+invio
>
> e copia la formula nelle 15 celle sottostanti.
>
mi restituisce #VALORE!
sbaglio io?
ciao
Ciao,
penso che Ivano, in Q2 intendesse:
=INDICE(GRANDE(SE(CONTA.SE($Q$1:Q1;$A$1:$O$15)=1;"";$A$1:$O$15);RIF.RIGA(INDIRETTO("1:"&15^2-RIF.RIGA()+1)));INT(CASUALE()*((15^2)-RIF.RIGA()+1)))
sempre matriciale, inserire con ctrl+maiusc+invio e trascinare in basso.
[Per ivano: ho invertito gli argomenti del conta.se. Spero di aver
interpretato bene... � da qualche anno che non ho occasione di 'ragionare'
con te :-)]
Ciao, Nur
Se, in alternativa alle altre soluzioni, desideri ottenere una estrazione
statica, che non si modifichi ad ogni ricalcolo del foglio, puoi usare
questa macro:
********************
Sub EstraiDaGriglia()
Dim cc, estr
Dim col As New Collection
On Error Resume Next
For Each cc In [Griglia]
col.Add cc, CStr(cc)
Next
On Error GoTo 0
If Selection.Count > col.Count Then Exit Sub
For Each cc In Selection
estr = Int(Rnd * col.Count + 1)
cc.Value = col(estr)
col.Remove (estr)
Next
End Sub
********************
Con (Inserisci\Nomi\Definisci) chiama "Griglia" il range [A1:A15] o
qualunque altro range da cui desideri fare le estrazioni.
Copia la macro nel modulo ThisWorkbook e collegala ad un tasto di scelta
rapido o a quel che vuoi.
Seleziona una zona e lancia la macro.
Ciao,
E.
"andreij" <andreijl...@magari.it> ha scritto nel messaggio
news:4b0a9294$0$10439$4faf...@reader2.news.tin.it...
>
>> griglia in a1:o15
>> formula da immettere esclusivamente in Q1:
>> =INT(CASUALE()*15*15)
>
> Mi restituisce un numero intero (206)
>
Ed � un numero della griglia...o no?
>>
>> In Q2:
>> =INDICE(GRANDE(SE(CONTA.SE($A$1:$O$15;$Q$1:Q1)=0;"";$A$1:$O$15);RIF.RIGA(INDIRETTO("1:"&15^2-RIF.RIGA()+1)));INT(CASUALE()*((15^2)-RIF.RIGA()+1)))
>>
>> conferma con ctrl+maiusc+invio
>>
>> e copia la formula nelle 15 celle sottostanti.
>>
>
> mi restituisce #VALORE!
>
Devi inserirla con la pressione combinata dei tasti che ho indicato.
ma va corretta come indicato da Nur, che saluto.
ho caricato un file dimostrativo a:
http://cid-eea94509008b1d68.skydrive.live.com/self.aspx/Pubblica/estrazione%20da%20area.xls
ivano
> sbaglio io?
> ciao
>