Tips & Tricks‎ > ‎

TT-201607 Ricavare dati non duplicati



Questo e' un problema generato da una situazione di lavoro reale (proposta da Francesco, grazie ;)), dove si dovevano gestire codici EAN13, sostanzialmente stringhe di dati a 13 numeri.

Posto di avere due colonne di dati di questo tipo, si vorrebbe estrarre una terza colonna formata solo dai codici della prima colonna che non sono presenti nella seconda colonna e viceversa.

Ci sono due modi per approcciare il problema: o si definisce una colonna che e' l'unione delle due ( che riposta il caso alla gestione dei duplicati) o si usa un algoritmo che compara tutti i dati delle prima colonna con la seconda e viceversa ( per trovare i valori presenti appunto solo in una, algoritmo usato nella risoluzione tramite VBA).

Riguardo al primo tipo di apporccio, sarebbe abbastanza semplice da implementare ma purtroppo non esiste, che io sappia, un modo gestito da interfaccia utente per estrarre i dati NON duplicati, cioe' si riesce ad estrarre i valori univoci rimuovendone i duplicati ma non si riesce a filtrare i dati NON duplicati.

Questo esempio propone diversi tipi di soluzione: tramite interfaccia utente, con formule matriciali, con il calcolo matriciale e con il VBA.

[Errata Corriege 04 Luglio 2016] : E' stata' presentata una routine che non ha gli indici dei fogli corretti alla riga

"If Foglio4.Cells(i, 1) = Foglio1.Cells(j, 1) Then"

che andrebbe sostituita con

"If Foglio4.Cells(i, 1) = Foglio4.Cells(j, 1) Then"

Il concetto espresso nel video e' corretto, ma non avevo messo a posto gli indici.

Lo sheet e' stato aggiornato.

Video di YouTube



worksheet di riferimento: TT-201607: Ricavare dati non duplicati