Condividi:        

Contare e Ordinare gli Ambo

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

Contare e Ordinare gli Ambo

Postdi papiriof » 22/05/20 10:43

Ho letto questa vecchia discussione: viewtopic.php?f=26&t=84459

Anthony47 ha scritto:Una formula come questa restituisce il primo numero meno frequente nel range E2:BB9
Codice: Seleziona tutto
=MIN(CONTA.SE(E2:BB9;RIF.RIGA(INDIRETTO("1:90")))+VALORE(RIF.RIGA(INDIRETTO("1:90"))/100))
Da confermare con Contr-Maiusc-Enter
Il risultato e' presentato come numero decimale nella forma "Numero di occorrenze","Numero/100"; per estrarre il solo Numero userai la funzione Resto.

Ciao

Ho provato questa formula suggerita da Anthony in questa discussione relativamente a questo intervallo :
=MIN(CONTA.SE(I2272:AG2307;RIF.RIGA(INDIRETTO("1:90")))+VALORE(RIF.RIGA(INDIRETTO("1:90"))/100))
con Contr-Maiusc-Enter tutto OK!!!L L' ho provato anche Con "MAX" giusto anche questo e llora mi chiedevo si può fare una formula anche per trovare l'ambo meno frequente nel range gli ambi che si formano con i 90 numeri come noto sono 4005 ?poi ci sarebbe anche come si presenta l'ambo il + piccolo e il + grande e viceversa che sarebbe la stessa cosa.
Insomma si puo fare ??
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Sponsor
 

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 22/05/20 20:28

Non conosco una formula che possa generare tutte le combinazioni di ambo, per poter poi calcolare il min e il max in un unico passo.
Quindi bisogna procedere in altro modo; era solo una curiosita' o serve davvero?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 23/05/20 18:02

Anthony47 ha scritto:Non conosco una formula che possa generare tutte le combinazioni di ambo, per poter poi calcolare il min e il max in un unico passo.
Quindi bisogna procedere in altro modo; era solo una curiosita' o serve davvero?

Be in questo campo non esiste "serve davvero?" posso dire che come la Settimana Enigmistica allena la mente; che a lavoro (quando lavoravo) ho preso spesso e volentieri delle dritte di questo forum nate per argomenti più disparati.Per dirne una la funzione MATR.SOMMA.PRODOTTO mi ha risolto tanti di quei casi.....
Tornando a noi avevo pensato di risolvere almeno in parte per vedere gli ambi che sono usciti in questo intervallo trattasi di 5 intervalli
di 5 celle = 25 celle
79 89 57 73 9 66 76 44 60 86 1 11 69 85 21 35 45 13 29 55 55 65 33 49 75
con questa formula =SE(I2307<J2307;I2307&J2307;J2307&I2307)*1 una stringa * 1 diventa un numero in questo caso diventa 7989, quello successivo 79 e 57 diventa 5779 perchè il numero più piccolo precede sempre il più grande e cosi via i primi 5 numeri generano 10 ambi nel caso preso in considerazione 7989 5779 7379 979 5789 7389 989 5773 957 973 sembrerebbe risolto ma non è cosi perchè se volessi sapere quale è in un certo intervallo l'ambo l'ambo che è uscito di meno e volessi applicare la formula sopra suggerita=MIN(CONTA.SE($I2200:$C2307;RIF.RIGA(INDIRETTO("12:8990")))+VALORE(RIF.RIGA(INDIRETTO("12:8990"))/100))
Ma non posso mettere 12:8990 in quanto gli ambi possibili sono 4005 . Perciò ho pensato se fossi in grado di fare una fuonzione utente dove denominata "amb" dove 1 e 2 o 2 e 1 = 1
1 e 3 o 3 e 1 = 2
1 e 90 o 90 e 1 = 89
2 e 3 o 3 e 2 = 90
.....................
89 e 90 o 90 e 89 = 4005
Anthony io chiedo..... immagino che civogliano cicli for a sto punto non so farlo se fossero stati 20 30 casi ma 4005 si deve fare con cicli
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 25/05/20 10:52

Ho fatto fatica a capire le bozze delle tue formule, quindi procedo a modo mio...
Con questa macro, data un'area contenente le estrazioni (N righe per 5 colonne) calcolo quali ambo sono presenti e in quale numero; poi ordino i risultati per numero di uscite crescente e infine scrivo sul foglio i risultati; il codice:
Codice: Seleziona tutto
Sub Amber2()
Dim AArr(1 To 90, 1 To 90), LastX As Long
Dim bArr(), BInd As Long, Dest As String
Dim wArr, I As Long, J As Long, K As Long, Dati0 As String
Dim XX As Long, YY As Long, ZZ As Long
ReDim bArr(1 To 2, 1 To 90 * 90)
'
Dati0 = "B2"                '<<< L'are di partenza delle estrazioni
Dest = "K2"                 '<<< L'area a partire da cui saranno scritti i risultati
'
LastX = Cells(Rows.Count, Range(Dati0).Column).End(xlUp).Row - Range(Dati0).Row + 1
wArr = Range(Dati0).Resize(LastX, 5).Value
'
For I = 1 To LastX
    For J = 1 To 4
        For K = J + 1 To 5
            XX = wArr(I, J)
            YY = wArr(I, K)
            If YY > XX Then
                ZZ = XX
                XX = YY
                YY = ZZ
            End If
            AArr(XX, YY) = AArr(XX, YY) + 1
        Next K
    Next J
Next I
'Estraggo solo gli ambo presenti:
For I = 1 To UBound(AArr)
    For J = 1 To UBound(AArr, 2)
        If AArr(I, J) > 0 Then
            BInd = BInd + 1
            bArr(1, BInd) = "'" & Format(I, "00") & "-" & Format(J, "00")
            bArr(2, BInd) = AArr(I, J)
        End If
    Next J
Next I
ReDim Preserve bArr(1 To 2, 1 To BInd)
Dim tmp(1 To 2)
'Fase di ordinamento in bbsort
For I = 1 To UBound(bArr, 2) - 1
    For J = I + 1 To UBound(bArr, 2)
        If bArr(2, J) < bArr(2, I) Then
            tmp(1) = bArr(1, I): tmp(2) = bArr(2, I)
            bArr(1, I) = bArr(1, J): bArr(2, I) = bArr(2, J)
            bArr(1, J) = tmp(1): bArr(2, J) = tmp(2)
        End If
    Next J
Next I
Range(Dest).Resize(BInd, 2).Resize(BInd + 10, 2).ClearContents
Range(Dest).Resize(BInd, 2) = Application.WorksheetFunction.Transpose(bArr)
End Sub

Le righe marcate <<< vanno personalizzate come da commenti.

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 25/05/20 17:03

Grazie Anthony , solo ho qualche problema spiego: siccome il file è pieno zeppo di formule molte delle quali sono poste al disotto delle colonne che vanno esaminate, tanto è vero che pur avendo cambiato i riferimenti la macro mi si bloccava così ho capito che avarei dovuto spostare le righe sottostanti "I 2307:AG2307" ma così facendo è cominciato ad essere lento perchè ogni volta che con un controllo cambio ruota si mette aricalcolare cosa che prima con delle formule sottostanti "I 2307:AG2307" non faceva cosi se si può fare si tenga presente che comunque le righe da isaminare terminano sempre alla rirga 2307.Questa prima osservazione penso sia cosa che si possa fare in modo che rimetta tutto come prima sotto la riga 2307 nella speranza che riprenda ad essere veloce.
La seconda e ultima :oops: osservazione vedo che l'ambo con 0 presenze non lo rileva !! e questo è molto importante,anche se mi rendo conto che potrebbe comportare una nuova concezione della sub .......ma non mi posso certo lamentare :)
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 26/05/20 00:38

Avevi presentato un esempio con 5 righe di estrazioni, cioe' 50 ambi in tutto; in questa circostanza davo per scontato che quelli non usciti era meglio ignorarli, visto che sarebbero stati la gran maggioranza...
Per prenderli invece in considerazione dobbiamo modificare leggermente il primo e il secondo ciclo For I /Next I che diventano:
Codice: Seleziona tutto
For I = 1 To LastX
    For J = 1 To 4
        For K = J + 1 To 5
            XX = wArr(I, J)
            YY = wArr(I, K)
            If YY < XX Then
                ZZ = XX
                XX = YY
                YY = ZZ
            End If
            AArr(XX, YY) = AArr(XX, YY) + 1
        Next K
    Next J
Next I
For I = 1 To UBound(AArr)
    For J = I + 1 To UBound(AArr, 2)
'        If AArr(I, J) >= 0 Then
            BInd = BInd + 1
            bArr(1, BInd) = "'" & Format(I, "00") & "-" & Format(J, "00")
            bArr(2, BInd) = AArr(I, J)
'        End If
    Next J
Next I


Se poi c'e' un problema legato "all'accatastamento" di piu' tabelle dati, allora si puo' cambiare il metodo di calcolo di LastX:
eliminare l'attuale LastX = Cells(Rows.Count, Range(Dati0).Column).End(xlUp).Row - Range(Dati0).Row + 1 e sostituirla con
Codice: Seleziona tutto
LastX = Range(Dati0).End(xlDown).Row - Range(Dati0).Row + 1


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

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 26/05/20 15:13

non riesco a ritrovaew una bozza fatta alle 13 ,come fare la bozza era salvata...
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 26/05/20 15:52

Se hai salvato una Bozza, usa il "Pannello di controllo utente" (ucp.php)
Sul tab Panoramica trovi "Gestione bozze"

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

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 26/05/20 18:02

Anthony47 ha scritto:Se hai salvato una Bozza, usa il "Pannello di controllo utente" (ucp.php)
Sul tab Panoramica trovi "Gestione bozze"

Ciao

Sono convinto di aver salvato alle 13 circa ma ho visto la gestione bozze e mi dice che non ho nessuna bozza salvata --pazienza!! :cry: :cry: Mi tocca riscrivere :Volevo ringraziare per la tua ultima sistemazione della macro e confermare che adesso è tornato tutto apposto.
Nella bozza chiedevo un ulteriore favore invece di analizzare cioè estrarre gli ambi nei primi 5 estratti glii ambi su 10 estratti.
Necessita una premessa: Quelli che ho chiamato per semplicità degli estratti in realtà sono degli "ADATTATORI" .... spiego con un esempio reale Poniamo ilcaso che volessi giocare su bari il più numero + ritardato vedo che so su televideo e mi da il num x con tot estrazioni di ritardo che giudico poco interessante.Posso fare di meglio? nel lotto non esiste di meglio esiste solo il caso la fortuna forse l'intuito a me piace far così:
poniamo il caso volessi giocare su Bari queste di seguito sono le ultime due estrazioni Reali di Bari
83 54 2 55 33
74 84 56 90 38 81 1 63 7 45 20 30 2 36 74
Diciamo che i primi 5 adattatori (in rosso) sono gli adattatori del primo di bari per ottenere i cinque futuri estratti di bari
infatti 83+81=74 ;83+1=84 ;83+63=56;83+7=90; 83+45=38 (ovvio con il fuori 90 )
Analogalmente procediamo con i seconti 5 adattatori (in verde sono gli adattatori del secondo di bari per ottenere i cinque futuri estratti di bari
infatti 54+20=74 ;54+30=84 ;54+2=56;54+36=90; 54+74=38 (ovvio con il fuori 90 )
stesso sistema per il terzo estratto ecc.
come giocare? .... uno dei modi se nelle prime 5 colonne del primo di bari troviamo che il 23 ritarda 180 estrazioni e ci pare interessante giocheremo 74 (ultimo primo estratto di bari)+23 = 7 sperando che finalmente uscirà il
primo di bari + 23 :D
Tornando a noi mi si può modificare la macro analizzando non 5 ma 10 colonne attenzione non ricavando 45 ambi ma 36 infatti sia pimo della 1^ cinquina che il primo della seconda cinquina oterrebbero addizionati a i rispettivi 1° e 2° lo stesso numero e cosi il econdo con il secondo ecc.
Tutto questo artifizio mi permetterebbe di scandagliare almeno un terzo di estrazioni di quelle che adesso si riescono a vedere.
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 27/05/20 11:18

Non provare a spiegarmi la differenza tra Estratti e Adattatori, non lo voglio ne' sapere ne' imparare :D :D

Pubblica invece un file esemplificativo o gia' con i numeri giusti oppure con i numeri di partenza, i criteri di estrazione dei numeri da elaborare, e la descrizione di quali elaborazioni eseguire

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

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 27/05/20 18:17

Semplifichiamo. Ho trovato un tua risposta a Statix del 2008 per trovare il numero deli ambi come chiedevo il 23 /5/
Codice: Seleziona tutto
Function Ambernoforig(VA, VB, VC)
Dim I As Integer: Dim J As Integer: Dim K As Integer
Ambernof = 1
For I = 1 To 90
For J = 1 + I To 90
For K = 1 + J To 90                  'TERNO
If J = I Or K = I Or K = J Then GoTo skip:    '<<< TERNO/Ambo
If I >= VA And J >= VB And K >= VC Then Exit Function    '<<<TERNO/-Ambo
Ambernof = Ambernof + 1
skip:
Next K
Next J
Next I
End Function

Questa function trova anche il numero di terni perciò l' adattata agli ambi così:
Codice: Seleziona tutto
Function Ambernof(VA, VB)
Dim I As Integer: Dim J As Integer

Ambernof = 1
For I = 1 To 90
For J = 1 + I To 90
'For K = 1 + J To 90                  'TERNO
If J = I Then GoTo skip:  '<<< TERNO/Ambo
If I >= VA And J >= VB Then Exit Function    '<<<TERNO/-Ambo
Ambernof = Ambernof + 1
skip:
'Next K
Next J
Next I
End Function

funge a quello che mi serviva ma non riesco a fargli fare la stessa cosa quando il secondo numero è + grande del primo , in sostanza l'ambo 1 e 2 e lambo 2 e 1 mi deve dare sempre il risultato 1 così come 89 e 90 o 90 e 89 mi dovrebbe dare sempre 4005 un piccolo sforzo ..... :-?
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23

Re: Contare e Ordinare gli Ambo

Postdi Anthony47 » 28/05/20 01:25

Una macro elabora un set di dati per produrre un certo risultato; nel caso "semplificato" che mi proponi non conosco il tipo di dati di origine e, cosi' al volo, non capisco nemmeno cosa produce.
Quindi questa e' domanda che dovresti fare sul forum de LoStregone.it

Cosi' a naso immagino che lavorino su delle estrazioni del lotto che in genere sono presentate per numeri crescenti, mentre tu parli di sequenza fuori standard (esempio di 1-2 e 2-1)
Deduco quindi che dovresti mettere in ordine nei dati che sono coinvolti; con un margine di confidenza del 3.14% mi vien da pensare che siano VA e VB (di cui ignoro tutto) da mettere in ordine; cosa che potresti ottenere ad esempio con
Codice: Seleziona tutto
If VA > VB Then
    zzA = VA
    VA = VB
    VB = zzA
End If
Da posizionare in testa alle Function, subito dopo le varie Dim

Se con questo spunto non risolvi allora non e' che l'hai proprio semplificata la cosa.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Contare e Ordinare gli Ambo

Postdi papiriof » 28/05/20 06:53

Si si , ci siamo !!! Ti ringrazio per la pazienza che hai avuto :) :)
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 392
Iscritto il: 16/02/10 13:23


Torna a Applicazioni Office Windows


Topic correlati a "Contare e Ordinare gli Ambo":


Chi c’è in linea

Visitano il forum: Nessuno e 82 ospiti