Condividi:        

[Excel 2010] Individuare dati Univoci provenienti da 2 Fonti

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 2010] Individuare dati Univoci provenienti da 2 Fonti

Postdi rosseaux » 13/07/12 18:44

Salve a Tutti !!!

Anche stavolta sono mancato un po' da queste parti...ma ora rieccomi quà....a chiedere il vostro aiuto con questa richiesta.....e con un'altra che posterò in un nuovo Topic perchè è differente la richiesta.... ;0)

Vi allego subito il File che chiaramente contiene dati fittizi...!!!

[url=https://rapidshare.com/files/766539662/Univocità.xlsx]Eccolo Quì !![/url]

Allora il problema alla base può sembrare banale...

a me servirebbe una macro che confronta il testo in rosso (seconda Fonte)....con quello in nero (Prima Fonte).....e solo i dati univoci del testo in rosso riportarmeli in un'altra colonna...o in un altro foglio....dove volete voi....basta che riesco ad avere una lista di quali sono i dati Univoci in Rosso...ovvero quelli che non sono contenuti nella lista scritta in nero...e possibilmente in ordine alfabetico....

Vi dico perchè non è fattibile con escamotage di formattazioni condizionali e nè tantomeno con Filtri Avanzati...

perchè come quantità di dati del Foglio Originale ho la bellezza di "1.007.508" Righe tra Scritte in Nero e Scritte in Rosso....e nel fare varie prove finiva sempre in Crash il Povero Excel !!!

Potete Aiutarmi ??? ;0)
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Sponsor
 

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 13/07/12 19:56

i rossi e i neri devono stare nella stessa colonna ? non puoi tenerli in 2 colonne diverse ?
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 13/07/12 20:07

si si....li posso tenere anche in 2 colonne diverse....però il confronto mi serve sempre tra i rossi e i neri..non solo tra rossi...o solo tra neri....cioè mi interessa sapere nell'insieme tra rossi e neri....quali dati dei rossi sono univoci anche in confronto ai neri...

non so se mi sono spiegato bene... ;0)
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 13/07/12 20:23

prova questa macro adattando i range al tuo caso (rossi nella colonna B e neri in A)
Codice: Seleziona tutto
Sub diversi()
Dim i, j As Long
Dim confronta As Variant
j = 3 ' riga inizio elenco diversi
For i = 3 To 50
confronta = Application.Match(Range("b" & i), Range("A3:A50"), 0)
    If IsError(confronta) Then
        Range("c" & j) = Range("b" & i)
        j = j + 1
    End If
Next i
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 13/07/12 20:56

Grazie Patel !!

Ho provato come hai detto tu ma con i range che servono a me...e dopo 5 minuti che elabora ma forse anche prima si blocca...

ho scritto così..

Codice: Seleziona tutto
Sub diversi()
Dim i, j As Long
Dim confronta As Variant
j = 2 ' riga inizio elenco diversi
For i = 2 To 762283
confronta = Application.Match(Range("b" & i), Range("A2:A762283"), 0)
    If IsError(confronta) Then
        Range("c" & j) = Range("b" & i)
        j = j + 1
    End If
Next i
End Sub


Forse ho sbagliato qualcosa...
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi Flash30005 » 14/07/12 02:37

Prova questa macro
Codice: Seleziona tutto
Sub TrovaRossiUni()
Application.ScreenUpdating = False
Application.Calculation = xlManual
URR = 1
Columns("D:D").Clear
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RRR = 2 To UR
Tr = 0
    If Range("A" & RRR).Font.ColorIndex = 3 Then
        TextR = Range("A" & RRR).Value
        For RRT = 2 To UR
            If Range("A" & RRT) = TextR Then
            Tr = Tr + 1
            If Tr > 1 Then GoTo SaltaRRR
            End If
        Next RRT
        URR = Worksheets("Foglio1").Range("D" & Rows.Count).End(xlUp).Row + 1
        Range("D" & URR).Value = TextR
    End If
SaltaRRR:
Next RRR

    Range("D2:D" & URR).Select
    Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Selection.Font.ColorIndex = 3
[D1].Select

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
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 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 15/07/12 09:51

Grazie Flash anche per la Tua Macro...

Ma ho 2 domande da farti...devo dividere i dati in 2 colonne come mi ha detto Patel....oppure li devo lasciare sulla stessa colonna...???

Poi sto provando a fare l'elaborazione...

Ho windows 7 Ultimate a 64 bit e Excel 2010 a 32 bit....mi dice dopo neanche 30 secondi...(Non Risponde)....io non sò se è vero che si è bloccato....

più o meno quanto dovrebbe impiegare di tempo per Confrontare "1.007.508" Righe ??? ;0)
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 10:01

la macro di flash funziona (con poche righe) con i dati sulla stessa colonna, il problema sono i troppi dati.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 15/07/12 10:13

....e quindi quale sarebbe un buon modo per riuscire con la enorme quantità di dati che ho io ???
magari anche trasportandoli in Access ??
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 10:33

sempre tenendo i dati in 2 colonne prova questa
Codice: Seleziona tutto
Sub diversi2()
'    Application.ScreenUpdating = False
'    Application.Calculation = xlManual
    URA = Range("A" & Rows.Count).End(xlUp).Row
    URB = Range("B" & Rows.Count).End(xlUp).Row
    rigainizio = 3
    tr=rigainizio
    For rigaB = rigainizio To URB
       For rigaA = rigainizio To URA
          If Range("A" & rigaA).Value = Range("B" & rigaB).Value Then
            trovato = 1
            Exit For
          Else
            trovato = 0
          End If
        Next
        If trovato = 0 Then
           Range("C" & tr).Value = Range("B" & rigaB)
           tr = tr + 1
        End If
    Next
 End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 15/07/12 11:17

di nuovo si blocca senza concludere niente...

Facciamo così....vi posto il file Originale....così magari lavorando anche voi con la quantità di dati Mia....potreste trovarvi meglio...

tanto non ci sono nomi di nessuno...sono solamente parole...

Ecco quà !!!

Comunque Grazie per l'Aiuto datomi finora !!! ;0)
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi Flash30005 » 15/07/12 12:39

Puoi inserire una formula in C2
Codice: Seleziona tutto
=CONTA.se(A$2:A$770000;B2)

Cliccare due volte sul quadratino in basso a destra della cella per far fare la copia fino all'ultima riga della colonna B
Poi con Un ciclo For next (macro precedente modificata)
Codice: Seleziona tutto
Sub TrovaRossiUni()
Application.ScreenUpdating = False
Application.Calculation = xlManual
URR = 1
Columns("E:E").Clear
UR = Worksheets("Foglio1").Range("B" & Rows.Count).End(xlUp).Row
For RRR = 2 To UR
    If Range("C" & RRR).Value = 0 Then
        URR = Worksheets("Foglio1").Range("E" & Rows.Count).End(xlUp).Row + 1
        Range("E" & URR).Value = Range("B" & RRR).Value   
    End If
Next RRR

    Range("E2:E" & URR).Select
    Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Selection.Font.ColorIndex = 3
[E1].Select

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
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 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 12:42

rosseaux ha scritto:Facciamo così....vi posto il file Originale....così magari lavorando anche voi con la quantità di dati Mia....potreste trovarvi meglio...

vuoi scherzare, non credo sia facile trovare un masochista che abbia voglia di processare un file da 1 milione di righe
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 14:17

Comunque ci ho provato e a me funziona, ovviamente ci vuole tempo, prova con questa modifica
For rigaB = rigainizio To 10
se non ti funziona forse hai poca ram, il mio pc ne ha 1.5 Gb.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi rosseaux » 15/07/12 17:29

OK Ok !!! allora...

ho provato come dice flash....ma fa Paura.....cioè minimo ci vogliono 15 ore di elaborazione quando applico la formula e premo F9 per farla elaborare....

senza contare che ho la cpu che va al 100 % e dopo circa 2 ore mi andava a 79°...Pauuuraaa...Quindi chiudevo Excel nella maniera più Brutale...ovvero dal Taskmanager..

Poi ho provato come dice Patel...e mi inserisce solo 10 risultati....fino alla riga 10...

Io ho un Processore Intel i7 3,05 Ghz.....e 4 Gb di RAM...

non credo sia poi così scarso come Pc il Mio....

però Boh...

Sembra strano che ci debba metetre un'eternità....se poi, provando ad esempio a usare la formattazione condizionale....illuminando i valori univoci di Scritte rosse e nere sulla stessa colonna....fa presto a indicarmi quali sono univoci..

solo che poi come fare per dire a excel di mettermi ad esempio nella colonna C i Valori illuminati di Blue (uso quel colore per colorare la cella)..e scritti in rosso ... ????
rosseaux
Utente Senior
 
Post: 151
Iscritto il: 06/01/07 14:11
Località: Alfonsine (RA)

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 19:17

rosseaux ha scritto:Poi ho provato come dice Patel...e mi inserisce solo 10 risultati....fino alla riga 10...
era solo per dimostrare che funziona
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi Flash30005 » 15/07/12 19:37

Il problema grosso non è la formula o la macro ma excel 2007/2010
Sono convinto che lo stesso lavoro con excel 2003 si risolverebbe in un tempo più ragionevole
ma bisognerebbe distribuire i dati su più colonne o più fogli per la limitazione di righe che ha excel 2003.

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 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 15/07/12 20:04

oppure utilizzare altri linguaggi di programmazione lavorando direttamente su 2 file di testo senza usare Office.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel 2010] Individuare dati Univoci provenienti da 2 F

Postdi Flash30005 » 15/07/12 23:39

:roll:
No, perché!?
Utilizzando altri applicativi di office, ad esempio access che gestisce meglio un milione di record
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 2010] Individuare dati Univoci provenienti da 2 F

Postdi patel » 16/07/12 06:08

il perché è semplice, ho provato ad estrarre i file di testo e da Linux col comando diff mi ci sono voluti 2 secondi per ottenere il risultato.
Ho notato che la colonna dei rossi contiene parole con uno spazio davanti, sarebbe meglio fornire i file di testo originali e provvederò a allegare il file con le differenze
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel 2010] Individuare dati Univoci provenienti da 2 Fonti":


Chi c’è in linea

Visitano il forum: Nessuno e 56 ospiti