Avatar billede JP9 Juniormester
09. august 2016 - 14:01 Der 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

Håber ovenstående er forståeligt :-)

På forhånd tak for jeres hjælp!
Avatar billede supertekst Ekspert
09. august 2016 - 14:07 #1
Hvor mange rækker er der ca. tale om?
Avatar billede Jessen Seniormester
09. august 2016 - 14:16 #2
Hej,

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
Avatar billede JP9 Juniormester
09. august 2016 - 14:18 #3
Hej Supertekst

Det kan variere men min. 200 op til ca. 6000 rækker.
Avatar billede supertekst Ekspert
09. august 2016 - 14:26 #4
Tak
Er i gang med en VBA-løsning..
Avatar billede JP9 Juniormester
09. august 2016 - 15:20 #5
Hej Jessen

Beklager det er også lidt snørklet.

I dit eksempel er de nederste 3 linier forkerte for værdien findes kun som:
201610118 Klaus. Den findes godt nok 3 gange, men der er kun den ene.

I nedenstående eksempel er der to identiske numre, men med forskelligt navn. dem vil jeg gerne have markeret med NEJ

Håber det giver mening!

NEJ    201610116    Poul            201610116 Poul    NEJ
NEJ    201610116    Peter    201610116 Peter
Avatar billede ebea Ekspert
09. august 2016 - 15:35 #6
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
Avatar billede supertekst Ekspert
09. august 2016 - 15:52 #7
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
Avatar billede JP9 Juniormester
09. august 2016 - 16:07 #8
Hej Supertekst

Mange tak for løsningen.

Jeg tester den lige lidt mere i morgen, umiddelbart får jeg ikke helt det ønskede resultat.
Avatar billede supertekst Ekspert
09. august 2016 - 16:22 #9
Hej JP9

Selv tak

Hvis det kan være en hjælp - så kan du få min testfil.
Aktiver "Kontakt" på www.supertekst-it.dk - så sender jeg filen.
Avatar billede JP9 Juniormester
10. august 2016 - 09:34 #10
Hej Supertekst

Så har jeg teste løsningen, den virker perfekt med et par enkelte tilføjelser.

Nr. har jeg ændret til variant grundet antal cifre der kan indgå i cellen.
Numrene skal være sorteret i faldende orden.

Mange tak for hjælpen :-)
Avatar billede supertekst Ekspert
10. august 2016 - 09:42 #11
Hej JP9

Fint og selv tak..
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

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