Bỏ qua nội dung chính

Làm cách nào để nhanh chóng trích xuất tên tệp từ đường dẫn đầy đủ trong Excel?

Giả sử bạn có một trang tính chứa danh sách các đường dẫn tệp, bây giờ bạn chỉ muốn trích xuất tên tệp (phần bên phải của dấu gạch chéo ngược cuối cùng) từ mỗi đường dẫn như ảnh chụp màn hình sau. Có thủ thuật nhanh nào để giải quyết công việc này không?

Trích xuất tên tệp từ đường dẫn đầy đủ với công thức trong Excel
Trích xuất tên tệp từ đường dẫn đầy đủ với chức năng do người dùng xác định
Trích xuất tên tệp từ đường dẫn đầy đủ với mã VBA


Trích xuất tên tệp từ đường dẫn đầy đủ với công thức trong Excel

Trong Excel, bạn có thể sử dụng công thức dưới đây để nhanh chóng chỉ trích xuất tên tệp từ đường dẫn đầy đủ.

Chọn một ô trống, nhập công thức bên dưới vào đó rồi nhấn đăng ký hạng mục thi Chìa khóa.

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

Lời khuyên: A1 là ô bạn muốn trích xuất tên tệp), và nhấn nút Enter, sau đó kéo chốt điền để điền vào dải ô bạn muốn. Sau đó, tên tệp được trích xuất từ ​​mỗi ô.

doc trích xuất tên1


Trích xuất tên tệp từ đường dẫn đầy đủ với chức năng do người dùng xác định

Với Chức năng do Người dùng Xác định sau đây, bạn có thể lấy tên tệp một cách dễ dàng và nhanh chóng.

1. Giữ ALT + F11 phím để mở Cửa sổ Microsoft Visual Basic for Applications.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

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. Nhấn Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ và quay lại trang tính. Ví dụ: trong một ô trống, B1, hãy nhập công thức dưới đây vào đó và nhấn đăng ký hạng mục thi Chìa khóa.

=FunctionGetFileName(A1)

doc-extract-filename1

Sau đó, chọn lại ô B1, kéo chốt điền vào phạm vi mà bạn muốn áp dụng công thức này và tất cả các tên tệp đã được trích xuất từ ​​các đường dẫn đầy đủ như sau:

doc-extract-filename1


Trích xuất tên tệp từ đường dẫn đầy đủ với mã VBA

Bên cạnh Hàm do Người dùng Xác định, mã VBA cũng có thể giúp bạn trích xuất các tên tệp. Vui lòng làm như sau:

1. Giữ ALT + F11 phím để mở Cửa sổ Microsoft Visual Basic cho ứng dụng.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

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. Sau đó nhấn F5 để chạy mã này và chọn phạm vi mà bạn muốn trích xuất tên tệp, xem ảnh chụp màn hình:

doc-extract-filename1

4. Và sau đó nhấp vào OK, các tên tệp đã được trích xuất từ ​​vùng chọn như sau:

Chú thích: Với mã VBA này, dữ liệu gốc sẽ bị hủy, vì vậy bạn nên sao chép một cái trước khi áp dụng mã này.

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
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