Forfatter |
Emne Søg Emne funktioner
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Emne: Find tal i tekst Sendt: 05.Feb.2016 kl. 12:38 |
Jeg skal lave en formel, der finder et tal, der er 10 cifre langt i en tekst.
Teksten kunne være "Der findes 20 forskellige produkter med p. nr 2040532316 og i 20 eksemplarer"
Hvordan laver jeg en formel der finder "2040532316" ? Det jeg ved er at jeg skal finde et ti cifret tal der starter med 20.
Men jeg kan kun finde ud af at finde "20 forskel". Problemet er at jeg ikke ved hvornår i teksten taller kommer og om det kommer.
=HVIS.FEJL(HVIS.FEJL(MIDT($O23;FIND(Q$2;$O23);10);"")*1;"") Hvor O23 er teksten og O2 er de "20" der skal ledes efter. Problemet med denne formel er at den "kun" finder første sted i teksten der står 20 og tager så de næste 8 tegn så jeg får et ti cifret tal eller tekst. Denne formel skelner heller ikke om den finder en tekst eller et helt tal.
På forhånd tak for hjælpen.
|
|
|
|
|
Inaktiv profil
Gæst
Medlem: 01.Apr.2015
Land: Danmark
Status: Offline
Point: 0
|
Sendt: 05.Feb.2016 kl. 13:10 |
Tryk på Alt+F11, tryk på Insert Module og indsæt følgennde kode:
Function FindTicifretTal(S As String) As Long Dim X As Long For X = 1 To Len(S) If Mid(S, X, 10) Like "##########" Then FindTicifretTal = Mid(S, X, 10) Exit For End If Next End Function
Gå tilbage til regnearket (Alt+F11) og brug denne funktion:
=FindTicifretTal(A1) hvis du har din tekst i A1.
|
|
Inaktiv profil
Gæst
Medlem: 01.Apr.2015
Land: Danmark
Status: Offline
Point: 0
|
Sendt: 05.Feb.2016 kl. 14:04 |
Glem ovenstående. Det virker ikke korrekt.
|
|
Inaktiv profil
Gæst
Medlem: 01.Apr.2015
Land: Danmark
Status: Offline
Point: 0
|
Sendt: 05.Feb.2016 kl. 14:36 |
Her er en kode fra en der kalder sig shg. Jeg ved ikke mere om vedkommende:
Function GetTheNum(sInp As String, nDigits As Long) As String
' returns the first match of nDigits or more digits
With CreateObject("vbscript.regexp")
.Pattern = "\d{" & nDigits & ",}"
If .Test(sInp) Then
GetTheNum = .Execute(sInp)(0).Value
End If
End With
End Function Brug herefter: =GetTheNum(A1;10)
|
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Sendt: 06.Feb.2016 kl. 12:38 |
Tak for det
|
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Sendt: 06.Feb.2016 kl. 12:41 |
Tak for det.
Det kan jeg godt få til at virke.
Men der mangler lige et parametre, som jeg ikke helt kan gennemskue, hvor jeg skal putte ind i koden. For nu finder en det første tal i teksten, der er 10 karakter langt. Fint. Men hvis jeg det krav at tallet med 10 cifre som skal findes skal begynde med "20" og som jeg også vil kunne variere/ændre på - hvad gør jeg så ? (Dvs. i den ene situation skal det starte med "20" i den anden situation skal det fx. starte med "15"):
Tekst " 20 produkter med pnr 2034575891 og 9 stk af pnr 1594835624" Dvs. at teksten strengen kan indeholde to eller flere tal på 10 cifre, men jeg vil kunne bestemme om det er 2034575891 eller1594835624 jeg vil finde.
Jeg håber jeg formulere mig klart.
|
|
Inaktiv profil
Gæst
Medlem: 01.Apr.2015
Land: Danmark
Status: Offline
Point: 0
|
Sendt: 07.Feb.2016 kl. 07:24 |
Function GetTheNum2(sInp As String, prefix As String, nDigits As Long) As String With CreateObject("vbscript.regexp") .Pattern = prefix & "\d{" & nDigits & "}" If .Test(sInp) Then GetTheNum2 = .Execute(sInp)(0).Value End If End With End Function
=GetTheNum2(A1; "20"; 8)
|
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Sendt: 08.Feb.2016 kl. 09:29 |
Super - mange tak for din hjælp
|
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Sendt: 15.Feb.2016 kl. 08:51 |
Når jeg åbner regnearket igen så alle de steder jeg bruger funktionen GetTheNum2 så står der "#NAVN?" - hvorfor det ?
Kan jeg tvinge regnearket til at genberegne - Vil et hjælpe ? Hvordan gør man det - F9 ?
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
|
Sendt: 15.Feb.2016 kl. 10:31 |
Har du makroer aktiveret?
(Genberegn = F9)
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
MrC
Sølv bruger
Medlem: 19.Maj.2015
Land: DK
Status: Offline
Point: 136
|
Sendt: 16.Feb.2016 kl. 08:12 |
Jeg ændrede indstillingerne med at give makroerne tilladelse til at køre. Men stadig samme fejl.
Så gemte jeg regnearket som et nyt navn og wupti virkede det. - Jeg forstår ikke horfor.
|
|