Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Confronto due colonne

  1. #1

    Confronto due colonne

    Ciao a tutti, ho un problema.
    Su un foglio excel ho due colonne, una di 4500 record e l'altra di 5000. La seconda colonna è composta dai 4500 record della prima + 500 record inseriti in maniera casuale. C'è un modo per individuare velocemente quali record non matchano, ossia quali sono i 500 record che la seconda colonna ha in più della prima? Ho provato con la funzione SE:

    =SE(A1=B1;1;0) però ogni volta che non c'è la corrispondenza devo inserire una riga vuota, e vorrei evitare di ripetere l'operazione 500 volte... c'è modo di fare ciò in automatico?

    Se necessario, posso usare anche un database di supporto Mysql.

    Grazie a chi saprà darmi una mano!!!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Applica questa formula in corrispondenza della prima riga (anche se ti restituisce errore "tipo definito dall'utente non definito" non farci caso e trascinala per tutto il tuo range).

    codice:
    =SE(VAL.ERRORE(CONFRONTA(B1;$A$1:$A$5000;0));B1;"")
    Ti ritroverai solo i valori della colonna B che non sono presenti nella colonna A.

    In mysql te la caveresti con un semplice left join.

  3. #3
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,995
    Ottima soluzione, ma per 5000 righe è un po' scomodo andare a cercare i dati non comuni.
    Si può fare di meglio ? magari con una macro ?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da patel
    Ottima soluzione, ma per 5000 righe è un po' scomodo andare a cercare i dati non comuni.
    Si può fare di meglio ? magari con una macro ?
    Ciao patel.
    Una possibile soluzione tramite macro è questa:

    codice:
    Option Explicit
    
    Sub diversi()
    Dim i, j As Long
    Dim confronta As Variant
    j = 1
    For i = 1 To 10
    confronta = Application.Match(Range("b" & i), Range("A1:A10"), 0)
        If IsError(confronta) Then
            Range("e" & j) = Range("b" & i)
            j = j + 1
        End If
    Next i
    End Sub
    basta solo adattare i range alle proprie necessità.

  5. #5
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,995
    Perfetto come sempre, visto che ci siamo come può essere utilizzata in OpenOffice ? ho provato ad anteporre "Option VBASupport 1", ma da errore al comando "confronta = Application.Match(Range("b" & i), Range("A3:A50"), 0)"

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Spiacente, non conosco la sintassi sotto OO.

  7. #7
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,995
    non si potrebbe sostituire la riga
    "confronta = Application.Match(Range("b" & i), Range("A1:A10"), 0)"
    con qualcosa di più compatibile con vecchie versioni di VB.

  8. #8

    Grazie!

    Mi siete stati preziosi, grazie per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.