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

Cum se extrage rapid numele fișierului din calea completă în Excel?

Presupunând că aveți o foaie de lucru care conține o listă de căi de fișiere, acum doriți să extrageți doar numele fișierului (partea dreaptă a barei oblice finale) din fiecare cale, după cum se arată în următoarele capturi de ecran. Există trucuri rapide pentru a face față acestei sarcini?

Extrageți numele fișierului din calea completă cu formula în Excel
Extrageți numele fișierului din calea completă cu funcția definită de utilizator
Extrageți numele fișierului din calea completă cu codul VBA


Extrageți numele fișierului din calea completă cu formula în Excel

În Excel, puteți utiliza formula de mai jos pentru a extrage rapid numai numele fișierului din calea completă.

Selectați o celulă goală, introduceți formula de mai jos în ea și apoi apăsați pe Intrați cheie.

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

sfaturi: A1 este celula din care doriți să extrageți numele fișierului) și apăsați butonul Enter, apoi glisați mânerul de umplere pentru a completa intervalul dorit. După aceea, numele fișierului este extras din fiecare celulă.

doc extras nume1


Extrageți numele fișierului din calea completă cu funcția definită de utilizator

Cu următoarea funcție definită de utilizator, puteți obține numele fișierului ușor și rapid.

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Fereastra Microsoft Visual Basic pentru aplicații.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

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. Apăsaţi Alt + Q tastele pentru a închide Microsoft Visual Basic pentru aplicații fereastră și reveniți la foaia de lucru. De exemplu, într-o celulă goală, B1, introduceți formula de mai jos și apăsați tasta Intrați cheie.

=FunctionGetFileName(A1)

doc-extract-nume de fișier1

Apoi selectați din nou celula B1, trageți mânerul de umplere în intervalul în care doriți să aplicați această formulă și toate numele de fișiere au fost extrase din căile complete, ca urmare:

doc-extract-nume de fișier1


Extrageți numele fișierului din calea completă cu codul VBA

Pe lângă funcția definită de utilizator, un cod VBA vă poate ajuta, de asemenea, să extrageți numele fișierelor. Vă rugăm să faceți acest lucru:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Fereastra Microsoft Visual Basic pentru aplicații.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

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. Apoi apăsați F5 tasta pentru a rula acest cod și selectați intervalul din care doriți să extrageți numele fișierului, vedeți captura de ecran:

doc-extract-nume de fișier1

4. Apoi faceți clic pe OK, numele fișierelor au fost extrase din selecție după cum urmează:

notițe: Cu acest cod VBA, datele originale vor fi distruse, deci ar trebui să copiați unul înainte de a aplica acest cod.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (2)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula ridică o #VALOARE! eroare dacă celula sursă are doar un nume de fișier pentru început.. Încorporarea întregii formule într-o funcție IFERROR rezolvă această problemă, de exemplu, =IFERROR( ,A1)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcție foarte utilă. Există o modalitate de a modifica scriptul, astfel încât să găsească numele fișierului dacă calea are fie \ sau / bare oblice?

Am o foaie de calcul cu diferite hyperlinkuri în care căile subiacente sunt fie \ sau / (back slash sau forward slash) separate - cred că este pentru că unele dintre link-urile către fișiere au fost făcute la fel ca marcaje în Word inițial sau către fișiere pe un fișier intern. doc server. Sau poate pentru că unele legături de căi sunt făcute cu legături de căi absolute vs relative?

de exemplu:

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


Când am rulat funcția getfilename, a primit toate numele de fișiere care erau în căile cu \ între directoare sau foldere, dar legăturile cu / bare oblice au fost returnate așa cum sunt.
Am modificat și adăugat o a doua funcție care a fost similară, dar am înlocuit „\” din linia 4 cu „/” și am numit-o forwardslashgetfilename și am rulat-o într-o coloană separată după ce am rulat prima funcție.

Rularea unei funcții după alta nu este dificilă, dar eram curios dacă puteți extinde codul în operația splitList din linia 4 pentru a include atât „\” sau „/”. Nu sunt programator VBA, dar am încercat splitList = VBA.Split(FullPath, "\" sau "/") și nu a funcționat.

Gânduri? Presupun că este o sintaxă simplă - nu am nicio idee în acest moment... dar voi începe să cercetez interweb-urile...

Tks!
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL