Gå til hovedindhold

Hvordan udpakkes filnavn hurtigt fra fuld sti i Excel?

Hvis du antager, at du har et regneark, som indeholder en liste over filstier, vil du nu gerne udtrække filnavnet (den højre del af den endelige skråstreg) fra hver sti som vist på følgende skærmbilleder. Er der nogle hurtige tricks til at håndtere denne opgave?

Uddrag filnavn fra fuld sti med formel i Excel
Uddrag filnavn fra fuld sti med brugerdefineret funktion
Uddrag filnavn fra fuld sti med VBA-kode


Uddrag filnavn fra fuld sti med formel i Excel

I Excel kan du bruge nedenstående formel til hurtigt at udtrække kun filnavnet fra den fulde sti.

Vælg en tom celle, indtast nedenstående formel i den, og tryk derefter på Indtast nøgle.

=MID(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))+1,LEN(A1))

Tips: A1 er den celle, du vil udtrække filnavnet fra), og tryk på Enter-knappen, og træk derefter udfyldningshåndtaget for at udfylde det ønskede område. Derefter udtrækkes filnavnet fra hver celle.

doc-ekstrakt navn1


Uddrag filnavn fra fuld sti med brugerdefineret funktion

Med følgende brugerdefinerede funktion kan du nemt og hurtigt få filnavnet.

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

Function FunctionGetFileName(FullPath As String) As String
'Update 20140210
Dim splitList As Variant
splitList = VBA.Split(FullPath, "\")
FunctionGetFileName = splitList(UBound(splitList, 1))
End Function

3. Tryk andre + Q taster for at lukke Microsoft Visual Basic til applikationer vinduet og gå tilbage til arbejdsarket. I en tom celle, for eksempel B1, skal du indtaste nedenstående formel i den og trykke på Indtast nøgle.

=FunctionGetFileName(A1)

doc-udtræk-filnavne1

Vælg derefter celle B1 igen, træk fyldhåndtaget til det område, du vil anvende denne formel, og alle filnavne er blevet udtrukket fra de fulde stier som følgende resultat:

doc-udtræk-filnavne1


Uddrag filnavn fra fuld sti med VBA-kode

Udover den brugerdefinerede funktion kan en VBA-kode også hjælpe dig med at udtrække filnavnene. Gør venligst som dette:

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i modulvinduet.

Sub GetFileName()
'Update 20140210
Dim Rng As Range
Dim WorkRng As Range
Dim splitList As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    splitList = VBA.Split(Rng.Value, "\")
    Rng.Value = splitList(UBound(splitList, 1))
Next
End Sub

3. Tryk derefter på F5 tasten for at køre denne kode, og vælg det område, du vil udpakke filnavnet fra, se skærmbillede:

doc-udtræk-filnavne1

4. Og klik derefter på OK, er filnavnene blevet ekstraheret fra markeringen som følger:

Bemærk: Med denne VBA-kode vil de originale data blive ødelagt, så du bør kopiere en, før du anvender denne kode.

Bedste kontorproduktivitetsværktøjer

Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøj (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøj (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøj (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøj (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

kte-fane 201905


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Very useful function. Is there a way to modify the script so it finds the filename if the path has either \ or / slashes?

I have a spreadsheet with various hyperlinks where the underlying paths are either \ or / (back slash or forward slash) separates - I think its because some of the links to files were done just as bookmarks in Word originally, or to files on an internal doc server. Or maybe its because some path links are made with absolute vs relative path links?

eg:

../../../../Documents/2ndQuarter/2019/standardcost_widget12345.pdf
or
\fileserver\factory23\Operations\Parts_Mgt\Documents\2ndQuarter\2019\standardcost_widget12345.pdf


When I ran the getfilename function, it got all the filenames that were in paths with \ between directories or folders, but the links with / slashes were returned as is.
I altered & added a second function that was similar but replaced the "\" in line 4 with "/" and called it forwardslashgetfilename and run it in a separate column after I run the first function.

Running one function after another is not difficult, but I was curious if you can expand the code in splitList operation in line 4 to include both "\" or "/". I'm no VBA programmer but I tried splitList = VBA.Split(FullPath, "\" or "/") and it didn't work.

Thoughts? I'm assuming its some simple syntax - I'm just clueless at this point... but I will start poking around the interwebs...

Tks!
This comment was minimized by the moderator on the site
The formula raises a #VALUE! error if the source cell has only a filename to begin with.. Embedding the entire formula in an IFERROR function solves this problem, e.g., =IFERROR(<orig formula>,A1)
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations