Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Estrazione numeri da una griglia

59 views
Skip to first unread message

andreij

unread,
Nov 23, 2009, 7:10:40 AM11/23/09
to
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

--
Visita e commenta : http://unispidocafe.blogspot.com/


Bruno Campanini

unread,
Nov 23, 2009, 8:13:43 AM11/23/09
to
"andreij" <andreijl...@magari.it> wrote in message
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

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

ivano

unread,
Nov 23, 2009, 8:27:02 AM11/23/09
to

"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

fernando cinquegrani

unread,
Nov 23, 2009, 8:32:50 AM11/23/09
to

"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?

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


andreij

unread,
Nov 23, 2009, 8:48:05 AM11/23/09
to

> griglia in a1:o15
> formula da immettere esclusivamente in Q1:
> =INT(CASUALE()*15*15)

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


Nur

unread,
Nov 23, 2009, 9:33:29 AM11/23/09
to

"andreij" <andreijl...@magari.it> ha scritto nel messaggio
news:4b0a9294$0$10439$4faf...@reader2.news.tin.it...

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


plinius

unread,
Nov 23, 2009, 10:01:26 AM11/23/09
to

"andreij" <andreijl...@magari.it> ha scritto nel messaggio
news:4b0a7bbf$0$8863$4faf...@reader5.news.tin.it...

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.


ivano

unread,
Nov 24, 2009, 2:27:42 PM11/24/09
to

"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
>

0 new messages