Note: The other languages of the website are Google-translated. Back to English
Přihlásit se  \/ 
x
or
x
Registrace  \/ 
x

or

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ší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
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 omezuje stovky kliknutí myší každý den!
officetab dno
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Rese · 1 years ago
    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!
  • To post as a guest, your comment is unpublished.
    bob · 3 years ago
    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)