ไปยังเนื้อหาหลัก

วิธีแยกชื่อไฟล์จากเส้นทางแบบเต็มใน Excel อย่างรวดเร็ว

สมมติว่าคุณมีเวิร์กชีตที่มีรายการพา ธ ไฟล์ตอนนี้คุณต้องการแยกเฉพาะชื่อไฟล์ (ส่วนขวาของแบ็กสแลชสุดท้าย) จากแต่ละพา ธ ดังภาพหน้าจอต่อไปนี้ มีเคล็ดลับง่ายๆในการจัดการกับงานนี้หรือไม่?

แยกชื่อไฟล์จากเส้นทางแบบเต็มด้วยสูตรใน Excel
แยกชื่อไฟล์จากพา ธ แบบเต็มด้วย User Defined Function
แยกชื่อไฟล์จากเส้นทางแบบเต็มด้วยรหัส VBA


แยกชื่อไฟล์จากเส้นทางแบบเต็มด้วยสูตรใน Excel

ใน Excel คุณสามารถใช้สูตรด้านล่างเพื่อแยกเฉพาะชื่อไฟล์จากเส้นทางแบบเต็มได้อย่างรวดเร็ว

เลือกเซลล์ว่างป้อนสูตรด้านล่างลงไปจากนั้นกดปุ่ม เข้าสู่ กุญแจ

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

เคล็ดลับ: A1 คือเซลล์ที่คุณต้องการแยกชื่อไฟล์) แล้วกดปุ่ม Enter จากนั้นลากจุดจับเติมเพื่อเติมเต็มช่วงที่คุณต้องการ หลังจากนั้นชื่อไฟล์จะถูกแยกออกจากแต่ละเซลล์

ชื่อสารสกัด doc 1


แยกชื่อไฟล์จากพา ธ แบบเต็มด้วย User Defined Function

ด้วยฟังก์ชันที่กำหนดโดยผู้ใช้ดังต่อไปนี้คุณสามารถรับชื่อไฟล์ได้อย่างง่ายดายและรวดเร็ว

1. กด ALT + F11 คีย์เพื่อเปิด หน้าต่าง Microsoft Visual Basic for Applications.

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

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. กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างและกลับไปที่แผ่นงาน ในเซลล์ว่างตัวอย่างเช่น B1 ให้ป้อนสูตรด้านล่างลงไปแล้วกด เข้าสู่ กุญแจ

=FunctionGetFileName(A1)

doc-extract-ชื่อไฟล์1

จากนั้นเลือกเซลล์ B1 อีกครั้งลากจุดจับเติมไปยังช่วงที่คุณต้องการใช้สูตรนี้และชื่อไฟล์ทั้งหมดถูกแยกออกจากเส้นทางแบบเต็มดังต่อไปนี้:

doc-extract-ชื่อไฟล์1


แยกชื่อไฟล์จากเส้นทางแบบเต็มด้วยรหัส VBA

นอกจาก User Defined Function แล้วโค้ด VBA ยังสามารถช่วยคุณแยกชื่อไฟล์ได้อีกด้วย กรุณาทำตามนี้:

1. กด ALT + F11 คีย์เพื่อเปิด หน้าต่าง Microsoft Visual Basic สำหรับแอปพลิเคชัน.

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในหน้าต่างโมดูล

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. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้และเลือกช่วงที่คุณต้องการแยกชื่อไฟล์ดูภาพหน้าจอ:

doc-extract-ชื่อไฟล์1

4. จากนั้นคลิก OKชื่อไฟล์ถูกแยกออกจากการเลือกดังนี้:

หมายเหตุ: ด้วยรหัส VBA นี้ข้อมูลต้นฉบับจะถูกทำลายดังนั้นคุณควรคัดลอกก่อนที่จะใช้รหัสนี้

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
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