Just nu i M3-nätverket
Gå till innehåll

Makro för att ta bort poster


Rockrulle

Rekommendera Poster

Jag har ett problem. Ska i Excel 2003 ta fram ett makro som ur en databas plockar ut och behåller unika poster och tar bort alla poster som har dubletter, men även den ursprungliga posten ska tas bort tillsammans med dubletten. Ex. om vi har fem olika poster med kundnr. som t.ex. 12345, 12345, 12346, 12347, 12347 så ska mitt makro ta bort alla rader utom den med kundnr 12346.

Databasen kan dessutom innehålla 20000 rader och varje post kan innehålla 20 kolumner med information.

De makron jag gjort blir otroligt sega och funkar inte fullt ut.

Har någon en lösning på mitt problem?

Länk till kommentar
Dela på andra webbplatser

Mmh, behöver du ett makro för detta? manuellt kan man annars göra som såhär:

 

1: Aktivera autofilter på din tabell

2: Välj visa alla poster utom 12346

3: Markera alla som visas och radera dessa rader

 

Eller använd avancerat filter med liknande resultat fast där kan man vända på det om man vill.

1: Skriv in fält för avancerat filter (samma rubrik över fält som används i tabellen)

2: skriv in det nummer du vill spara, dvs 12346

3: Applicera avancerat filter, kopiera till annan plats och du har enkelt kopierat ut alla data du vill spara och kan då slänga originaltabellen.

 

Eller

3: Applicera filter, på samma plats, kopiera resultatet.

 

eller

3: Skriv ="<>12346" som värde i filterområde och applicera filter på samma plats och radera resultatet.

 

Detta var några exempel på ganska enkla manuella förfaranden. Ska detta utföras ofta kan alternativ två med avancerat filter vara det bästa då det bara är att skriva in värdet, applicera filtret. Avancerat filter kan även enkelt automatiseras via VBA.

 

Låter detta som en bra väg att gå? Måste det vara ett makro?

Länk till kommentar
Dela på andra webbplatser

Då är i min ärlighet nog Avancerat filter det jag rekommenderar.

 

Vad har du egentligen som bas? De poster du vill ha kvar eller de som du vill ta bort?

 

Om det är de du vill ha kvar är avancerat filter barnsligt enkelt och om det bara är du som ska göra denna operation, gör den förhand då?

 

Säg att du idag har din tabell, din databas inom A1:G2000, att du max vill kunna ta bort 100 poster.

1: Infoga då 102 rader ovan din tabell så att den börjar på rad 103

2: Kopiera rubrikraderna från din tabell till rad 1 på bladet. (du behöver egentligen bara rubriken för kolumnen med nyckeln i)

3: Kopiera/skriv in de värden du vill ha kvar på rad 2 och nedåt i den kolumn där nyckeln finns.

4: Applicera avancerat filter, kopiera till annan plats.

 

Klart!

 

Om du istället har de värden du vill ta bort, gör samma sak fast filtrera på plats och radera resultatet av filtreringen. Kvar blir då det du vill ha kvar.

 

Jag tycker i sig att detta är så enkelt det kan vara. testa manuellt och kan du manuellt få det resultat du önskar och vill automatisera det är det inget problem.

 

Ett exempel

post-8996-0-98093500-1291134489_thumb.png

http://www.contextures.com/xladvfilter01.html

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...