Gå til innhold

Vaske en liste i Excel


Flums

Anbefalte innlegg

Videoannonse
Annonse

I nabocella til tallet lager du en oppslagsformel som sjekker om naboverdien finnes i den andre lista. Dette gjør du i begge listene. Derfra sletter du de som svarer positivt, manuelt eller via en makro.

 

Det er vrient å være mer konkret uten mer informasjon om Excelversjon, språkversjon, listeadresser og hva du kan om Excel. Men du finner bra materiale på engelsk her:

http://www.cpearson.com/excel/duplicat.htm

 

HTH. Beste hilsen Harald

Vil tro det vil være enkelt å legge til en kolonne i lista med 20 000 som finner ut om tallet er i den andre lista. Så sortere etter den kolonna. Da vil du få de 4000 tallene som skal gå ut etter hverandre. Jeg har lagt til en enkel versjon der jeg har gjort dette, men ikke sorteringen.

Bok1.zip

Endret av pertm
I nabocella til tallet lager du en oppslagsformel som sjekker om naboverdien finnes i den andre lista. Dette gjør du i begge listene. Derfra sletter du de som svarer positivt, manuelt eller via en makro.

 

Det er vrient å være mer konkret uten mer informasjon om Excelversjon, språkversjon, listeadresser og hva du kan om Excel. Men du finner bra materiale på engelsk her:

http://www.cpearson.com/excel/duplicat.htm

 

HTH. Beste hilsen Harald

7235230[/snapback]

Bruker Excel 2003, engelsk versjon.

 

i A1 til A 4000 ligger de som skal vaskes vekk fra C1 til C20000.

 

Kan ikke så veldig mye avansert/macro.....

Vil tro det vil være enkelt å legge til en kolonne i lista med 20 000 som finner ut om tallet er i den andre lista. Så sortere etter den kolonna. Da vil du få de 4000 tallene som skal gå ut etter hverandre. Jeg har lagt til en enkel versjon der jeg har gjort dette, men ikke sorteringen.

7235254[/snapback]

Skjønner poenget, men denne fjerner ikke de som er i liste 1.....

Ok, men nå er den ferdig, så om ikke annet for arkivets del. Denne forutsetter at B og D-kolonnene er tomme.

 

Åpne VB editoren (Alt F11 e.l.).

Meny Insert - Module.

Lim dette inn i modulen:

 

Sub ScanSheet()

Dim R As Long

Application.Calculation = xlCalculationManual

Range("B1:B4000").FormulaR1C1 = "=COUNTIF(R1C3:R20000C3,RC[-1])"

Range("D1:D20000").FormulaR1C1 = "=COUNTIF(R1C1:R4000C1,RC[-1])"

Application.Calculation = xlCalculationAutomatic

Calculate

 

If MsgBox("Slette dubletter ?", vbYesNo + vbQuestion) = vbNo Then Exit Sub

 

Application.Calculation = xlCalculationManual

Application.ScreenUpdating = False

 

For R = Cells(65000, 1).End(xlUp).Row To 1 Step -1

Application.StatusBar = R

If Cells(R, 2).Value > 0 Then Cells(R, 1).Delete Shift:=xlUp

Next

For R = Cells(65000, 3).End(xlUp).Row To 1 Step -1

Application.StatusBar = R

If Cells(R, 4).Value > 0 Then Cells(R, 3).Delete Shift:=xlUp

Next

Range("B1:B4000").ClearContents

Range("D1:D20000").ClearContents

Application.StatusBar = False

Application.Calculation = xlCalculationAutomatic

Application.ScreenUpdating = True

End Sub

 

Lukk VB-editoren, gå til liste-arket ditt.

Excelmeny Verktøy - Makro - Kjør makro, kjør makroen ScanSheet. Den tar litt tid, du ser progresjonen nederst til venstre i Excel.

 

HTH. beste hilsen Harald

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...