Condividi:        

[EXCEL.2003] FUNZIONE CASUALE

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[EXCEL.2003] FUNZIONE CASUALE

Postdi Stregone » 30/11/08 20:58

Ciao a tutti

Volevo chiedervi per favore,se c'e una formula in excel che mi conta quante volte è uscito il numero generato dalla funzione casuale.Mi spiego meglio,in una cella ho diciamo A1 ho la formula casuale nel mio caso =INT(CASUALE()*90)+1
ora nella cella B2 mi conterà quante volte è uscito il numero che andrò ad inserire nella cella B3.
Ho provato con il conta.se,ma una volta uscito il numero,nella cella del conteggio (B2) torna "0",mentre,io vorrei che si incrementasse ad ogni "Variazione" della funzione. :?:


GRAZIE....fantastico forum!!!
Stregone
Utente Junior
 
Post: 15
Iscritto il: 11/06/08 19:44

Sponsor
 

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 30/11/08 21:10

Hai notato che la formula col Casuale() modifica il risultato a ogni qualsiasi ricalcolo del foglio? da' fastidio per quello che devi fare?
Avendo inserito 1 sola formula in A1, che cosa vuoi confrontare con B3?

Ciao, fatti sentire.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Stregone » 30/11/08 23:10

CIAO ANTHONY

In poche parole..vorrei che mi contasse quante volte è uscito un numero scelto da me.
ES : in A1 ho la formula casuale con numeri da 1 a 90,in B2 inserisco un numero qualsiasi di questi,E in B3 mi conta quante volte è uscito il numero da me scelto ogni volta che fa il ricalcolo.
Stregone
Utente Junior
 
Post: 15
Iscritto il: 11/06/08 19:44

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Tribuno » 01/12/08 00:13

Ciao,
non so se sia possibile con le funzioni native di excel, ma utilizzando l'evento SelectionChange del propio foglio è possibile contare quante volte è uscito il numero richesto:

Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") = Range("B2") Then Range("B3") = Range("B3") + 1
End Sub


Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 01/12/08 00:29

Ciao a tutti; piu' che SelectionChange io userei Calculate (Casuale viene rielaborata ogni ricalcolo, e non sempre un selectionchange provoca un ricalcolo); quindi la macro sarebbe:
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
If Range("A1") = Range("B2") Then Range("B3") = Range("B3") + 1
End Sub

Da excel, tasto dx sul tab col nome foglio, scegli Visualizza codice; si apre l' editor delle macro, inserire il codice sul frame vuoto di dx (o sull' unico frame che visualizza).
Torna su excel e prova: metti il valore da confrontare su B2 e conti le uscite in B3; F9 per ripetere "l' estrazione"

Ma secondo me...

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Stregone » 01/12/08 08:36

CIAO a TUTTI

Prima di tutto grazie dell'aiuto come al solito gentilissimi...

Allora,ho provato con entrambe le formule,quella che sembra funzionare è quella di Anthony, solo che
stranamente ho notato che... si conta il numero da me scelto (B2) ma nella cella (A1) non appare il numero scelto.
Cmq x semplificare ho fatto un casuale tra 6 num.
ES: se scelgo "1" (B2) in (A1) compare uno degli altri 5 numeri ma non "1"nonostante che dopo ripetute estr. continua a contarlo(B3).

GRAZIE... :-?
Stregone
Utente Junior
 
Post: 15
Iscritto il: 11/06/08 19:44

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 01/12/08 15:02

Ho dimenticato di dirti che va eseguito tutto in modalita' "Calcolo manuale" (da impostare tramite Menu /Strumenti /Opzioni, tab Calcolo), altrimenti il valore estratto si ricalcola appena scrivi il valore incrementato in B3.

Non dimenticare di ripristinare poi il Calcolo automatico.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Stregone » 01/12/08 21:59

Ciao Anthony

Tutto ok!......grazie :lol:
Stregone
Utente Junior
 
Post: 15
Iscritto il: 11/06/08 19:44

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Flash30005 » 02/12/08 10:42

Interessante la macro da voi pubblicata: vedere quel numero casuale variare e il contatore che aumenta di valore mi ha fatto pensare che senza sapere quante volte ho pigiato il tasto F9 non ho un rapporto di uscita del numero rispetto agli eventi e poi per quanto tempo devo premere F9?
allora mi sono divertito a fare una macro con Timer che fa calcolare con pause da 0 secondi a n secondi e poi terminare il ciclo stabilendo sin dall'inizioquanto deve durare il test quindi rimanendo il folgio come da voi impostato provate ad usare questa macro ;)
Codice: Seleziona tutto
Sub FreqNr()
Range("C3").Value = 0
Range("B3").Value = 0
    Range("D3").FormulaR1C1 = "=RC[-2]/RC[-1]"
    Range("D3").Style = "Percent"
    'Range("D3").NumberFormat = "0.0%"
    Range("D3").NumberFormat = "0.00%"

TRoutine = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now())
TI = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now())
Rit = 1
Pausa:
TF = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now())
'MsgBox TF & " " & TI
If TF >= TRoutine + 30 Then GoTo Esci
If TF < TI Then GoTo Pausa
Range("C3").Value = Range("C3").Value + 1
Calculate
TI = TF
GoTo Pausa
Esci:
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Flash30005 » 02/12/08 14:48

Ciao Stregone

Ti allego un bel "giochino" riguardo i numeri casuali (tutti e 90) con relativo grafico
Potrai scegliere se far girare il programma per X secondi o per N eventi con passo da 0 a X secondi

Con questo applicativo possiamo finalmente provare che effettuando una serie di estrazioni casuali su 90 numeri sia in un arco di un tempo stabilito o per numero di eventi avremo una frequenza più alta per alcuni numeri rispetto a altri per poi subito avere un'inversione della rotta e quindi possiamo affermare statisticamente che per "pronosticare con successo" i numeri prossimi all'uscita... bisogna avere una gran fortuna :lol:



P.s. Anthony, se puoi, dai un'aggiustatina alle macro, grazie
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 02/12/08 18:35

P.s. Anthony, se puoi, dai un'aggiustatina alle macro, grazie

Macro che funge non si tocca...
Ho infranto questa regola per questa modifica:
1) Ripristina .Calculation = xlAutomatic in fondo, 2) cancella tutta la macro Worksheet_Calculate, e 3) invece di Calculate metti queste :
Codice: Seleziona tutto
Sheets("Foglio1").Range("A1").Calculate
Range("C1").Offset(Range("A1").Value - 1, 0).Value = Range("C1").Offset(Range("A1").Value - 1, 0).Value + 1


Dovrebbe aumentare la velocita' di esecuzione di 10-15 volte.
Sono possibili altre piccole modifiche, ad esempio TRoutine = Timer invece di TRoutine = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now()) (e altri casi analoghi), ma sono modifiche meno influenti.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Flash30005 » 02/12/08 20:36

ECCEZIONALE!
Allora la tua formula conteneva un piccolo errore che ho corretto
Codice: Seleziona tutto
Range("C1").Offset(Range("A1").Value -1, 0).Value     <<< -1 non può essere perché se esce l'1 va in errore

Con la "vecchia" macro, in 30 secondi avevo 2700 numeri casuali ora, con la tua formula, ottengo 4500 numeri circa,
ma il grafico rimane bloccato (mi piaceva veder il grafico animato in tempo reale) e allora ho commentato il calculate della sola cella A1 e ho rimesso il calculate di tutto il foglio e contro ogni mia aspettativa il conteggio è arrivato a ben 5619 numeri
Penso che ora sia un interessante applicativo per chi cerca i "numeri in calore" ;)
Codice: Seleziona tutto
'Sheets("Foglio1").Range("A1").Calculate
Range("C1").Offset(Range("A1").Value, 0).Value = Range("C1").Offset(Range("A1").Value, 0).Value + 1
Calculate


e possiamo finalmente tentare la fortuna ma... ci vuole sempre un grande, ma grande, fattore "Q" :lol: :lol: :lol:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 03/12/08 19:55

Sul mio pc ero passato da 6000 a 80mila! ma e' vero il grafico bloccato toglie molto all' elaborato.

Quale errore hai corretto?

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Flash30005 » 04/12/08 02:04

Anthony47 ha scritto:Sul mio pc ero passato da 6000 a 80mila! ma e' vero il grafico bloccato toglie molto all' elaborato.

Ma che c'hai messo un turbo? :lol:

Anthony47 ha scritto:Quale errore hai corretto?

Nel mio post precedente ho riportato la tua formula (1° codice) e la formula modificata (2° codice)
comunque, in breve, va eliminato il -1 al value di A1 che determina la riga, perché se esce 1 con - 1 va a 0 e la riga zero non esistendo va in errore, funziona se la formula del numero casuale la si mette in A2.

Su quel programmino sto aggiungendo migliorie sia dal punto di vista visivo che d'informazione come ad esempio i "migliori" e i "peggiori" 5 numeri del momento poi eventualmente lo pubblicherò qui per tutti coloro che hanno un qualsiasi interesse ad utilizzarlo.

Nei vari test impostando a 30 secondi il tempo di elaborazione ottenevo spesso lo stesso risultato e questo confermava in parte i miei dubbi sui numeri casuali generati da un Pc (come può un processore generare dei numeri casuali? Alla fine se esiste una routine ed è sempre la stessa "macchina" ad eseguirla darà sempre gli stessi risultati o no?)

Una cosa è certa che il numero degli eventi che elabora a parità di tempo e di processi attivi varia in maniera sensibile.
Non vorrei, alla fine, avessimo realizzato un applicativo che ci informa sullo "stato di salute" del Pc :lol: :lol: :lol:


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 04/12/08 22:56

Ti confermo che sul Pc su cui avevo provato il counter passava, su un test da 60 sec e con la modifica che blocca il grafico, da 6000 a 81000 calcoli :!:

Sull' istruzione modificata, credo che sia sbagliata la tua interpretazione: l' elenco dei risultati e' in C1:C90; il valore del numero estratto e' usato come "offset" rispetto alla radice C1; se elimini il "-1" quando estrai l' 1 incrementi il contatore in C2 (il "2"), e quando estrai 90 incrementi C91 (il 91?).

Quanto all' utilita' di questo lavoro, io lo ascriverei nella categoria dei software didattici (didattico sul vba, perche' al lotto qualsiasi numero e' buono come tutti gli altri :lol: ).

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Flash30005 » 05/12/08 23:58

Anthony47 ha scritto:Ti confermo che sul Pc su cui avevo provato il counter passava, su un test da 60 sec e con la modifica che blocca il grafico, da 6000 a 81000 calcoli :!:

Sull' istruzione modificata, credo che sia sbagliata la tua interpretazione: l' elenco dei risultati e' in C1:C90; il valore del numero estratto e' usato come "offset" rispetto alla radice C1; se elimini il "-1" quando estrai l' 1 incrementi il contatore in C2 (il "2"), e quando estrai 90 incrementi C91 (il 91?).
...


Ho aggiunto una tabella con i primi 5 valori e gli ultimi 5 quindi è rallentato di molto tutto il programma, allora, volendo far calcolare solo la cella con il random, le colonne interessate e il grafico (escludendo appunto le tabelle aggiunte) ho impostato i relativi codici di calcolo alle aree volute ma per il grafico incorporato mi dà errore
Chart("grafico 1").calculate forse perché è incorporato nel foglio1 e quindi cerca il foglio grafico1?

Per quanto riguarda la formula hai ragione avevo messo la formula random errata in C1 Intero(casuale()*90) invece di stessa formula + 1 quindi io avevo anche il numero casuale 0.
Nella mia guida ho visto che esiste anche il casuale.tra(1,100) che in effetti tra le funzioni non esiste come mai?

Ciao
Allegati
Casuale.Tra.jpg
Casuale.tra
(151.92 KiB) Scaricato 66 volte
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL.2003] FUNZIONE CASUALE

Postdi Anthony47 » 06/12/08 00:34

Non mi risulta che puoi applicare il metodo Calculate altro che alla finestra excel, o a un foglio, o a un range.

Per quanto riguarda Casuale.tra, forse non hai installato il componente aggiuntivo "Strumento di analisi": Menu /Strumenti /Componenti aggiuntivi; spunti la voce Strumenti di analisi, Ok.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19432
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL.2003] FUNZIONE CASUALE":


Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti