Kaksoiskappaleiden löytäminen ja poistaminen Accessissa: Täydellinen opas

Viimeisin päivitys: 02/10/2025
Kirjoittaja: Isaac
  • Valitse strategia tavoitteesi perusteella: näytä ainutlaatuiset kohteet, tee yhteenveto tai poista.
  • Access tekee ohjatun toiminnon avulla tunnistamisesta helppoa; SQL tarjoaa täyden hallinnan.
  • Vaihteluita sisältävien tietojen kohdalla sumea deduplikaatio parantaa tarkkuutta.
  • Ennen poistamista tarkista ja varmuuskopioi tiedostot peruuttamattomien menetysten välttämiseksi.

Kuva Accessin kaksoiskappaleista

Jos työskentelet kanssa tietokannat de Microsoft Access, ennemmin tai myöhemmin törmäät kaksoiskappaleisiin. Nämä kaksoiskappaleet ilmestyvät, kun useat käyttäjät syöttävät tietoja samanaikaisesti tai kun esimerkiksi suunnittelu on virheellinen. taulukoiden välinen suhde Accessissa, ei estä toistoja. On tärkeää ymmärtää, miten ne havaitaan ja mitä niille tehdään (piilotetaan, näytetään kerran, yhdistetään tai poistetaan). tiedon laadun ylläpitämiseksi.

Yhtä ainoaa universaalia menetelmää ei ole: se riippuu siitä, etsitkö tarkkoja kaksoiskappaleita, tarvitsetko virhesietoisuutta (puuttuvat tai varianttinimet) vai haluatko vain puhdistaa taulukon turvallisesti. Accessissa on kaksoiskappaleiden luontitoiminto, SQL-kyselyitä, kuten DISTINCT ja GROUP BY, sekä mahdollisuus suorittaa joukkopoisto poistokyselyillä.Monimutkaisiin tapauksiin on olemassa erikoistuneita deduplikaatiotyökaluja, joissa on sumea haku.

Kaksoiskappaleiden etsiminen ohjatulla Access-toiminnolla

Suorin reitti Access-käyttäjille on kaksoiskyselyn luontitoiminto. Tämä ohjattu toiminto luo valintakyselyn, joka tunnistaa valitsemissasi kentissä olevat vastaavat arvot omaavat tietueet., jotta voit tarkastella tulosta ennen päätöksentekoa.

Kuinka käynnistää ja määrittää se vaihe vaiheelta ilman tarpeettomia teknisiä yksityiskohtia: Avaa Luo-välilehti ja siirry kyselyohjaukseenValitse valintaikkunassa Kaksoiskappaleiden etsintäkyselyn ohjattu toiminto ja vahvista jatkaaksesi.

sitten valitse taulukko (tai kysely), jossa epäilet kaksoiskappaleita, esimerkiksi a Accessissa luotu taulukko ja napsauta Seuraava. Ohjattu toiminto kysyy, mitkä kentät on täytettävä, jotta tietuetta pidetään kaksoiskappaleena; esimerkiksi nimi ja syntymäaika henkilötiedostossa tai asiakasnumero tilaukset-taulukossa.

Voit myös valitse lisäkentät, jotka haluat nähdä tulosteessa (Ne eivät vaikuta vertailuun, mutta auttavat sinua tarkastelemaan tuloksia.) Lopuksi Access ehdottaa kyselyn nimeä tai voit määrittää oman nimesi; paina Valmis ajaaksesi sen ja tarkastellaksesi osumien luetteloa.

Kun sinulla on kyselyn kaksoiskappale, Voit käyttää sitä pohjana muokkaamiseen, yhdistämiseen tai poistamiseenJos haluat ristiviittaa useisiin taulukoihin ja etsiä niiden välisiä kaksoiskappaleita, luo ensin yhdistämiskysely, joka yhdistää tiedot, ja suorita kaksoiskappalehaku uudelleen tuloksen perusteella.

Kaksoiskappaleiden etsimiseen tarkoitettu ohjattu toiminto

SQL Accessissa: Näytä, piilota tai poista kaksoiskappaleet

Kun tarvitset enemmän hallintaa (tai automaatiota), Access SQL -kyselyt ovat liittolaisiasi, esimerkiksi silloin, kun päivittää tietueet Accessissa. Muutamalla lausekkeella voit listata vain yksilöllisiä arvoja, tiivistää toistoja tai tunnistaa ylimääräisiä rivejä niiden käsittelemiseksi.Katsotaanpa yleisimpiä tapauksia.

Näytä jokainen ainutlaatuinen yhdistelmä vain kerran DISTINCT-funktiolla. Hyödyllinen raporteissa, joissa et halua nähdä arvon identtisiä toistojaesimerkiksi kunkin asiakkaan tilaamien eri tuotteiden luettelo:

SELECT DISTINCT asiakas_id, artikkelin_no FROM asiakas_artikkelit ORDER BY asiakas_id, artikkelin_no;

Jos haluat myös luo puhdas taulukko ilman kaksoiskappaleita, yhdistä se INTO:n kanssa luodaksesi uuden taulukon tuloksesta:

SELECT DISTINCT asiakas_id, artikkelin_no INTO table_new FROM asiakas_artikkelit ORDER BY asiakas_id, artikkelin_no;

Yhteenveto ja "piilota" kaksoiskappaleet GROUP BY -funktiolla. Kun tavoitteesi on ryhmittele ja hae mittareita (toistojen määrä, summat jne.) lasketut kentät Accessissa), vedä GROUP BY. Esimerkiksi kuinka monta kertaa kutakin tuotetta on myyty ja siihen liittyvä kokonaistulo:

SELECT artikkelinumero, COUNT(*) AS kertaa, SUM(liikevaihto) AS liikevaihto FROM laskuartikkelit GROUP BY artikkelinumero ORDER BY kertaa DESC, artikkelinumero;

Tunnista tarkat kaksoiskappaleet rivien vertailun avulla. Jos tarvitset Tunnistaa tietuepareja tai -ryhmiä, joilla on sama arvo yhdessä tai useammassa kentässä ja valmistautuaksesi sen poistamiseen, voit käyttää taulukon itseliitosta itseään vastaan ​​​​varoen, ettet yhdistä riviä itseensä:

SELECT t1.id, t1.nimi, t2.id AS duplikaatin_id, t2.nimi AS duplikaatin_nimi FROM taulukon_nimi AS t1, taulukon_nimi AS t2 WHERE t1.nimi = t2.nimi AND t1.id <> t2.id AND t1.id = ( SELECT MAX(id) FROM taulukon_nimi AS tx WHERE tx.nimi = t1.nimi );

Huomaa kaksi yksityiskohtaa: Avain (id) tarvitaan jokaisen rivin yksilöivään tunnistamiseen. ja MAX(id)-funktiota käytetään määrittämään, mikä tietue on kunkin ryhmän "ensisijainen" tietue; muita pidetään poistettavia tietueita.

  Multimedian pakkaaminen PowerPointissa: kaikki menetelmät ja vinkit

Poista tarkat kaksoiskappaleet. Käyttämällä yllä olevaa mallia, Voit kapseloida jäljellä olevien ID-iden luettelon DELETE-lausekkeeseen. ja näin ollen puhtaasti jättäen vain yhden rivin ryhmää kohden:

DELETE FROM taulukon_nimi WHERE id IN ( SELECT t2.id FROM taulukon_nimi AS t1, taulukon_nimi AS t2 WHERE t1.nimi = t2.nimi AND t1.id <> t2.id AND t1.id = ( SELECT MAX(id) FROM taulukon_nimi AS tx WHERE tx.nimi = t1.nimi ) );

Tämä lähestymistapa on helposti laajennettavissa vertaile useita kenttiä kerralla (esim. nimi, katu, postinumero). Tee aina varmuuskopio ennen POISTAMISEN suorittamista; alta löydät varmuuskopioiden tarkistuslistan ja ohjeet kyselyn muuntamiseen poistokyselyksi suunnittelunäkymässä.

Kaksoiskappaleita eri taulukoiden välillä? Jos tietosi ovat hajallaan useissa taulukoissa tai tulevat Excelistä, tuo tietoja Excelistä Accessiin Ja ensin on hyvä käytäntö luoda yhdistämiskysely, joka pinoaa "yhteensopivat" rivit: voit käyttää DISTINCT-, GROUP BY- tai automaattista liitosta tuloksena olevaan yhdistelmään päällekkäisyyksien löytämiseksi.

SQL-kyselyt kaksoiskappaleille Accessissa

Vaikeat duplikaatit: "älykäs" deduplikaatio vikasietoisuudella

Todellinen elämä ei aina tuo mukanaan täsmällisiä kaksoiskappaleita: on aksentteja, lyhenteitä, ylimääräisiä välilyöntejä, katuja kirjoitettuna tuhansilla eri tavoilla... Näissä tapauksissa, Tarvitset sumean (likimääräisen) haun, joka hyväksyy osittaiset osumat.Accessissa ei ole valmiina tehokasta samankaltaisuusmoottoria; tässä kohtaa kuvaan tulevat erikoistuneet deduplikaatiotyökalut, kuten DataQualityTools.

Mitä nämä työkalut tarjoavat? Etsi tietueita, jotka ovat riittävän "samankaltaisia" useiden kriteerien perusteella (esim. nimi + osoite), voit asettaa samankaltaisuuskynnysarvoja (esim. 50 % kadulle) ja yhdistää kenttiä loogisiksi lohkoiksi vertaillaksesi niitä keskenään.

Tyypillinen työnkulku sumealla deduplikaatiotyökalulla: asenna työkalu, Luo deduplikaatioprojekti ”deduplikaatio taulukossa” -toimintolohkossa ja avaa Access-tiedostosi (tai muodosta siihen yhteys, jos se on palvelimella). Valitse sitten kohdetietokanta ja -taulukko työkalun avattavista valikoista.

  Vibe-työskentely Excelissä ja Wordissa: agenttitila ja Office-agentti

Keskeinen pointti saapuu: osoita, mitä sarakkeita verrataan ja mitenEsimerkiksi osoiteluetteloissa voit määrittää katukentän arvoksi "Katu" ja asettaa kynnysarvoksi 50 %, jolloin vain ne rivit, joiden kadunnimen samankaltaisuus ylittää kyseisen kynnysarvon, katsotaan kaksoiskappaleiksi. On myös yleistä ryhmittele useita sarakkeita (kuten ”Etunimi” + ”Sukunimi” + ”Yritys”) verrattavaksi keskenään ennen kuin päätetään, kuuluvatko kaksi tietuetta samalle henkilölle tai yksikölle.

Kun olet määrittänyt lisäasetukset (tarvittaessa), aloita haku. Tulos näytetään yleensä taulukossa, jossa näkyvät havaitut ryhmät ja toimenpide-ehdotus.: mitkä rivit säilytetään, mitkä merkitään, mitkä yhdistetään tai mitkä poistetaan. Työkalujen avulla voit korjata valintasi (esimerkiksi poistaa valinnan riviltä, ​​jota et halua poistaa) ennen vientiä tai muutosten käyttöönottoa.

Kuinka siirtää tulos Accessiin? Yleisiä vaihtoehtoja: Merkitse valitut tietueet poistomerkillä taulukon tietyssä kentässä tai vie luettelon tunnusten joukosta. Suorita sitten Accessissa deduplikaatiokysely, joka suodattaa tiedot kyseisen kentän tai valittujen tunnusten perusteella. Monet työkalut tarjoavat kokeilujaksoja, joiden avulla voit varmistaa deduplikaation laadun omilla tiedoillasi.

Sumea deduplikaatio Accessissa

Turvallinen muutto: muuttoa edeltävä tarkistuslista, muuttokonsultaatio ja käytännön tapaustutkimus

Ennen minkään poistamista on hyvä valmistautua. Poistoja ei voi perua, ja jos suhteissa on viittaus-eheyttä, saatat poistaa odotettua enemmän. Tutustu tähän nopeaan tarkistuslistaan.

- Tarkista tuo .accdb-tiedosto ei ole vain luku -tilassa.
– Jos jaat sen, pyydä muita käyttäjiä tekemään niin sulje esineet kenen kanssa aiot työskennellä välttääksesi esteitä ja konflikteja.
– Jos sinulla on käyttöoikeudet, avaa tukikohdan eksklusiivisessa tilassa (Tiedosto > Avaa > nuoli Avaa-kohdan vieressä > Avaa yksinoikeisessa tilassa).
- Tehdä varmuuskopioSe on ainoa oikea tapa palauttaa rivit, jos jokin menee pieleen.

Miten luot ja suoritat poistokyselyn Accessin rakennenäkymässä? Resepti on yksinkertainen: Luo ensin valintakysely, joka palauttaa juuri sen, mitä haluat poistaa. ja tarkista se; muunna se sitten poistettavaksi.

Ohjatut vaiheet: Siirry Luo-välilehdellä kohtaan Kyselyn suunnittelu ja lisää kyseinen taulukkoKaksoisnapsauta tähteä (*) nähdäksesi kaikki kentät ja lisää ruudukkoon kentät, joiden mukaan suodatat (esimerkiksi Asiakastunnus ja Tilauspäivämäärä etsiäksesi odottavia tilauksia asiakkaalle, joka ei enää ole meillä).

Syötä asianmukaiset kriteerit (asiakastunnus, tietyn päivän jälkeiset päivämäärät jne.) ja poista valinta ”Näytä” kyseisistä kriteerikentistä pitääksesi näkymän siistinä. Napsauta Suorita varmistaaksesi, että vain poistettavat tietueet näkyvät.

Kun olet selvittänyt tämän, palaa Rakenne-näkymään ja napsauta Rakenne-välilehdessä Poista. Access muuntaa kyselyn "poistokyselyksi".: Tämä piilottaa Näytä-rivin ja lisää Poista-rivin, jossa näet tähti-sarakkeen (*) alla tekstin "Lähettäjä" ja ehtosarakkeiden alla tekstin "Missä". Suorita se uudelleen ja vahvista.

  Tärkeimmät kaavat ja funktiot Excelissä

Bonusvinkki: Jos vertailet taulukoita tai etsit yhdestä taulukosta tietueita, joilla ei ole vastinetta toisessa taulukossa (päinvastoin kuin kaksoiskappale), Accessissa on ohjattuja toimintoja vastaamattomien kohteiden vertailuun ja etsimiseen.Se on hyödyllinen tietojen täsmäytystehtävissä.

Käyttötapaus: ”Haluan kentästä vain yksilöllisiä arvoja.” Tyypillisessä säikeessä ilmenee tämä ongelma: käyttäjä kirjoittaa SELECT DISTINCT OperatorId FROM TregO WHERE OperatorId IS NOT NULL ja saat 105 yksilöllistä riviä, mutta kun lisäät muita kenttiä (CIF, Nimi), tulos kasvaa (107, 116…), koska DISTINCT koskee kaikkia SELECT-taulukon sarakkeita.Selitys on yksinkertainen: Jos lisäät useampia sarakkeita, koko yhdistelmän on oltava yksilöllinen., joten rivejä, joiden nimi eroaa toisistaan ​​(esimerkiksi pilkulla tai ylimääräisellä välilyönnillä), ei enää ryhmitellä kaksoiskappaleiksi.

Selkeitä ratkaisuja riippuen siitä, mitä sinun on nähtävä näytöllä: jos haluat vain luettelon Yksilölliset operaattoritunnukset, pidä vain kyseinen kenttä SELECT-kutsussa DISTINCT-muuttujalla. Jos haluat näyttää myös toisen "edustavan" sarakkeen jokaiselle IdOperator-operaattorille, käytä yhden rivin ryhmää kohden -strategiaa:

-- 1) Valitse vakaa rivi ryhmittäin (esimerkiksi se, jolla on korkein Id) SELECT t.* FROM TRegO AS t INNER JOIN ( SELECT IdOperador, MAX(Id) AS IdMax FROM TRegO WHERE IdOperador IS NOT NULL GROUP BY IdOperador ) AS g ON t.IdOperador = g.IdOperador AND t.Id = g.IdMax; -- 2) Tai palauta aggregaatit ryhmittäin (ensimmäinen tai pienin aakkosellinen arvo) SELECT IdOperador, MIN(Nombre) AS NombreExample, MIN(CIF) AS CIFExample FROM TRegO WHERE IdOperador IS NOT NULL GROUP BY IdOperador;

Ensimmäinen vaihtoehto palauttaa IdOperaattorin koko rivi ”kanoninen” (se, jolla on suurin ID); toinen tarjoaa koostettuja arvoja ryhmittäin (esim. aakkosjärjestyksessä pienin). Vältä DISTINCT-muuttujaan lisää sarakkeita, jos tarvitset vain yhden rivin avainta kohden; valitse GROUP BY tai alivalinta MAX/MIN-komennoilla antaa sinulle etsimäsi hallinnan.

Jos viimeinen vaihe on poistaa kaksoiskappaleet, jolloin jäljelle jää yksi rivi IdOperador-funktiota kohden, yhdistää yllä olevan kuvion poistokyselyyn: Määritä ensin, minkä tunnuksen kustakin ryhmästä haluat säilyttää (MAX(Id) tai MIN(Id)) ja poista loput komennolla DELETE…WHERE Id NOT IN (… kept …), aina aiemman varmuuskopion kanssa.

Poista kaksoiskappaleet turvallisesti Accessissa

Kun taistelet kaksoiskappaleita vastaan ​​Accessissa, on tärkeää olla selkeä tavoitteesta: ”Älä näytä kaksoiskappaleita” ei ole sama kuin ”poista tietueita” tai ”etsi likimääräisiä samankaltaisuuksia”.Ohjattu toiminto nopeuttaa alkutunnistusta, SQL tarjoaa kirurgisen tarkkuuden (DISTINCT, GROUP BY, itseliitokset ja DELETE), ja monimutkaisissa osoitteita ja nimiä sisältävissä tapauksissa hyvä idea on erikoistyökalujen tukema sumea deduplikaatio. Varmuuskopioiden, esitestauksen ja huolellisen kyselysuunnittelun avulla datan puhdistamisesta tulee luotettava ja toistettava prosessi.

Excelin käyttöön
Aiheeseen liittyvä artikkeli:
Kuinka tuoda tietoja Excelistä Accessiin nopeasti ja helposti