Trova valori uguali su 2 colonne

Ciao vorrei aiuto per capire come confrontare due colonne per trovare valori uguali e riportare i risultati su una terza colonna.

Es. Nella colonna A ho 50000 record contenenti codici di prodotti e nella colonna B ho 2000 record contenenti parte dei codici che sono presenti nella colonna A.
La mia esigenza è di estrarre i valori della colonna A in una colonna C in modo che posso aggiornare i prezzi di listino e poi effettuare l’import dei dati nel gestionale.

Grazie a tutti

Ciao. Cosa vuoi estrarre i codici della colonna A non presenti nella colonna B?
Ps.: per avere risposte mirate è meglio allegare un file ridotto (no immagini) con il risultato che vorresti.

1 Like

Ciao, grazie per il tuo supporto.
Effettivamente mi sono spiegato male in quanto la situazione è questa:
Ho un listino fornitore (Colonna A), i prezzi degli articoli (Colonna B) e gli articoli che mi interessano (Colonna C). Io vorrei poter estrarre da A solo i risultati presenti in C e i relativi prezzi presenti in B.
Quindi dovrei ottenere un colonna D e una colonna E come risultato del match A-C e i relativi prezzi di B.
Il fine è ottenere i codici che mi interessano con i relativi prezzi e scartare tutti gli altri che sono presenti nel listino fornitore ma che non lavoro, per poi effettuare un import.
es.ods (18.3 KB)

Allego un file di esempio nella speranza che sia riuscito a spiegare la mia necessità.

Risolvi facilmente il tuo problema con la funzione CERCA.VERT.
Ti posizioni nella cella D2, dove adesso hai scritto a mano uno dei codici che ti interessano, apri la creazione guidata e imposti i quattro elementi della funzione:
Criterio di ricerca:: nel tuo caso è il primo degli articoli che ti interessano, elencati in colonna C; metterai quindi il riferimento alla cella C2;
Matrice è l’area in cui dovrà operare la funzione, quindi nell’esempio $a$1:$B$27 e nella realtà tutto l’elenco del tuo prezziario;
Indice: trovato il valore usato come criterio di ricerca nella prima colonna della matrice, CERCA.VERT dovrà riportare il valore che trova spostandosi a destra di quante colonne gli prescrive questo indice; nel tuo caso preleverà il valore della seconda colonna, quindi 2;
Ordinamento: qui scriverai 0, perché vuoi ottenere i valori esattamente corrispondenti al tuo criterio di ricerca (se invece dovessi attribuire il tuo criterio di ricerca ad una certa fascia, dovresti scrivere 1 e avere la matrice in ordine crescente).

La funzione completa sarà: =CERCA.VERT(C2;$A$1:$B$27;2;0), che ricopiata sulle altre celle della colonna D ti darà i prezzi di tutti i prodotti che ti interessano, già scritti in colonna C, prelevandoli dall’elenco delle colonne A-B.

Indicando la matrice, ho compreso la riga del titolo e una riga vuota al fondo, perché se in futuro l’elenco dovesse allungarsi, basterà inserire all’interno dell’area già definita un numero di righe sufficiente a contenere il nuovo elenco: la matrice di CERCA.VERT risulterà così automaticamente aggiornata. Per ricordare visivamente dove finisce la matrice, io uso colorare la riga vuota finale.

Nel caso specifico pare certo che i valori in colonna A siano tutti diversi tra loro; se così non fosse (ad es. se avessi una colonna A con il nome dell’articolo, una B riportante le sue confezioni di diversa grandezza ed una C con il prezzo di ciascuna) dovresti o trovare o costruire un codice univoco per ciascun articolo; CERCA.VERT infatti riporta sempre solo il primo valore che trova esattamente corrispondente al criterio di ricerca.

Ciao, grazie per l’aiuto.
Ho tentato di provare ma forse ho sbagliato qualcosa. In ogni caso se sei disponibile provo a lasciarti il file intero dove sulla colonna A ci sono tutti i codici, Sulla B i prezzi e sulla C i codici che mi interessa estrarre dalla colonna A insieme ai prezzi della B.

Grazie ancora
Senza nome 1.ods (305.7 KB)

Ciao. Se i tuoi articoli in colonna C sono univoci adotta la soluzione di @Rosanna1
Se invece non sono univoci, come da tuo esempio nella riga 10, allora se hai una versione di libreoffice superiore alla 7 puoi usare in D2 da tirare in basso
=SE(C2="";"";SE.ERRORE(AGGREGA(14;6;$B$2:$B$2000/($A$2:$A$2000=C2);1);"non presente"))
per conoscere il prezzo più alto, o
=SE(C2="";"";SE.ERRORE(AGGREGA(15;6;$B$2:$B$2000/($A$2:$A$2000=C2);1);"non presente"))
per conoscere il prezzo più basso.
Allego file per riscontro
Trova valori uguali su 2 colonne.ods (19.5 KB)

Ho controllato il tuo file originale utilizzando la funzione CONTA.SE per verificare se i codici di tuo interesse fossero univoci: ed effettivamente lo sono tutti. Non ho controllato gli altri perché sono troppi.

Quindi la funzione CERCA.VERT che ti ho dettagliatamente descritto nel post precedente risolve il tuo problema di partenza.

C’è però un altro guaio: alcuni dei codici di tuo interesse NON sono presenti nell’elenco originale, almeno nella forma in cui tu li hai scritti: di conseguenza, non trovandoli, CERCA.VERT dà l’errore #N/D (e CONTA.SE dice che nell’elenco originale ne trova zero).

L’errore che determina la difformità tra i codici da te scritti e quelli dell’elenco è probabilmente banale: basta una lettera sbagliata, un punto o uno spazio bianco in più o in meno… Il problema, su oltre 46.000 dati, è ovviamente trovarlo. Prova con i filtri, selezionando spezzoni dei codici che non si trovano (te li ho raggruppati tutti all’inizio dell’elenco; sugli altri, ho scritto la funzione CERCA.VERT per i primi codici, basterà ricopiarla sugli altri per ottenere il risultato che ti serve.
Caso.ods (323.6 KB)

Probabilmente hai già risolto, comunque per un caso come il tuo credo che lo strumento giusto sia il Filtro speciale, che trovi in Dati - Altri filtri - Filtro speciale.
Nel tuo file di esempio nelle prime due colonne hai i dati da filtrare e dovresti fare in modo di ripetere la struttura con le stesse intestazioni di colonna nella terza (basta che la rinomini “Codice articolo fornitore”) e quarta colonna (“prezzo” che lasci vuota), le altre colonne per la risposta non servono, te le creerà LO.
A questo punto selezioni le prime due colonne con i dati e attivi il Filtro speciale, ti si apre una finestra nella quale per Leggi i criteri di filtro da selezioni la terza e quarta colonna con le stesse intestazioni delle prime due (in una avrai i solo codici che cerchi e quella del prezzo sarà vuota).
Nelle opzioni metti il segno di spunta su Copia i risultati in e selezioni la prima cella dove vuoi la risposta (es. E1), inoltre spunta anche Nessun duplicato, quindi dai OK ed il gioco e fatto.

Ciao ti ringrazio.
In realtà con le soluzioni che mi sono state proposte ho fatto diversi tentativi ma non sono riuscito ad arrivare al risultato di cui necessito. Forse ho sbagliato io qualche formula oppure non so…
Proverò con la tua proposta.
Eppure mi sembrava una cosa semplice trovare risultati uguali su due colonne ed estrapolarli :grin:

Grazie mille

Come già avevo rilevato nel mio ultimo post, alcuni fra i codici che ricerchi NON SONO PRESENTI -nella forma in cui li hai scritti- nell’elenco originale: quindi non li potrai mai trovare.. Ne hai l’elenco nel file che ti avevo allegato, e che rimetto qui.
Caso.ods (323.6 KB)

Per tutti gli altri, la funzione CERCA.VERT che ti ho descritto risolve il problema.