Note: The other languages of the website are Google-translated. Back to English

Hur extraherar jag snabbt filnamn från hela sökvägen i Excel?

Om du antar att du har ett kalkylblad som innehåller en lista över filvägar, vill du nu extrahera bara filnamnet (den högra delen av det slutliga snedstrecket) från varje sökväg som följande skärmdumpar visas. Finns det några snabba knep för att hantera denna uppgift?

Extrahera filnamn från hela sökvägen med formel i Excel
Extrahera filnamn från hela sökvägen med användardefinierad funktion
Extrahera filnamn från hela sökvägen med VBA-kod


Extrahera filnamn från hela sökvägen med formel i Excel

I Excel kan du använda formeln nedan för att snabbt extrahera endast filnamn från hela sökvägen.

Välj en tom cell, ange formeln nedan i den och tryck sedan på ange nyckel.

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

tips: A1 är cellen som du vill extrahera filnamnet från) och tryck på Enter-knappen och dra sedan fyllningshandtaget för att fylla det önskade området. Därefter extraheras filnamnet från varje cell.

doc extrakt namn1


Extrahera filnamn från hela sökvägen med användardefinierad funktion

Med följande användardefinierade funktion kan du få filnamnet enkelt och snabbt.

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

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. Tryck andra + Q för att stänga Microsoft Visual Basic för applikationer och gå tillbaka till kalkylbladet. I en tom cell, till exempel B1, anger du formeln nedan i den och trycker på ange nyckel.

=FunctionGetFileName(A1)

doc-extrahera-filnamn1

Välj sedan cell B1 igen, dra fyllningshandtaget till det intervall som du vill använda denna formel, och alla filnamn har extraherats från hela sökvägarna enligt följande resultat:

doc-extrahera-filnamn1


Extrahera filnamn från hela sökvägen med VBA-kod

Förutom den användardefinierade funktionen kan en VBA-kod också hjälpa dig att extrahera filnamnen. Gör så här:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationsfönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i modulfönstret.

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. Tryck sedan på F5 nyckel för att köra den här koden och välj det intervall som du vill extrahera filnamnet från, se skärmdump:

doc-extrahera-filnamn1

4. Och klicka sedan på OKhar filnamnen extraherats från urvalet enligt följande:

Anmärkningar: Med denna VBA-kod kommer originaldata att förstöras, så du bör kopiera en innan du använder den här koden.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (2)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Formeln ger ett #VÄRDE! fel om källcellen bara har ett filnamn till att börja med.. Att bädda in hela formeln i en IFERROR-funktion löser detta problem, t.ex. =IFERROR( ,A1)
Denna kommentar minimerades av moderatoren på webbplatsen
Mycket användbar funktion. Finns det något sätt att ändra skriptet så att det hittar filnamnet om sökvägen har antingen \ eller / snedstreck?

Jag har ett kalkylblad med olika hyperlänkar där de underliggande sökvägarna är antingen \ eller / (bakåt snedstreck eller snedstreck framåt) separerar - jag tror att det beror på att några av länkarna till filer gjordes precis som bokmärken i Word ursprungligen, eller till filer på en intern doc-server. Eller kanske det beror på att vissa sökvägslänkar är gjorda med absoluta vs relativa sökvägslänkar?

t.ex:

../../../../Documents/2nd Quarter/2019/standardcost_widget12345.pdf
or
\filserver\factory23\Operations\Parts_Mgt\Documents\2nd Quarter\2019\standardcost_widget12345.pdf


När jag körde getfilename-funktionen fick den alla filnamn som fanns i sökvägar med \ mellan kataloger eller mappar, men länkarna med / snedstreck returnerades som de är.
Jag ändrade och lade till en andra funktion som liknade men ersatte "\" i rad 4 med "/" och kallade den forwardslashgetfilename och kör den i en separat kolumn efter att jag kört den första funktionen.

Att köra den ena funktionen efter den andra är inte svårt, men jag var nyfiken på om du kan utöka koden i splitList-operationen på rad 4 till att inkludera både "\" eller "/". Jag är ingen VBA-programmerare men jag försökte splitList = VBA.Split(FullPath, "\" eller "/") och det fungerade inte.

tankar? Jag antar att det är en enkel syntax - jag har bara ingen aning just nu... men jag kommer att börja leta runt mellan näten...

Tks!
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL