09. august 2016 - 14:01Der er
10 kommentarer og 1 løsning
Marker unikke værdier!
Hej Eksperter
Jeg håber på jeres hjælp til en "lille" Excel opgave.
Jeg har en række numre i kolonne B og en række navne i kolonne C, se nedenstående eksempel.
Jeg vil gerne have Excel til at tjekke om nummeret sammen med navnet er unikt ud for hver linie. Som I kan se findes numrene flere gange. Der må ikke slettes eller skjules linier, da flere oplysninger findes for hver linie til højre i arket, derfor findes nr. og navn flere gange.
Unik? Nr. Navn JA 201610112 Hans JA 201610113 Erik NEJ 201610116 Poul NEJ 201610116 Poul NEJ 201610116 Peter JA 201610117 Gunnar JA 201610118 Klaus JA 201610118 Klaus JA 201610118 Klaus
Jeg bliver lidt forvirret af dit eksempel ovenfor, da jeg ikke synes at dine "Ja" og "Nej" markeringer stemmer helt overens med det du skriver i teksten.
Jeg foreslår, at du i en ledig kolonne (her kolonne D) laver en sammentrækning af nummer og navn. Fx. "=B1&C1", som giver fx. "201610112 Hans". I næste kolonne laver tæller jeg antallet af samme forekomst, og hvis det er 1, så er den unik, ellers ej. I kolonne E har jeg følgende formel: "=HVIS(TÆL.HVIS(D:D;D2)=1;"JA";"NEJ")"
Her er dit eksempel, med de to nye kolonner:
Unik? Nr. Navn Sammentrækning Unik JA 201610112 Hans 201610112 Hans JA JA 201610113 Erik 201610113 Erik JA NEJ 201610116 Poul 201610116 Poul NEJ NEJ 201610116 Poul 201610116 Poul NEJ NEJ 201610116 Peter 201610116 Peter JA JA 201610117 Gunnar 201610117 Gunnar JA JA 201610118 Klaus 201610118 Klaus NEJ JA 201610118 Klaus 201610118 Klaus NEJ JA 201610118 Klaus 201610118 Klaus NEJ
Du kan også teste med en lille formel, hvis ikke du vil bruge en VBA løsning, som Supertekst godt nok er ved at lave. Men så har du 2 muligheder at prøve med. Indsæt formlen i A1, og kopier nedad, så langt data er ned. =TÆL.HVIS($B:$C;C1)=1
Dim antalRækker As Integer, ræk As Integer, nr As Long, navn As String Dim startRæk As Integer, slutRæk As Integer Public Sub markerOmUnik() Application.ScreenUpdating = False antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
For ræk = 2 To antalRækker startRæk = ræk nr = Range("B" & ræk) navn = Range("C" & ræk)
If testOmUnik(nr, navn, ræk) = True Then marker "JA", startRæk, slutRæk Else marker "NEJ", startRæk, slutRæk ræk = slutRæk End If Next ræk End Sub Private Function testOmUnik(nr, navn, række) Dim ræk As Integer, ræk1 As Integer, ejUnik As Boolean ræk1 = række
For ræk = ræk1 To antalRækker Rem test om næste række har samme nr If nr = Range("B" & ræk + 1) Then Rem Test om samme navn If navn <> Range("C" & ræk + 1) Then ejUnik = True End If Else Rem Andet nr If ejUnik = False Then testOmUnik = True Else testOmUnik = False End If slutRæk = ræk Exit Function End If Next ræk End Function Private Sub marker(tekst, fraRæk, tilRæk) Dim ræk As Integer For ræk = fraRæk To tilRæk Range("A" & ræk) = tekst Next ræk End Sub
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.