Avatar billede snr Nybegynder
23. juli 2008 - 08:09 Der er 18 kommentarer og
1 løsning

Find unikt tal i tekst celle

Hej

Jeg har et problem med et find den rigtige formel som kan hjælpe. Jeg er gået helt i stå, håber der er et klogt hoved som kan hjælpe mig

Mit problem er følgende:

Jeg har flere tekstceller, hvor i der både er tal og tekst. I alle cellerne, er der et unikt 5 ciff. nummer. Som jeg er interesseret i. Celler kan også indeholde andre tal og det er forskelligt hvor i cellen det 5 ciff. nummer er noteret.

Jeg har en liste med alle de 5 ciff. numre som er unikke.

Mit ønske er at få de 5 ciff. isoleret i sin egen celle via en formel eller?

Kan en hjælpe mig?

Eksempel på data:

Xxx12345
Xxx23456
Xx34567zz
Zz: 45678zz

Liste med unikke numre:
12345
23456
34567
45678
Avatar billede excelent Ekspert
23. juli 2008 - 10:08 #1
Function Udskil(adr)
If InStr(adr, "12345") > 0 Then Udskil = 12345
If InStr(adr, "23456") > 0 Then Udskil = 23456
If InStr(adr, "34567") > 0 Then Udskil = 34567
If InStr(adr, "45678") > 0 Then Udskil = 45678
End Function

I arket taster du =Udskil(celle) - hvor celle er fx A1 eller andet
Indsæt koden i et alm.
Avatar billede excelent Ekspert
23. juli 2008 - 10:45 #2
eller en formel, denne tester i A2

=HVIS(UDSKIFT(A2;"12345";"")<>A2;12345;HVIS(UDSKIFT(A2;"23456";"")<>A2;23456;HVIS(UDSKIFT(A2;"34567";"")<>A2;34567;HVIS(UDSKIFT(A2;"45678";"")<>A2;45678;""))))
Avatar billede snr Nybegynder
23. juli 2008 - 10:52 #3
Tak for det hurtige svar

Jeg var dog ikke klar nok i min formulering

Den unikke liste består af ca. 10000 forskellige numre og er i en seperat liste som ligger i et ark ved siden af.


Jeg kan yderemere ikke få ovenstående funktion til at virke. Kan du udbyde den forklaring "I arket taster du =Udskil(celle) - hvor celle er fx A1 eller andet
Indsæt koden i et alm."

Det skal dog siges jeg ikke er helt skarp
Avatar billede snr Nybegynder
23. juli 2008 - 11:03 #4
Hov

Det gik vidst lidt hurtigt for mig, beklager

Det jeg prøver at sige er:
Jeg har en liste på 10000 unikke numre og den skal gerne tjekke op mod denne liste. Hvis et af de unikke numere er repræsenteret i tekstcellen skal den gerne fremkomme i celle vedsiden af.

Du har faktisk hjulpt et langt stykke på vejen, men jeg mangler stadig at lage tjekket opmod denne liste. Er det noget du kan hjælpe med?
Avatar billede excelent Ekspert
23. juli 2008 - 11:05 #5
Ok så skal funktionen "Udskil" lige revideres lidt

Men du starter med at kopiere koden herfra
Retur til Excel og tast ALT+F11
Vælg Module i menuen Insert
indsæt koden her.

Hvo har du den unikke liste?
Avatar billede snr Nybegynder
23. juli 2008 - 11:14 #6
Det unikke numre. går fra 00001 til 10000 hvis det kan hjælpe?
Avatar billede excelent Ekspert
23. juli 2008 - 11:15 #7
nej hvor har du den - arknavn celler ?
Avatar billede snr Nybegynder
23. juli 2008 - 11:16 #8
Kan det laves som en funktion, da jeg ikke er så stræk i Makro'er
Avatar billede excelent Ekspert
23. juli 2008 - 11:17 #9
Jeg kan ikke lave det uden makro
Avatar billede snr Nybegynder
23. juli 2008 - 11:18 #10
Fanenavnet er "agentkode" og ligger i 2 kolonner A1 til A50000, hvor de første 50000 ligger og forsætter i B1 til B50000
Avatar billede excelent Ekspert
23. juli 2008 - 11:25 #11
mener du ikke A5000 og B5000 ?
Avatar billede snr Nybegynder
23. juli 2008 - 11:29 #12
Nej.... Det går lidt stærkt idag :-( Min liste er på 100000 nummre og derfor er det fra A50000 og B50000
Avatar billede excelent Ekspert
23. juli 2008 - 11:33 #13
prøv denne, det er muligt den kører lidt sløvt, det er mange celler der skal testes

Function Udskil(adr)
Application.Volatile
Set sh = Sheets("agentkode")
For t = 1 To 50000
If InStr(adr, sh.Cells(t, 1)) > 0 Then Udskil = sh.Cells(t, 1): Exit For
Next
If Udskil = "" Then
For t = 1 To 50000
If InStr(adr, sh.Cells(t, 2)) > 0 Then Udskil = sh.Cells(t, 2): Exit For
Next
End If
End Function
Avatar billede snr Nybegynder
23. juli 2008 - 12:08 #14
Hvad skal jeg gøre efter følgende? Jeg kan ikke få den til at lave udførelsen og derved kan jeg heller ikke teste om det virker?

"Men du starter med at kopiere koden herfra
Retur til Excel og tast ALT+F11
Vælg Module i menuen Insert
indsæt koden her."

Kan du hjælpe
Avatar billede excelent Ekspert
23. juli 2008 - 12:14 #15
Når du har valgt Module i insert menuen, fremkommer et vindue som hedder Projektmappenavn - Module1(code)
Det er her koden skal indsættes
Så taster du ALT+F11 igen for at vende tilbage til Excelarket
Her indsætter du i cellen til højre for den første celle med blandet værdier : =udskil(celle)
Så kan du trække ned i fyldhåndtaget så langt som du har data med blandet værdier
Avatar billede excelent Ekspert
23. juli 2008 - 12:17 #16
du kan også sende filen til mig hvis det er nemmere pm@madsen.tdcadsl.dk
Avatar billede zxa Nybegynder
23. juli 2008 - 21:01 #17
Hej, når i har lavet makroen smider i den så her ind for jeg er også nys.

zxa
Avatar billede snr Nybegynder
24. juli 2008 - 08:18 #18
Til excelent

Makro'en virker fint.

Tak for hjælpen. Du har selvfølgelig ret i et funktion ville være nemre, men det er ikke nødvendigt.

Hvis du kan få den til at fungerer må du gerne, men er ikke noget must fra min side. Det kunne dog være smart med en sådan funktion til andre opgaver
Avatar billede excelent Ekspert
24. juli 2008 - 12:46 #19
ok kikker på Funktion ved lejlighed

Sub Adskil()

Set sh = Sheets("Ark2")
rk = sh.Cells(5000, "A").End(xlUp).Row
sh.Range("P1:P3000") = ""

For t = 1 To rk
x = "*" & Cells(t, 1)
For v = 2 To Len(x) - 4
If Not IsNumeric(Mid(x, v - 1, 1)) And Not IsNumeric(Mid(x, v + 5, 1)) Then
y = Trim(Mid(x, v, 5))
y = Application.WorksheetFunction.Substitute(y, ".", "")
y = Application.WorksheetFunction.Substitute(y, ",", "")
y = Application.WorksheetFunction.Substitute(y, ":", "")
y = Application.WorksheetFunction.Substitute(y, "-", "")
If Len(y) = 5 And IsNumeric(y) And y > 0 And y < 100001 Then Cells(t, "P") = y
End If
Next
Next

End Sub
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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