Avatar billede Mads32 Ekspert
07. juni 2016 - 21:12 Der er 4 kommentarer og
3 løsninger

Find data, og lav tabel med disse

På et faneblad, har jeg i 4 kolonner: B, C, D og E  indtastet kontonumre. Kontonumrene er indtastede i området B10:E5000. Kontonumrene står i en tilfældig orden. Der er tomme celler i alle kolonner. Et kontonummer kan kun  optræde i en kolonne, men kan optræde mange gange i samme kolonne.

Jeg søger en løsning der viser hvilke kontonumre der optræder i hver kolonne. Vist som en tabel i kolonnerne G, H, I og J, startende i linje 10 ,Dubletter skal kun vises en gang.

Jeg anvender Exel2010 og Windows8.
Avatar billede jens48 Ekspert
08. juni 2016 - 10:09 #1
Prøv med denne makro:

Sub Filtrer()
Dim r, k, rk As Integer
For k = 2 To 5
rk = 10
For r = 10 To 5000
If WorksheetFunction.CountIf(Range(Cells(10, k + 5), Cells(5000, k + 5)), Cells(r, k)) = 0 Then
Cells(rk, k + 5) = Cells(r, k)
rk = rk + 1
End If
Next
Next
End Sub
Avatar billede petersen7913 Forsker
08. juni 2016 - 10:33 #2
Her er forskellige forslag til at undersøge en enkelt kolonne for ens data. Det kan måske give lidt inspiration?

http://superuser.com/questions/49614/how-do-i-get-the-distinct-unique-values-in-a-column-in-excel
Avatar billede sdh Mester
08. juni 2016 - 11:33 #3
Kan foretages uden VBA ved nedenstående formel:

=HVIS.FEJL(MINDSTE(HVIS(FREKVENS(B$10:B$5000;B$10:B$5000)>0;B$10:B$5000);RÆKKER($1:1));"") i celle G10. Kopier ned til række 5000 og ud til kolonne J.
Avatar billede Mads32 Ekspert
08. juni 2016 - 22:13 #4
Jens48, Petersen7913 og Sdh

Tak for jeres indlæg.

Jeg vil nu prøve jeres forslag, og informerer om resultatet.
Avatar billede Mads32 Ekspert
09. juni 2016 - 00:00 #5
Hej Jens48.

Det virker som ønsket.
Jeg skal nu blot sortere på de enkelte kolonner, for at få en opstilling i kronologisk orden på hver kolonne.

Kan du eventuelt skrive en makro, der er lige så forståelig som dit forslag. Jeg har testet med makrooptageren, men synes ikke det ser enkelt ud.
Avatar billede jens48 Ekspert
09. juni 2016 - 09:29 #6
Prøv med denne makro. Jeg har også sat en ClearContents linie ind i starten.

Sub Filtrer()
Dim r, k, rk As Integer
Range("G10:J5000").ClearContents
For k = 2 To 5
rk = 10
For r = 10 To 5000
If WorksheetFunction.CountIf(Range(Cells(10, k + 5), Cells(5000, k + 5)), Cells(r, k)) = 0 Then
Cells(rk, k + 5) = Cells(r, k)
rk = rk + 1
End If
Next
Range(Cells(10, k + 5), Cells(5000, k + 5)).Select
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range(Cells(10, k + 5), Cells(5000, k + 5)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range(Cells(10, k + 5), Cells(5000, k + 5))
        .Header = False
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Next
Cells(1, 1).Select
End Sub
Avatar billede Mads32 Ekspert
09. juni 2016 - 15:29 #7
Hej Jens48

Det virker. Mange tak. Men første gang jeg eksekverede makroen. Fandt den kun kontonumrene uden at sortere. jeg prøvede så igen, og vupti virkede det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester