Ricerca dentro le righe

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
gattodimarmo1980
00domenica 17 luglio 2016 19:02
Trovare gli stessi numeri (se ci sono)in un intervallo di righe
  Buona Domenica a tutti. Allego il file ricerca.xls. Il foglio come vedete è composto da 18 righe, ogni riga è composta da 8 numeri. Come esempio ho evidenziato in giallo i tre ambi uguali per ogni riga ,in verde i tre ambi uguali per ogni riga ,in rosso i due ambi uguali che ci sono nel foglio .Vorrei che se ci sono ambi terni quaterne cinquine identiche vengono riportate nel foglio2 in automatico con macro con il numero di volte .HO fatto io in manuale il foglio2 guardatelo .Grazie anticipatamente Matteo.[SM=x423024][SM=x423024]
gattodimarmo1980
00lunedì 18 luglio 2016 18:11
gattodimarmo1980
00lunedì 18 luglio 2016 18:13
gattodimarmo1980
00lunedì 18 luglio 2016 18:26
Buongiorno a tutti i membri del forum.Come vedete nella foto che ho caricato ho sottolineato con i colori gli ambi uguali presenti
dalla riga 1 alla riga 18.Arriviamo al dunque.L ambo colorato in arancione è l ambo 84 43.Ora devo colorare l ambo 43 69 in riga 1
e in riga 6;ma se per il 43 ho usato l arancione adesso come faccio a colorare questo ambo?In pratica devo riportare nel foglio 2 gli ambi terni
quaterne uguali ......  
GiuseppeMN
10domenica 24 luglio 2016 07:48
Buona giornata, Gattodimarmo;
leggo solo ora, e, cerco di risponderti alla Tua Richiesta.

Nel file in allegato, ho modificato la struttura del Foglio di lavoro "Foglio2" dedicando una Cella ad ogni numero da valutare.
Non ho modificato i colori di fondo delle celle in Foglio di lavoro "Foglio1"; anche se Excel 2003 gestisce solo tre serie di numeri, potresti provare con Formattazione condizionale.

Option Explicit

Sub Analizza()
Application.ScreenUpdating = False
Dim Rcr As Byte, x As Byte, y As Byte, z As Byte, k As Byte
Dim Vlr1 As Byte, Vlr2 As Byte
Dim Cnt() As Byte
Dim Mbb As Long
Const Rgg As Byte = 18
Const Cln As Byte = 8
    
    With Worksheets("Foglio2")
    .Select
        Mbb = .Range("B" & .Rows.Count).End(xlUp).Row
            Range(Cells(2, 1), Cells(Mbb, 1)).ClearContents
ReDim Cnt(Mbb + 10)
    Sheets("Foglio1").Select
        For x = 2 To Mbb
            Vlr1 = .Cells(x, 2)
            Vlr2 = .Cells(x, 3)
            For y = 1 To Rgg
                For z = 1 To Cln
                    If Cells(y, z) = Vlr1 Then
                        For k = 1 To Cln
                            If Cells(y, k) = Vlr2 Then
                                Cnt(x - 1) = Cnt(x - 1) + 1
                                    Exit For
                            End If
                        Next k
                    End If
                Next z
            Next y
        Next x
    .Select
        For x = 2 To Mbb
            Cells(x, 1) = Cnt(x - 1)
        Next x
    End With
Application.ScreenUpdating = True
End Sub

Le Variabili sono strutturate per questa Tua Richiesta; aumentando il numero di "ambi" da valutare dovranno essere definite in modo appropriato ("Integer" o "Long").


A disposizione.

Buon Lavoro e buona serata.

Giuseppe
dodo47
01domenica 24 luglio 2016 10:59
Ciao
solo per curiosità, ci sarà pure un'estrazione da confrontare da qualche parte, altrimenti come si fa a sapere (per esempio) che l'ambo è 31 e 15, oppure il terno è 15-21-44 ecc ecc?

saluti
ninai
01domenica 24 luglio 2016 11:21
ciao
Domenico, per come ho capito io, è "tutti contro tutti". Infatti, come dicevo in privato, è molto ricco di combinazioni possibili, in ogni caso, con le formule, neanche mi avvicino.
gattodimarmo1980
00domenica 24 luglio 2016 12:45
Passaggio finale
Innanzitutto grazie e complimenti a Giuseppe MN per la macro risolta correttamente.Per Ninai e Domenico;Il gioco del lotto con 90 numeri forma 4005 ambi vedi allegato sviluppo ricorrenze ambo.xls.Ora per vedere solo le mie combinazioni che mi interessano cioè quelle delle 18 righe devo eliminare tutte le ricorrenze non trovate  con la macro di Giuseppe (quelle trovate per 0 volte).Per il terno ci pensiamo dopo perchè la cosa e molto ma molto piu complicata.Buona domenica a tutti  
ninai
10domenica 24 luglio 2016 13:28
Innanzi tutto un saluto a Giuseppe (ci sentiamo raramente)

comunque se circoscriviamo la faccenda agli ambi, un approccio con formule mi porta molte più combinazioni di ambi: (122)
allego file, con formule e colonne appoggio (risultati in S e T).

https://www.dropbox.com/s/mew6nelytub63ev/ambi%20ninai.xls?dl=0

dodo47
00lunedì 25 luglio 2016 10:47
@gattodimarmo (ciao)

perdona la cocciutaggine, sai come sono quelli anziani...apprendono con ritardo...

Si parla di Lotto, quindi ci sono n estrazioni e n giocate.

La tua tabella sono le giocate, le estrazioni  o che altro ?

La mia è semplice curiosità ripeto. Non voglio entrare nei metodi adottati nel gioco (anche perchè non ho mai giocato).

Mi piacerebbe semplicemente "capire" come gira il tutto, in quanto fino ad adesso (personalmente) ho capito ben poco  

grazie
saluti
GiuseppeMN
00lunedì 25 luglio 2016 16:47
Buon pomeriggio, Domenico.

@ dodo47, scrive:


... perdona la cocciutaggine, sai come sono quelli anziani...apprendono con ritardo...


Un caro saluto, Domenico; condivido e, visto che siamo praticamente ... coetanei ... consentimi di parteciparti quello che sono riuscito ad interpretare.

Premesso che la mia conoscenza del gioco del lotto, su una scala da 1 a 100 è uguale a 0 (zero), sono partito dal File proposto in #1:
-    Foglio1        tabella con 18 "Ruote" (Righe), 8 estrazioni (Colonne)
-    Foglio2        ambi da cercare (Colonna "A"), risultati della ricerca (Colonna "B")
Ora, considerando che sono estemamente "pigro" invece di scomporre i valori presenti in Colonna "A" del Foglio2, ho deciso di modificare la struttura del Foglio portando i risultati della ricerca in Colonna "A" e attribuendo ad ogni numero una specifica Cella.

Questo in previsione che si debbano cercare combinazioni più ipegnative come:
-    Terni
-    Quaterne
-    Cinquine

Fatto ciò ho apllicato il Codice VBA che analizza le estrazioni di ogni "Ruota"; nel momento in cui vengono soddisfatte entrambe le condizioni della ricerca, un contatore viene incrementato di una unità; questi valori vengono memorizzati in una matrice.
Alla fine di tutto ciò, i valori contenuti nella matrice vengono riportati, in modo ordinato nelle Celle in Colonna "A" del Foglio2.

Ovviamente il codice può risultare più "leggero" evitando di utilizzare la matrice, riportando il risultato della ricerca direttamente nella rispettiva Cella del Foglio2.
Questo, probabilmente, avrebbe complicato la comprensione del Codice VBA. Questa considerazione spiega la mia scelta.

@ ninai, scrive:

Innanzi tutto un saluto a Giuseppe (ci sentiamo raramente)


Un caro saluto anche a Te; ci sentiamo raramente, in quanto non gradisco sovrappormi a risposte già molto esaustive.
Quando accade è per disattenzione; nel qual caso cerco di scusarmi.



A disposizione.

Buona serata.

Giuseppe
dodo47
10lunedì 25 luglio 2016 17:05
Ciao caro Giuseppe

la struttura del tuo codice è chiarissima.

Mi sfugge lo scopo complessivo del lavoro, cioè "terra terra" ho questo e vorrei quest'altro.

saluti

gattodimarmo1980
00lunedì 25 luglio 2016 21:07
Spiegazione per Dodo
Ciao Dodo, siccome io gioco sempre gli stessi numeri al 10 e lotto  e non al lotto volevo solo vedere quelli già usciti nelle 'ultime 18 estrazioni a partire dall 'orario in cui sono disponibile non inserendo pero tutti i 20 numeri ma solo i miei.Vedi foto qua.In modo che se un ambo è appena uscito io non lo gioco.(Dopo può ovviameente può uscire lo stesso).Buona serata a tutti i miei amici.  
dodo47
00giovedì 28 luglio 2016 17:29
Ciao
non so se può tornarti utile. L'allegato evidenzia e trascrive gli eventuali ambi, terni ecc a fianco di ogni estrazione.

In riga 7, a partiore da col. B, inserisci i numeri da te giocati (max 10)

A partitre da B15 in giù (max 20 estrazioni) inserisci le estrazioni (sempre max 20 x riga).

Verranno colorati i numeri corrispondenti ed a fianco alle estrazioni, vengono riportate le combinazioni possibili corripondenti alla giocata.

E' un vecchio lavoro riadattato e un po' raffazzonato (ma tant'è) e ci sta che ci siano errori (non c'è nessun controllo a parte il numero dei numeri giocati ed il numero delle estrazioni.
La function delle combinazioni l'ho presa da qualche parte ma non ricordo dove.

In B1 e B2 ci sono due formulette che vengono passate alla macro.

Vedi tu

saluti

EDIT: ho messo formato testo nelle colonne da W in poi perchè qualche combinazione potrebbe essere considerata da excel una data per via del "-" che ho utilizzato come separatore; altrimenti cambialo. Ovviamente in quelle colonne, per via del formato testo eventuali formule non funzionano.
In calce al foglio è riportata una parte del triangolo di Tartaglia che mi è servita per controllare se il numero delle combinazioni scritte era corretto: puoi eliminarlo.

Ho riallegato il file in quanto quello precedente aveva un errore sul numero delle giocate (con 10 numeri dava errore)


C'E' COMUNQUE UN ERRORE. VEDO SE RIESCO A SUPERARLO E POI ALLEGO NUOVAMENTE IL FILE. SORRY


dodo47
00giovedì 28 luglio 2016 19:15
Ciao
e scusate

riallego il file (spero) corretto.

@gattodimarmo
tuo msg in chat: ..."non funziona...vedi...." non so come vedere il tuo file manager..

A parte questo, "non funziona" è un po' vago.

(Nota: ovviamente tanto i giocati quanto le singole estrazioni devono contenere numeri univoci)

saluti
gattodimarmo1980
00giovedì 28 luglio 2016 20:34
  Ciao Dodo ,quando lancio la tua macro mi esce questo errore (prima foto) allegata,in debug questo (seconda foto) allegata.Ciao Matteo .
alfrimpa
00giovedì 28 luglio 2016 21:39
Al posto del punto ci devono essere i due punti.
dodo47
00venerdì 29 luglio 2016 10:21

Ciao
non so quale file tu abbia scaricato e sicuramente ci sarà quel refuso del "."
Come detto quello corretto è al post #15.

(grazie comunque alfredo)  

saluti

Edit: come accennato in precedenza, la Sub GenerateCombinations non è farina del mio sacco. Dopo un po' di ricerche sono risalito a chi nel 2012 l'ha prodotta in un post di StackOverflow: "Tony Dallimore". Per corretteza prego chi utilizza tale macro di inserire il nominativo in tale sub.

Grazie

XX
gattodimarmo1980
00venerdì 29 luglio 2016 18:54
Ciao Alfredo ,Ciao Dodo,Ciao Giuseppe mn, Ciao a tutti.Anche cambiando il . con i : la macro non funziona.Vedi prima foto allegata.Per dodo,il file
scaricato del post numero 15 da questo errore.Vedi seconda foto allegata.  
dodo47
10venerdì 29 luglio 2016 19:40

Ciao


...la macro non funziona...

La macro funziona benissimo, MA....evidentemente hai una versione di excel inferiore alla 2007 e successive.
Pertanto hai a disposizione solo 256 colonne.
Quindi correggi XFD34 con IV34. Cosa che avresi potuto fare in autonomia visto che il messaggio di errore è chiaro.

Pertanto devi correggere anche : Range("W15:W34,Y:XFD").ClearContents, con IV.

Con questa correzione però il programma ti darà errore nel caso i numeri estratti uguali a quelli giocati siano superiori a 7.
Infatti con 7 numeri presi, le combinazioni sono 120, mentre con 8 numeri presi le combinazioni sarebbero 247. Tale numero sommato alle colonne di utilizzo (dalla A alla W) supera le 256.

E' pur vero che avrei potuto inserire un controllo sul numero delle colonne disponibile e pertanto bloccare il programma in caso di combinazioni vincenti superiore al consentito, ma siccome "sono pigro" non l'ho fatto  

Per poter arrivare a 8 numeri presi, potresti variare la macro e scrivere il risultato in un altro foglio a partire dalla colonna A.

Per poter superare il limite, o passi a excel 2007 (o successivi) altrimenti dovresti sviluppare i risultati in verticale, ma è cosa complessa e poco conveniente.

saluti



gattodimarmo1980
00venerdì 29 luglio 2016 20:34
Ricerca dentro le righe2 (Solo per utenti esperti) .Ripeto solo esperti
Buona sera a tutti.Allego foto e macro ricercadentrolerighe2.xls.Le macro all'interno della cartella di lavoro sono stata fatta da Giuseppe Mn per primo,Sal,Ninai e Dodo47.In pratica dopo aver lanciato la macro analizza nel foglio2 vengono riportate le ricorrenze trovate.Nel foglio3 dopo aver lanciato la macro chiamata macrocancellaricorrenzeo bisogna ordinare in modo decrescente le colonne.Ora se torniamo alla tabella del foglio1 vedete che in viola e in azzurrino ho trovato i terni uguali e in giallo il terno e quaterna uguali.Mi serve di riportare con macro nel foglio4,questi
terni quaterne  uguali in pratica e la continuazione della discussione ricerca dentro le righe .Grazie anticipatamente Matteo.  
dodo47
01sabato 30 luglio 2016 09:59
Ciao
"personalmente" mi tiro fuori dalla discussione. La mia macro fa quanto ho esposto cioè data una seire di numeri controlla se nelle n estrazioni ci sono corrispondenze e, in caso positivo, elenca le varie combinazioni di ambi, terni, quaterne, ecc ecc.

saluti


EDIT:

Ricerca dentro le righe2 (Solo per utenti esperti) .Ripeto solo esperti



Non avevo fatto caso a questa scritta che a mio avviso ritengo "offensiva" per tutta la comunità.
Naturalmente è un mio personale punto di vista.

saluti
gattodimarmo1980
00sabato 30 luglio 2016 13:02
Chiarimento per Dodo
  L'excel è uno dei progammi piu difficili al mondo.Io non volevo offendere nessuno,volevo solo dire che ci sono discussioni facili e discussioni difficilissime. Io Stavo solo scherzando . Io nel forum ho una stella ,tu hai sette stelle,volevo solo dire che io non riuscirò mai a risolvere discussioni
che per te sono facilissime (utente esperto) e per me sono impossibili (utento meno esperto).Comunque  chiedo scusa a tutti.Buon sabato Matteo.
GiuseppeMN
00martedì 2 agosto 2016 08:02
Buona giornata, a Tutti;
assumendo che la frase sia stata scritta in buona fede senza voler offendere nessuno, pur non ritenendomi un "Utente esperto", ho cercato di pensare ad una Procedura in grado di soddisfare la richiesta di @ gattodimarmo.

Premetto che, a mio modesto parere la Procedura è proponibile per un numero di combinazioni molto limitato, diciamo una decina, il risultato sarebbe una cosa di questo genere (vedi immagine allegata).

Cerco di spiegarmi; la Procedura, più che un Codice VBA è diventata "un lenzuolo", nell'ipotesi proposta procede in questo modo:

-    Quante volte e in quali righe è presente il numero 55
-    Quante volte e in quali righe è presente la combinazione dei numeri 60 e 1
-    Quante volte e in quali righe è presente la combinazione dei numeri 60, 1 e 4

Ovviamente si può pensare di analizzare quaterne e cinquine, se mai sarò riuscito a "normalizzare" la procedura, sarà mia premura proporla in Forum; magari nella Richiesta:
http://www.freeforumzone.com/d/11295589/Trovare-altre-corrispondenze-per-excel-2003/discussione.aspx

Attualmente ho utilizzato:
-    Select Case        Case1,    Case2 e Case3


A disposizione.

Giuseppe
GiuseppeMN
00giovedì 4 agosto 2016 19:05
Buona sera, a Tutti;
ho cercato di rendere la procedura flessibile.

Voglio dire, inserendo in Foglio2 le combinazioni da verificare, dovremmo ottenere:
- Quante volte e in quali righe è presente ogni combinazione

Non è molto professionale, ma, sembra funzionare; mi affido alla Vostra clemenza.
Option Explicit

Sub Analizza_Tutti()
Application.ScreenUpdating = False
Dim Mbb As Long, ClnX As Long, x As Long, Prv As Long
Dim Nrg As Byte, NrX As Byte, Rsl As Byte, y As Byte, z As Byte, k As Byte, PCl As Byte
Dim Vlr() As Byte
Dim ROk()
Dim Cnt()
Const Rgh As Long = 26
Const Cln As Long = 12

ReDim Vlr(Rgh)
ReDim ROk(Rgh, 1)

    Sheets("Foglio1").Select
    With Worksheets("Foglio2")
    .Select
        Mbb = .Range("C" & .Rows.Count).End(xlUp).Row
            Range(Cells(1, 1), Cells(Mbb, 2)).ClearContents
ReDim Cnt(Mbb + 1, 2)
    Sheets("Foglio1").Select
        For x = 1 To Mbb
            ClnX = .Cells(x, Columns.Count).End(xlToLeft).Column
                Rsl = 0
            Nrg = 0
            PCl = 3
            Cnt(x, 2) = ""
                Vlr(1) = .Cells(x, PCl)
                For y = 1 To Rgh
                    Cells(y, 1).Select
                    For z = 1 To Cln
                        Cells(y, z).Select
                            If Cells(y, z) = Vlr(1) Then
                                Nrg = Nrg + 1
                                ROk(Nrg, 1) = y
                                Exit For
                            End If
                    Next z
                Next y
                NrX = Nrg
                Nrg = 0
                PCl = PCl + 1
    For Prv = 2 To ClnX - 1
        Cnt(x, 2) = ""
                    Vlr(Prv) = .Cells(x, Prv + 1)
                For y = 1 To NrX
                    For z = 1 To Cln
                        Cells(ROk(y, 1), z).Select
                                If Cells(ROk(y, 1), z) = Vlr(Prv) Then
                                    Nrg = Nrg + 1
                                    k = ActiveCell.Row
                                    ROk(Nrg, 1) = k
                                        Cnt(x, 2) = Cnt(x, 2) & k & ", "
                                            Exit For
                                End If
                            NrX = Nrg
                        Next z
                    Next y
                        NrX = Nrg
                        Nrg = 0
                Next Prv
                        Cnt(x, 1) = NrX
            If Cnt(x, 1) <> 0 Then
                .Cells(x, 1) = Cnt(x, 1)
                .Cells(x, 2) = "Righe: " & Left(Cnt(x, 2), Len(Cnt(x, 2)) - 2)
            End If
        Next x
    Cells(1, 1).Select
Fine:
    .Select
            Columns("A:B").EntireColumn.AutoFit
    End With
Application.ScreenUpdating = True
    Cells(1, 1).Select
End Sub

Come promesso la propongo anche in:
http://www.freeforumzone.com/d/11295589/Trovare-altre-corrispondenze-per-excel-2003/discussione.aspx

La procedura è stata sviluppata con Excel 2013; dovrebbe funzionare anche con Excel 2003 e Excel 2007



A disposizione.

Buona serata.

Giuseppe

Edit:
- modifica Versione da Excel 2007 a Excel 2003 e Excel 2007
- la Variabile k può essere eliminata
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 01:00.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com