Avatar billede Daffodil Professor
28. juni 2017 - 08:16 Der er 5 kommentarer og
1 løsning

Søge højre mod venstre i tekststreng

Er det muligt at søge fra højre mod venstre i en tekststreng i excel?

Jeg har forsøgt at kombinere "Højre" med "Søg", men her udsøger den kriteriet fra venstre og tager antal tegn fra højre. Det samme gør sig gældende når jeg tillige bruger "Find"

Jeg har en tekststreng af vilkårlig længde:

xxxx/yyyy/ZZZZZZ/QQQQQ

Jeg har behov for at tage den sidste tekststreng fra skråstregen her QQQQQ. Jeg kender ikke antallet af skråstreger, der kan være alt fra NUL til mange og længden af den sidste tekst er minimum et bogstav, det vil aldrig være en skråstreg.
Avatar billede Gramstrup Mester
28. juni 2017 - 08:31 #1
En mulighed kunne være at bruge excel indbyggede funktion "Teskt til koloner" og så bruge / til at dele teksten. Så får du teksten del i flere koloner og så kan du tage kolonnen længst til højre i de enkle linjer.
Det er selvfølgelig lidt manuelt arbejde, så det afhænger om det er noget man skal gøre engang eller flere gange.
Avatar billede Daffodil Professor
28. juni 2017 - 09:13 #2
Dette er selvfølgelig en mulighed, men det er en gentagen operation på ca. 70000 linjer en gang om ugen. Kolonnen med teksten befinder sig midt i arket og jeg skal have uddraget den sidste del af teksten og placeret i sidste kolonne + 1 i regnearket. Her skal det via et LOPSLAG omsættes til en langtekst via et sæt betingelser.
Avatar billede claes57 Ekspert
28. juni 2017 - 09:26 #3
en mulighed er en makro, der ser på række(x), bruger instrrev til at finde sidste \ og mid() til at nappe det ønskede, og derefter videre til række osv til der ikke er flere data.
Avatar billede finb Ekspert
28. juni 2017 - 09:29 #4
Brug enten ERSTAT eller UDSKIFT,
i en af funktionerne kan du fx angive,
forekomst nr. 3 af "/" :
Længden af strengen, minus længden af samme streng (men
hvor / er udskiftet med "" - giver antal /.
Denne forekomst nr X kan du så erstatte med noget,
der er nemt at bruge i funktionen MIDT().
Avatar billede kabbak Professor
28. juni 2017 - 09:39 #5
brugerdefineret function


Public Function FindLeft(Hvad As Range, Streng As String)
    Application.Volatile
    FindLeft = InStrRev(Hvad, Streng, -1, vbTextCompare)
End Function

kaldes med

=FindLeft(A1;"/")
Avatar billede Daffodil Professor
28. juni 2017 - 12:30 #6
kabbak, jeg kan ikke umiddelbart få funktionen til at virke, men "InStrRev" gav mig input til at udsøge den ønskede tekststreng. Min løsning blev som følger:

a = InStrRev(Cells(r, 6), "/")
b = Mid(Cells(r, 6),a + 1,100)

Jeg har valgt antal karakterer den skal udsøge til 100, men man kan lave en beregning der tager det nøjagtige antal, hvis man lyster.

Jeg har sat de to beregninger ind i en "For - If" løkke.

Takker for inspirationen.
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