الكلمة الأخيرة

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

لنلقِ نظرة على الطرق العديدة التقليدية للاختيار من بينها: الصيغ ووحدات الماكرو وعبر Power Query.

الطريقة الثالثة. الصيغ

لتسهيل فهم جوهر وآليات الصيغة ، فلنبدأ قليلاً من بعيد. أولاً ، دعنا نزيد عدد المسافات بين الكلمات في النص المصدر لدينا ، على سبيل المثال ، 20 قطعة. يمكنك القيام بذلك باستخدام وظيفة الاستبدال. استبدل (بديل) ووظيفة تكرار حرف معين N مرات - كرر (ريبت):

الكلمة الأخيرة

الآن قمنا بقطع 20 حرفًا من نهاية النص الناتج باستخدام الوظيفة يمين (حق):

الكلمة الأخيرة

انها تزداد دفئا ، أليس كذلك؟ يبقى لإزالة المساحات الزائدة باستخدام الوظيفة TRIM (تقليم) وسيتم حل المشكلة:

الكلمة الأخيرة

في النسخة الإنجليزية ، ستبدو صيغتنا كما يلي:

= TRIM (RIGHT (SUBSTITUTE (A1؛ »«؛ REPT (»« ؛ 20)) ؛ 20))

آمل أن يكون واضحًا أنه من حيث المبدأ ليس من الضروري إدخال 20 مسافة بالضبط - أي رقم سيفي بالغرض ، طالما أنه أكبر من طول أطول كلمة في النص المصدر.

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

الكلمة الأخيرة

الطريقة 2. وظيفة الماكرو

يمكن أيضًا حل مهمة استخراج الكلمة الأخيرة أو الجزء من النص باستخدام وحدات الماكرو ، أي كتابة وظيفة البحث العكسي في Visual Basic التي ستقوم بما نحتاج إليه - البحث عن سلسلة فرعية معينة في سلسلة في الاتجاه المعاكس - من النهاية إلى البداية.

اضغط على اختصار لوحة المفاتيح قديم+F11 أو زر Visual Basic علامة التبويب المطور (مطور)لفتح محرر الماكرو. ثم أضف وحدة جديدة عبر القائمة إدراج - وحدة وانسخ الكود التالي هناك:

 الوظيفة LastWord (txt As String، Optional delim As String = ""، Optional n As Integer = 1) As String arFragments = Split (txt، delim) LastWord = arFragments (UBound (arFragments) - n + 1) وظيفة النهاية  

يمكنك الآن حفظ المصنف (بتنسيق ممكن بماكرو!) واستخدام الوظيفة التي تم إنشاؤها في بناء الجملة التالي:

= LastWord (txt ؛ delim ؛ n)

أين

  • TXT - خلية مع نص المصدر
  • delim - حرف فاصل (افتراضي - مسافة)
  • n - ما هي الكلمة التي يجب استخلاصها من النهاية (افتراضيًا - الأولى من النهاية)

الكلمة الأخيرة

مع أي تغييرات في النص المصدر في المستقبل ، ستتم إعادة حساب وظيفة الماكرو الخاصة بنا على الفور ، مثل أي وظيفة قياسية في ورقة Excel.

الطريقة الثالثة. استعلام الطاقة

استفسار الطاقة هي إضافة مجانية من Microsoft لاستيراد البيانات إلى Excel من أي مصدر تقريبًا ثم تحويل البيانات التي تم تنزيلها إلى أي شكل. إن قوة هذه الوظيفة الإضافية وروعتها رائعة لدرجة أن Microsoft قامت ببناء جميع ميزاتها في Excel 2016 افتراضيًا. لبرنامج Excel 2010-2013 ، يمكن تنزيل Power Query مجانًا من هنا.

تم حل مهمتنا المتمثلة في فصل الكلمة أو الجزء الأخير من خلال فاصل معين باستخدام Power Query بسهولة بالغة.

أولاً ، دعنا نحول جدول البيانات الخاص بنا إلى جدول ذكي باستخدام اختصارات لوحة المفاتيح. CTRL+T أو أوامر الصفحة الرئيسية - تنسيق كجدول (الصفحة الرئيسية - تنسيق كجدول):

الكلمة الأخيرة

ثم نقوم بتحميل "الجدول الذكي" الذي تم إنشاؤه في Power Query باستخدام الأمر من الجدول / النطاق (من الجدول / النطاق) علامة التبويب البيانات (إذا كان لديك Excel 2016) أو في علامة التبويب استفسار الطاقة (إذا كان لديك Excel 2010-2013):

الكلمة الأخيرة

في نافذة محرر الاستعلام التي تفتح ، في علامة التبويب تحول (تحول) اختر فريق عمود الانقسام - بواسطة محدد (تقسيم العمود - بواسطة المحدد) وبعد ذلك يبقى تعيين الحرف الفاصل وتحديد الخيار محدد أقصى اليمينلقص ليس كل الكلمات ، ولكن فقط الأخيرة:

الكلمة الأخيرة

بعد النقر على OK سيتم فصل الكلمة الأخيرة في عمود جديد. يمكن إزالة العمود الأول غير الضروري بالنقر بزر الماوس الأيمن فوق رأسه وتحديده حذف (حذف). يمكنك أيضًا إعادة تسمية العمود المتبقي في رأس الجدول.

يمكن تحميل النتائج مرة أخرى إلى الورقة باستخدام الأمر الصفحة الرئيسية - الإغلاق والتحميل - الإغلاق والتحميل إلى ... (الصفحة الرئيسية - إغلاق وتحميل - إغلاق وتحميل إلى ...):

الكلمة الأخيرة

ونتيجة لذلك نحصل على:

الكلمة الأخيرة

مثل هذا - رخيص ومبهج ، بدون صيغ ووحدات ماكرو ، تقريبًا بدون لمس لوحة المفاتيح 🙂

إذا تغيرت القائمة الأصلية في المستقبل ، فسيكون ذلك كافيًا للنقر بزر الماوس الأيمن أو استخدام اختصار لوحة المفاتيح CTRL+قديم+F5 تحديث طلبنا.


  • تقسيم النص اللاصق إلى أعمدة
  • إعراب وتحليل النص باستخدام التعبيرات العادية
  • استخلاص الكلمات الأولى من النص باستخدام الدالة SUBSTITUTE

اترك تعليق