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

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
Komentáře (2)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Vzorec zvyšuje #HODNOTU! chyba, pokud má zdrojová buňka na začátku pouze název souboru. Vložení celého vzorce do funkce IFERROR tento problém řeší, např. =IFERROR( ,A1)
Tento komentář byl moderátorem webu minimalizován
Velmi užitečná funkce. Existuje způsob, jak upravit skript tak, aby našel název souboru, pokud má cesta buď \ ​​nebo / lomítka?

Mám tabulku s různými hypertextovými odkazy, kde jsou základní cesty buď \ ​​nebo / (zpětné lomítko nebo lomítko) oddělené - myslím, že je to proto, že některé odkazy na soubory byly původně vytvořeny jako záložky ve Wordu nebo na soubory na interní doc server. Nebo možná proto, že některé odkazy na cestu jsou vytvořeny s absolutními vs relativními odkazy na cestu?

např:

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


Když jsem spustil funkci getfilename, získala všechny názvy souborů, které byly v cestách s \ mezi adresáři nebo složkami, ale odkazy s / lomítky byly vráceny tak, jak jsou.
Změnil jsem a přidal druhou funkci, která byla podobná, ale nahradil jsem "\" na řádku 4 za "/" a nazval jsem ji forwardslashgetfilename a spustil jsem ji v samostatném sloupci po spuštění první funkce.

Spouštění jedné funkce za druhou není obtížné, ale zajímalo by mě, jestli můžete rozšířit kód v operaci splitList na řádku 4 tak, aby zahrnoval jak "\" nebo "/". Nejsem programátor VBA, ale zkusil jsem splitList = VBA.Split (FullPath, "\" nebo "/") a nefungovalo to.

myšlenky? Předpokládám, že jde o nějakou jednoduchou syntaxi - v tuto chvíli jsem prostě bezradný... ale začnu šmátrat po interwebech...

TKS!
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění