• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Stukje tekst uit een cel met tekst halen

Status
Niet open voor verdere reacties.

Woffels

Gebruiker
Lid geworden
8 jan 2006
Berichten
251
Ik heb dit in een cel staan:
D:\XLS\Database_1\data\Program_12892_2020_11.txt

Nu wil ik alleen 12892 uit deze tekst in een cel hebben.

Waarbij dit gedeelte (D:\XLS\Database_1\data\) altijd anders kan zijn, zowel in lengte als gebruikte tekens.
Dit nummer (12892) kan ook een willekeurige lengte hebben en ook letters.
De underscores waartussen 12892 staat, zijn er wel altijd.

Als ik dat woordelijk zou moeten formuleren:
Alles wat staat tussen de eerste twee underscores na de laatste backslash.
 

Bijlagen

Met office 365 kan het met de nieuwe TEXTBEFORE en TEXTAFTER functies.

Code:
=TEXTBEFORE(TEXTAFTER(TEXTAFTER(A1;"\";LEN(A1)-LEN(SUBSTITUTE(A1;"\";"")));"_");"_")
 
Of met een UDF:
Code:
Function Deeltje(Target As Range) As String
    p1 = Split(Target, "\")
    p2 = Split(p1(UBound(p1)), "_")
    Deeltje = p2(1)
End Function
Zie C4.
 

Bijlagen

Code:
=CHOOSECOLS(REDUCE(0;TEXTSPLIT(B4;"\");LAMBDA(a;b;TEXTSPLIT(b;"_")));2)
 
Als de vorige niet werkt in jouw versie, dan hier nog een alternatief

Code:
=FILTERXML("<x><y>"&SUBSTITUTE(B4;"_";"</y><y>")&"</y></x>";"//y[contains(preceding::*[1],'\')][last()]")
 
Klassieke UDF:

Code:
Function F_snb(c00)
   F_snb = Split(Filter(Split(c00, "\"), ".")(0), "_")(1)
End Function
 
Laatst bewerkt:
Het is de oplossing van JEC. geworden:

Code:
=XML.FILTEREN("<x><y>"&SUBSTITUEREN(D3;"_";"</y><y>")&"</y></x>";"//y[contains(preceding::*[1],'\')][last()]")

Bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan