Avatar billede lk1218 Nybegynder
04. august 2008 - 10:03 Der er 13 kommentarer

Sammenlign rå data

Hej

Jeg vil gerne lave en sammenligning af noget rå data som jeg får hver uge. Det drejer sig om hundrevis af nogen såkaldte "IM" nr.

Disse "IM" nr. ser således ud og står i kolonne A
IM3182486
IM3182517
IM3182529
IM3182571
IM3182575
IM3182576
IM3182577
IM3182578
IM3182579
IM3182580
IM3182582
....

Jeg vil gerne samenligne om der er nogen genganger fra sidste jeg modtog disse "IM" nr.
Det samme "IM" nr. kan godt skifte placering fra uge til uge - altså måske står IM312582 i celle A34 i den ene uge men i næste uge står den i celle A345

Hvordan finder jeg ud af om der er nogen genganger?
og hvordan "peger" jeg dem ud?

På forhånd tak

Mvh

/Kudsk
Avatar billede kabbak Professor
04. august 2008 - 10:51 #1
Som formel

Trækkes lige så langt som der er data, Værdi > 1 = gengangere

=TÆL.HVIS(A:A;A1)
Avatar billede lk1218 Nybegynder
04. august 2008 - 11:48 #2
Jeg synes ikke det virker. Jeg tror måske ikke jeg har forklaret mig godt nok. Sagen er at jeg har to kolonner.

I kolonne A har jeg data (IM nummer) fra sidste uge.
I kolonne B har jeg data (IM nummer) fra denne uge.

Det er de to kolonner jeg skal sammenligne. Hvis et af talne er i begge kolonner, uanset placering, skal jeg vide hvor disse står. Og jeg skal altså kunne tælle antallet af genganger.

/Kudsk
Avatar billede kabbak Professor
04. august 2008 - 14:31 #3
Ok, vi prøver med kode

Du skal have en tom C kolonne, der skrives antaller af dubletter.
Dubletter vil have samme farve og antallet svarer til IM nummeret i kolonne A

Sub FindDubletter_i_A_B()
    Dim Co As Integer, Antal As Integer, Data1 As Variant, Data2 As Variant
    Dim I As Integer, X As Integer
    Co = 2
    Data1 = Range("A1:A" & Range("A65536").End(xlUp).Row)
    Data2 = Range("B1:B" & Range("B65536").End(xlUp).Row)
    For I = 1 To UBound(Data1)
        Antal = 0
        Co = Co + 1
        For X = 1 To UBound(Data2)
            If Data1(I, 1) = Data2(X, 1) Then
                Antal = Antal + 1
                Cells(X, "B").Interior.ColorIndex = Co
                Cells(I, "A").Interior.ColorIndex = Co
                Cells(I, "C") = Antal
            End If
        Next
    Next
End Sub
Avatar billede lk1218 Nybegynder
04. august 2008 - 14:51 #4
1000 tak for hurtigt respons. Jeg er ikke så skrap til Excel. Hvor skriver jeg denne kode?
Avatar billede kabbak Professor
04. august 2008 - 15:00 #5
I dit regneark, tryk ALT+F11, så er du i kode modulet, vælg insert > module, oppe på menulinjen.

På den store hvide flade kopierer du koden ind, du tager den bare herfra.

Luk på det øverste venstre X, og du er tilbage på arket.

Gem regnearket

Stå på det ark med de 2 kolonner der skal sammenlignes.
Vælg Funktioner > Makro > Makroer , vælg FindDubletter_i_A_B tryk ok, så skulle den køre.

Hvis nu den ikke vil køre makro, er din sikkerhed nok for høj, det ændres i.

Funktioner > Makro > sikkerhed , der sætter du den til lav eller mellem.

du skal gemme og lukke excel, inden det virker, åben derefter mappen igen
Avatar billede lk1218 Nybegynder
04. august 2008 - 15:34 #6
Ok - jeg kunne godt få den til at køre makrone. Men Mine tal starter først ved A8 og B8 kan jeg så ændre din kode?

Og så skriver den noget med en Run-time error '9': Subscript out of range
Hvad betyder det?
Jeg har mulighed for at trykke: end, debug, Help.

Jeg får et forskelligt antal IM nr. fra uge til uge. Hvordan sikre jeg mig mod det således at makroen ikke står og køre igennem til celle 6500000 eller hvor langt den nu køre ned af.
Avatar billede kabbak Professor
04. august 2008 - 16:54 #7
nej du skal ikke ændre til A8

ret
For I = 1 To UBound
For X = 1 To UBound
til
For I = 8 To UBound
For X = 8 To UBound

denne tjekker automatisk, hvor mange rækker der er
Data1 = Range("A1:A" & Range("A65536").End(xlUp).Row)
Avatar billede lk1218 Nybegynder
05. august 2008 - 08:21 #8
Undskyld - men kan du så skrive hvordan hele koden kommer til at se ud istedet da jeg ikke ved hvor jeg skal rette det ovenstående?

På forhånd tak
Avatar billede kabbak Professor
05. august 2008 - 08:59 #9
Sub FindDubletter_i_A_B()
    Dim Co As Integer, Antal As Integer, Data1 As Variant, Data2 As Variant
    Dim I As Integer, X As Integer
    Co = 2
    Data1 = Range("A1:A" & Range("A65536").End(xlUp).Row)
    Data2 = Range("B1:B" & Range("B65536").End(xlUp).Row)
    For I = 8 To UBound(Data1)
        Antal = 0
        Co = Co + 1
        For X = 8 To UBound(Data2)
            If Data1(I, 1) = Data2(X, 1) Then
                Antal = Antal + 1
                Cells(X, "B").Interior.ColorIndex = Co
                Cells(I, "A").Interior.ColorIndex = Co
                Cells(I, "C") = Antal
            End If
        Next
    Next
End Sub
Avatar billede lk1218 Nybegynder
05. august 2008 - 09:10 #10
Den tjekker hvor lange rækkerne er men lige nu er de ikke tomme men der står i stedet "FALSK" og så er den vel ikke tom og derved vil der være mange genganger da der i begge kolonner vil være masser celler med "Falsk"
Avatar billede lk1218 Nybegynder
05. august 2008 - 11:47 #11
Hvis der ikke er nogen genganger giver makroen så ikke besked om at den er afspillet for ellers tror jeg at der er noget galt og den ikke e rafspillet og trykker og trykker igen og igen.
Avatar billede kabbak Professor
05. august 2008 - 11:50 #12
Den tjekker, som den er nu, kolonne A op mod B, hvis der er ens, farver den dem og skriver antallet i C
Avatar billede lk1218 Nybegynder
06. august 2008 - 08:53 #13
Kan man lave det således i stedet (beklager):

Mit formål med makroen er:
At finde ud af hvilke IM nr. der er genganger fra uge til uge og hvor mange uger (uger, dage, timer) det pågældende IM nr. har været "aktivt" (aktivet er den periode fra det blev oprettet til dags dato - jeg får en oprettelse dato med dato og klokkeslæt).
-------------
Min tanke var så at jeg deler mine IM nr. op i kolonner med hver sin uge således at IM nr. oprettet i uge 1 er i kolonne A, IM nr. oprettet i uge 2 er i kolonne b osv.
Derefter vil jeg gerne vide hvilke IM nr. der stadigvæk er der når jeg nu får Im nr. for uge 31 (sidste uges IM nr. - jeg får dem altid om tirdagen).
Hvis det kunne blive således at man faktisk fik en markering af de IM nr. der var aktive i de respektive uger således at hvis IMXXXXXX var aktivt fra uge 3 til uge 7 så kunne man se en gul streg fra uge 3 til uge 7 og derved vil man få et visuelt billede af de aktive IM nummer fra uge til uge.
Problemet vil dog være, vil jeg tro, at samle IMXXXX på samme række nr. således at man kan få en vandret linje.
Håber du forstår og ellers må du meget gerne ringe til mig på tlf: 2095 8283
På forhånd 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
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