Přejít k hlavnímu obsahu

Jak rychle extrahovat název souboru z celé cesty v aplikaci Excel?

Předpokládejme, že máte list, který obsahuje seznam cest k souborům, nyní byste chtěli z každé cesty extrahovat pouze název souboru (pravá část konečného zpětného lomítka), jak je znázorněno na následujících obrázcích. Existují nějaké rychlé triky, jak tento úkol zvládnout?

Extrahujte název souboru z celé cesty pomocí vzorce v aplikaci Excel
Extrahujte název souboru z celé cesty pomocí funkce definované uživatelem
Extrahujte název souboru z celé cesty pomocí kódu VBA


Extrahujte název souboru z celé cesty pomocí vzorce v aplikaci Excel

V aplikaci Excel můžete pomocí následujícího vzorce rychle extrahovat z celé cesty pouze název souboru.

Vyberte prázdnou buňku, zadejte do ní následující vzorec a stiskněte klávesu vstoupit klíč.

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

Tipy: A1 je buňka, ze které chcete extrahovat název souboru), stiskněte tlačítko Enter a poté přetažením úchytu vyplňte požadovaný rozsah. Poté se z každé buňky extrahuje název souboru.

název výpisu dokumentu1


Extrahujte název souboru z celé cesty pomocí funkce definované uživatelem

S následující funkcí definovanou uživatelem můžete snadno a rychle získat název souboru.

1. Podržte ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

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. Stiskněte Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno a vrátit se zpět do listu. V prázdné buňce, například B1, zadejte do ní následující vzorec a stiskněte vstoupit klíč.

=FunctionGetFileName(A1)

doc-extract-názvy souborů1

Poté znovu vyberte buňku B1, přetáhněte úchyt výplně do rozsahu, na který chcete použít tento vzorec, a všechny názvy souborů byly extrahovány z úplných cest jako následující výsledek:

doc-extract-názvy souborů1


Extrahujte název souboru z celé cesty pomocí kódu VBA

Kromě funkce definované uživatelem vám kód VBA také pomůže extrahovat názvy souborů. Udělejte prosím toto:

1. Podržte ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do okna modulu.

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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a vyberte rozsah, ze kterého chcete extrahovat název souboru, viz screenshot:

doc-extract-názvy souborů1

4. A pak klikněte na tlačítko OK, byly názvy souborů z výběru extrahovány následovně:

Poznámka: S tímto kódem VBA budou původní data zničena, takže byste si před použitím tohoto kódu měli jeden zkopírovat.

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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