Note: The other languages of the website are Google-translated. Back to English
تسجيل الدخول  \/ 
x
or
x
حساب جديد  \/ 
x

or

كيفية استخراج اسم الملف بسرعة من المسار الكامل في إكسيل؟

لنفترض أن لديك ورقة عمل تحتوي على قائمة بمسارات الملفات ، فأنت الآن ترغب في استخراج اسم الملف فقط (الجزء الأيمن من الشرطة المائلة العكسية النهائية) من كل مسار كما هو موضح في لقطات الشاشة التالية. هل هناك حيل سريعة للتعامل مع هذه المهمة؟

استخراج اسم الملف من المسار الكامل مع الصيغة في Excel
استخراج اسم الملف من المسار الكامل باستخدام الوظيفة المعرفة من قبل المستخدم
استخراج اسم الملف من المسار الكامل مع كود فبا


استخراج اسم الملف من المسار الكامل مع الصيغة في Excel

في Excel ، يمكنك استخدام الصيغة أدناه لاستخراج اسم الملف فقط من المسار الكامل بسرعة.

حدد خلية فارغة ، أدخل الصيغة أدناه فيها ثم اضغط على أدخل الرئيسية.

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

نصائح: A1 هي الخلية التي تريد استخراج اسم الملف منها) ، واضغط على زر Enter ، ثم اسحب مقبض التعبئة لملء النطاق الذي تريده. بعد ذلك ، يتم استخراج اسم الملف من كل خلية.

doc extract name1


استخراج اسم الملف من المسار الكامل باستخدام الوظيفة المعرفة من قبل المستخدم

باستخدام الوظيفة المحددة بواسطة المستخدم التالية ، يمكنك الحصول على اسم الملف بسهولة وبسرعة.

1. اضغط باستمرار على ALT + F11 مفاتيح لفتح نافذة ميكروسوفت فيسوال باسيك للتطبيقات.

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 مفاتيح لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة والعودة إلى ورقة العمل. في خلية فارغة ، B1 على سبيل المثال ، أدخل الصيغة أدناه فيها واضغط على أدخل الرئيسية.

=FunctionGetFileName(A1)

doc-extract-filenames1

ثم حدد الخلية B1 مرة أخرى ، واسحب مقبض التعبئة إلى النطاق الذي تريد تطبيق هذه الصيغة ، وتم استخراج جميع أسماء الملفات من المسارات الكاملة على النحو التالي:

doc-extract-filenames1


استخراج اسم الملف من المسار الكامل مع كود فبا

إلى جانب الوظيفة المحددة بواسطة المستخدم ، يمكن أن يساعدك رمز VBA أيضًا في استخراج أسماء الملفات. يرجى القيام بذلك على النحو التالي:

1. اضغط باستمرار على ALT + F11 مفاتيح لفتح نافذة ميكروسوفت فيسوال باسيك للتطبيقات.

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-filenames1

4. ثم انقر فوق OK، تم استخراج أسماء الملفات من التحديد على النحو التالي:

ملاحظة: باستخدام رمز VBA هذا ، سيتم إتلاف البيانات الأصلية ، لذا يجب نسخ واحدة قبل تطبيق هذا الرمز.


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى...
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات...
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات...
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF...
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2019 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
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 · 4 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)