Condividi:        

Confronto valori celle uguali su due colonne

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

Confronto valori celle uguali su due colonne

Postdi Ricky0185 » 06/02/26 13:35

Buongiorno, piccolo favore: nel file allegato ho due colonne di cui vorrei evidenziare (con colore) con macro nella colonna C le celle con valore uguale a quelle della colonna D. Nel web ci sono molti suggerimenti, anche con formule e con macro. ma con nessuna
grande favore (se possibile): si riesce ad allineare sulla stessa riga i valori uguali sia della colonna C che della D.
In ambedue le colonne non ci sono celle vuote e ne unite.
Ho messo solo 200 righe, ma sono molte di più.
Spero sia possibile così risparmierei un mucchio di tempo, cercando/inserendo righe e spostando le celle uguali fra le due colonne.
Cordiali saluti
R
Ricky0185
Utente Senior
 
Post: 439
Iscritto il: 10/12/19 20:38

Sponsor
 

Re: Confronto valori celle uguali su due colonne

Postdi Anthony47 » 07/02/26 00:25

Ma nella colonna ci sono esattamente gli stessi valori solo in ordine diverso? No
Molti valori compaiono piu' volte in modo non simmetrico; es 2.5 compare 9 volte in colonna C ma 4 volte in colonna D
Ma vuoi solo visivamente vedere che un valore ha una corrispondenza nell'altra colonna o hai bisogno anche di allinearli?
Insomma non capisco come allineare dei dati casuali...

Se spieghi lo scopo finale di questo lavoro forse possiamo essere piu' utili, forse
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19684
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Confronto valori celle uguali su due colonne

Postdi Ricky0185 » 07/02/26 09:11

Il motivo è che voglio scoprire perchè il totale della prima colonna si differenzia da quello della seconda ed ho pensato ad un raffronto che spazzoli le celle della prima colonna e per ognuna, quando trova sulla seconda una corrispondenza dei valori (sono euro), li metta sulla stessa riga magari in due colonne d'appoggio, lasciando la riga con il solo valore non corrispondente, sulla prima.
Dici che 9 volte c'è 2,5 nella prima colonna e solo 4 volte nella seconda, nelle due colonne d'appoggio avremo su colonna C, 4 celle con valore 2,5 (naturalmente inframmezzate da altri valori) e, sulla stessa riga, altrettante celle nella colonna D con valore 2,5. Poi andando avanti nel raffronto in colonna C avremo altre 5 volte 2,5, ma sulla stessa riga in colonna D avremo 5 celle vuote. Il tutto inframmezzato da altre righe con valori delle 2 colonne uguali o non.
Ma se c'è un altro modo per capire la differenza che c'è fra i totali delle 2 colonne....ben venga. Dico solo che le colonne sono lunghe un migliaio di righe ed i totali si aggirano sui 160.000 euro.
Ti ringrazio dell'attenzione e ti saluto
R
Ricky0185
Utente Senior
 
Post: 439
Iscritto il: 10/12/19 20:38

Re: Confronto valori celle uguali su due colonne

Postdi Anthony47 » 07/02/26 13:48

Mi pare l’ennesima puntata della serie “shit in, shit out” (se non si e’ rigorosi nell’inputazione dei dati fare la loro conciliazione e abbastanza ...complicato).

Ti propongo questa macro:
Codice: Seleziona tutto
Sub ConfrontaXA()
Dim cArr, dArr, CheckCol As Range, BaseCol As Range
Dim TestSeq, myMatch, OPos As Range
Dim I As Long, J As Long
'
Set OPos = Range("I1")              '<<< La prima di 4 colonne LIBERE che saranno usate per il report
'
TestSeq = Array("C", "D", "C", 0, 1)
Range(Range("C2"), Cells(Rows.Count, "D").End(xlUp)).Interior.Color = xlNone    'Toglie colorazione da C e D
OPos.Resize(1, 4).EntireColumn.ClearContents                                    'Pulisce le colonne da usare per il report
Debug.Print
For J = 0 To 1                                                                  'prima C vs D poi D vs C
    Set BaseCol = Range(Cells(2, TestSeq(J)), Cells(2, TestSeq(J)).End(xlDown))
    Set CheckCol = Range(Cells(2, TestSeq(J + 1)), Cells(2, TestSeq(J + 1)).End(xlDown))
    Debug.Print "Check " & BaseCol.Address(0, 0) & " Vs " & CheckCol.Address(0, 0)
    cArr = BaseCol.Value
    dArr = CheckCol.Value
    For I = 1 To UBound(cArr)
        myMatch = Application.Match(cArr(I, 1), dArr, False)
        If Not IsError(myMatch) Then
            'se trovato: cancella (nella matrice) e colora giallo (sul foglio)
            dArr(myMatch, 1) = ""
            CheckCol.Cells(myMatch, 1).Interior.ColorIndex = 6
        Else
            'se NON trovato, colora in Rosso sul foglio
            BaseCol.Cells(I, 1).Interior.Color = vbRed
        End If
    Next I
    OPos.Offset(1, J * 2 + TestSeq(J + 3)).Resize(UBound(cArr), 1).Value = cArr         'La matrice di origine
    OPos.Offset(1, J * 2 + 1 - TestSeq(J + 3)).Resize(UBound(dArr), 1).Value = dArr     'I valori "non cancella"
Next J
OPos.Resize(1, 4).Value = Array("'  --C contro D--", "", "'  --D contro C--", "")
End Sub


Il caodice va messo in un Modulo standard, e la riga marcata <<< deve puntare alla prima di 4 colonne libere che saranno azzerate e poi compilate dalla macro.
La macro confronta ogni valore di C contro la colonna D; se trova un riscontro colora in Giallo il riscontro su colonna D, se non lo trova colora in Rosso il valore di colonna C. Ovviamente ogni “riscontro” viene eliminato dalla lista in modo da non essere utilizzato più di una volta (e in questo modo, per tornare al valore 2.5 di cui avevo detto nel primo messaggio, rimarranno 5 valori in rosso nella colonna C)
Poi viene ripetuto il controllo (colonna D contro C)

Gli stessi risultati vengono riportati poi in quattro colonne che indicano analiticamente
-tutti i valori di colonna C
-quali valori di colonna D non erano presenti in colonna C
-quali valori di colonna C non erano presenti in colonna D
-tutti i valori di colonna D

Spero che sia di qualche utilità...
Avatar utente
Anthony47
Moderatore
 
Post: 19684
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Confronto valori celle uguali su due colonne

Postdi Ricky0185 » 07/02/26 17:10

E' certamente utile, manca però il "grande favore" del post di apertura, ed è quello su cui sto combattendo. Con macro e sempre confrontando i valori della colonna C con quelli della D, quando trova nella colonna C lo stesso valore della D lo ricopia su un colonna d'appoggio G. Lo stesso procedimento per la colonna D, il valore trovato nel confronto (la cui riga ovviamente non corrisponde a quella di C) viene riportato in colonna H sulla stessa riga della D (cioè G).
Brrrr
Credo che a questo punto non serva neanche colorare i simili delle due colonne.
Ricky0185
Utente Senior
 
Post: 439
Iscritto il: 10/12/19 20:38

Re: Confronto valori celle uguali su due colonne

Postdi Anthony47 » 07/02/26 19:21

Hummm...
Adesso che sai cosa si incrocia e cosa non si incrocia, mi scrivi cosa vorreste vedere in colonna G e H? Bastano le prime 8 righe
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19684
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Confronto valori celle uguali su due colonne":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti