Confronto colonne excel



  • Confronto colonne excel
    di Read (utente non iscritto) data: 30/07/2012

    Ciao, una domanda semplice. ho delle frasi in una colonna (colonna c) che vorrei confrontare con un'altra colonna (colonna d). ad esempio: "paolo giusti"(riga 3); antonio moravia (riga 4);.. potreste suggerirmi una macro che permetta velocemente di confrontare ogni cella della colonna d (e quindi il suo contenuto) per verificare che sia presente nella colonna c?

    grazie!



  • di Harrybosch data: 30/07/2012

    Ciao read
    mi vengono in mente più soluzioni per risolvere la tua richiesta.
    prima di scriverti il codice volevo però sapere se avevi tentato qualcosa visto che parli di macro e che, quindi, non dovresti partire proprio da zero.
    se così fosse potresti postare le tue soluzioni, in modo da confrontare le possibili correzioni.

    una soluzione potrebbe essere di questo tipo:
    - individuare i due intervalli, quindi la colonna con i dati e quella di ricerca
    - prendere ogni valore della colonna di ricerca e scorrere la colonna dei dati finchè non si trova una corrispondenza
    - riportare quindi la corrispondenza in una nuova colonna oppure evidenziarla

    cosa dici?
    a presto,
    ciao, vanni



  • di Vecchio frac data: 30/07/2012

    Bravo vanni, ottimo approccio :)
    e poiché so che naturalmente sai raggiungere il risultato con vba, ti invito a pensare ad una soluzione fatta con le sole formule di excel, unite alla formattazione condizionale (perchè visivamente du' gusti is megl' che uàn ^_^)





  • di Read (utente non iscritto) data: 31/07/2012

    Ciao ragazzi,
    sì qualcosa conosco ma sono ancora molto macchinoso.

    ho fatto un vlookup per cercare gli elementi della colonna d nella colonna c ma sono tutti sbagliati.

    al momento diciamo che non ho "tempo" per provare a scrivere la macro. con un po di esercizio mi rimetterò sotto e la scriverò.

    grazie!

    p.s.
    come posso uplodare un file?



  • di Vecchio frac data: 31/07/2012

    Vedrai che con la pratica le cose ti verranno più scioltamente :)

    vlookup? utilizzi la versione inglese di excel? questa non è un'informazione da poco :)

    per la sintassi corretta, vedi sotto, tratto dall'help.

    "al momento diciamo che non ho "tempo" per provare a scrivere la macro. "

    lol, ovviamente solo tu conosci le tue esigenze.


    "p.s.
    come posso uplodare un file?"

    c'è una scritta in alto su questa pagina, del tipo "allega un file". tieni presente però che gli allegati rimangono 48 ore poi il sistema li cancella.
     
    CERCA.VERT
    Cerca un valore nella colonna più a sinistra di una tabella e lo restituisce nella colonna indicata in corrispondenza della stessa riga. Utilizzare la funzione CERCA.VERT invece di CERCA.ORIZZ quando i valori di confronto sono collocati in una colonna a sinistra dei dati che si desidera trovare.
    
    VERT nel nome della funzione indica Verticale.
    
    Sintassi:
    
    CERCA.VERT(valore;tabella_matrice;indice;intervallo)
    
    Valore    è il valore da ricercare nella prima colonna della matrice. Valore può essere un valore, un riferimento o una stringa di testo.
    
    Tabella_matrice    è la tabella di informazioni nella quale vengono cercati i dati. Utilizzare un riferimento a un intervallo oppure un nome di intervallo, quale Database o Elenco.
    






  • di Harrybosch data: 31/07/2012

    Ciao read e ciao francesco
    ...o forse read ha provato a utilizzare il registratore di macro inserendo appunto la funzione cerca.verticale.

    sul ben accolto invito di francesco, è infatti la funzione a cui anch'io avevo pensato. si potrebbe utilizzare nella formattazione condizionale per individuare quegli elementi lungo la colonna d che risultassero già presenti lungo la colonna c.
    ad esempio, supponendo che nella prima riga ci siano le intestazioni, basterebbe posizionarsi nella cella d2 e selezionare la formattazione condizionale utilizzando una "nuova regola" e quindi tramite una formula, del tipo:

    =(se.errore((cerca.vert(d2;$c:$c;1;falso));""))<>""

    quindi si applica il colore di evidenziazione preferito, e dopo averlo confermato, si copia e si incolla il solo formato lungo la colonna d.
    in sostanza se il valore ricercato restituisce un errore significa che non è stato trovato, mentre la formula evidenzia la cella soltanto se la ricerca è positiva.

    oppure un altro sistema con l'uso delle formule potrebbe essere quello di utilizzare una colonna adiacente, tipo la colonna e, e inserire a partire da e2:

    =se((se.errore((confronta(d2;$c:$c;0));""))="";"";"corrispondenza trovata")

    in questo caso a fianco del nome, se è individuato anche nella colonna c, viene riportato un messaggio a piacere

    per il codice aspetto ancora un pò per vedere se carichi qualcosa...
    ciao vanni



  • di Vecchio frac data: 31/07/2012

    Bè vanni, hai googlato bene ma hai copiato male ;)
    la funzione se.errore io non l'ho mai sentita... è una funzione dei nuovi excel? io mi fermo a excel 2003 :)

    la mia formula di formattazione condizionale è quella che allego.
    in colonna a i dati di partenza, in colonna b i dati su cui effettuare la ricerca. se un dato in colonna a è presente tra quelli in colonna b scatta la formattazione condizionale e la cella della colonna a viene colorata (io ho scelto uno sfondo rosso e un carattere bianco così risalta).

    adesso aspettiamo il codice vba del nostro amico, appena avrà un attimo per farlo.
     
    =SE(VAL.ERRORE(CONFRONTA(A2;$B$2:$B$10;0));0;1)=1






  • di Harrybosch data: 31/07/2012

    Non sapevo che la funzione se.errore fosse "nuova", cioè a partire dalla versione 2007.
    in sostanza, invece di restituirti vero o falso come nel =val.err
    ti dà la possibilità di restituire un valore a piacere nel caso ci sia appunto l'errore.
    di solito la uso con le "" per mantenere la cella vuota



  • di Vecchio frac data: 31/07/2012

    Grazie vanni, non si finisce mai di imparare... allora ritiro la battutina =)

    sono rimasto indietro... qui si usa win xp e office 2003... questo è quello che passa il convento, pazienza :p