كيف تجد أول ظهور أو آخر ظهور أو أي ظهور لحرف معين في Excel؟
في العديد من مهام معالجة البيانات، قد تصادف قوائم من السلاسل النصية تحتوي على أحرف خاصة—مثل الشرطة “-”—ويتطلب الأمر تحديد موضع أول ظهور أو آخر ظهور أو الظهور المعيّن (الظهور رقم n) لهذا الحرف. فعلى سبيل المثال، غالبًا ما يعتمد استخراج المعلومات بناءً على الفواصل، أو تحليل رموز القطع، أو فصل مكونات البيانات على تحديد موقع ظهور حرف معيّن داخل كل سلسلة. ومع ذلك، لا توفّر Excel دالةً مضمنةً مباشرةً لإرجاع موضع أول ظهور أو آخر ظهور أو الظهور رقم n لحرفٍ ما في خلية. ويقدّم هذا المقال عدة تقنيات عملية وحلولًا خطوة بخطوة للعثور بدقة على هذه الظواهر، مما يلبّي احتياجات متنوعة في تحليل البيانات وإعدادها.

العثور على آخر ظهور للحرف باستخدام الصيغ
إذا كنت ترغب في تحديد موضع آخر ظهور لحرف معيّن (مثل “-”) داخل سلسلة نصية، فستجد أن دوال Excel القياسية لا توفّر هذه الميزة بشكل مباشر. لكن بدمج بعض الصيغ الذكية، يمكنك حل هذه المهمة بكفاءة وسلاسة. فيما يلي طريقتان فعالتان تعتمدان على الصيغ، ومثاليتان للتعامل مع رموز المنتجات أو مسارات الملفات أو أي بيانات أخرى تتبع نمطًا ثابتًا من الفواصل. يُرجى ملاحظة أن استخدام صيغ معقدة قد يزيد العبء الحسابي عند تطبيقها على مجموعات بيانات كبيرة.
1. في خلية فارغة (مثلًا، C2)، أدخل أو الصق إحدى الصيغ التالية:
=SEARCH("^^",SUBSTITUTE(A2,"-","^^",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))) =LOOKUP(2,1/(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)="-"),ROW(INDIRECT("1:"&LEN(A2)))) تم تصميم كلتا الصيغتين لإيجاد موضع (كرقم) آخر ظهور للحرف “-” في الخلية المرجعية (A2). تعتمد الصيغة الأولى على دالتيSEARCH وSUBSTITUTE لتحديد الموضع، وذلك باستبدال آخر ظهور للحرف “-” برمز فريد ثم البحث عنه. أما الصيغة الثانية، فتستخدم دالةLOOKUP بالاقتران مع دالتيMID وROW للوصول إلى آخر ظهور للحرف “-”. يمكنك اختيار أي من الطريقتين بناءً على خبرتك أو حجم بياناتك. وقد تكون طريقةLOOKUP أكثر سهولة في التكيّف مع إصدارات Excel الحديثة التي تدعم المصفوفات.

2. بعد إدخال الصيغة، اضغطEnter. ولتطبيق هذه الصيغة على صفوف إضافية، اسحب مقبض التعبئة لأسفل لتغطية النطاق بأكمله حسب الحاجة. سيؤدي ذلك إلى ملء كل خلية فورًا بموضع آخر ظهور لكل سلسلة نصية مقابلة، كما هو موضح في الصورة التالية. تأكد من صحة الخلايا المرجعية عند نسخ الصيغة إلى منطقة أخرى.

ملاحظة:في هذه الأمثلة، تشيرA2 إلى الخلية التي تحتوي على بياناتك، و“-” هو الحرف المستهدف. يمكنك استبدال “-” بأي حرف آخر تريد البحث عنه. إذا كانت خليتك فارغة أو لم يظهر الحرف في النص، فقد تُرجع الصيغة خطأً. وبالنسبة للإدخالات النصية التي تحتوي على فواصل متكررة أو رموز خاصة، تأكد من التحقق بدقة من وجود أحرف مخفية أو غير قابلة للطباعة قد تؤثر على نتائجك.
العثور على آخر ظهور للحرف باستخدام دالة معرّفة من قِبل المستخدم (UDF)
طريقة مرنة أخرى هي استخدام دالة معرّفة من قِبل المستخدم (UDF) في وحدة VBA، والتي توفّر تحكمًا أكبر وسهولةً أفضل في إعادة الاستخدام—خاصةً إذا كنت بحاجةٍ متكررةٍ إلى العثور على آخر ظهور لأي حرف لأغراض تحليل متنوعة. وهذه الطريقة مثالية إذا رغبتَ في واجهة صيغة موجزة ()=lastpositionofchar(cell, character)) تعمل بنفس سلاسة دوال Excel المضمنة. ومع ذلك، تذكّر أنه يجب تمكين الماكرو لكي تعمل حلول VBA، وعليك دائمًا حفظ ملفك كملف يدعم الماكرو (*.xlsm) للحفاظ على الدالة المخصصة.
1. افتح ورقة العمل التي ترغب في إضافة هذه الدالة إليها.
2. اضغط معًا على مفاتيحALT + F11 لفتح محررMicrosoft Visual Basic for Applications.
3. في محرر VBA، انقر فوقInsert > Module لإنشاء وحدة جديدة. بعد ذلك، انقل ولصق الكود التالي في نافذة الوحدة.
كود VBA: العثور على آخر ظهور للحرف
Function LastpositionOfChar(strVal As String, strChar As String) As Long
LastpositionOfChar = InStrRev(strVal, strChar)
End Function
استكشاف الأخطاء وإصلاحها:إذا لم تُرجع الدالة نتيجة، فتأكد من أن الماكرو مفعّل وأنك أدخلت مرجع الخلية والحرف الصحيحين في الصيغة. وإذا كنت بحاجة إلى العثور على آخر ظهور لحرف مختلف، فما عليك سوى تعديل المعامل وفقًا لذلك.
4. احفظ وأغلق نافذة الكود، ثم عُد إلى ورقة العمل الخاصة بك. أدخل الصيغة التالية في خلية فارغة (مثل الخلية B2):=lastpositionofchar(A2,"-"). استبدلA2 بالخلية المناسبة و“-” بالحرف المستهدف حسب الحاجة.

5. اسحب مقبض التعبئة لأسفل لتطبيق الصيغة على الخلايا الإضافية حسب الحاجة، وستُرجع بذلك آخر موضع للحرف المحدد في كل سلسلة نصية، كما هو موضح أدناه.

ملاحظة: المعامل الأول ()A2) هو خلية المصدر التي تحتوي على سلسلتك النصية، والثاني (“-”) هو الحرف المستهدف. يمكنك تعديل هذين المعاملين حسب احتياجاتك. إذا لم يتم العثور على تطابق، فقد تُرجع الدالة0. احفظ عملك دائمًا قبل تشغيل أو تعديل كود VBA. وإذا ظهر خطأ، فتأكد من عدم وجود علامات اقتباس غير صحيحة أو خلايا مرجعية غير مضبوطة.
العثور على أول ظهور أو الظهور للحرف باستخدام صيغة
إذا كانت مهمتك تتمثل في العثور ليس فقط على آخر ظهور لحرف في سلسلة نصية، بل أيضًا على أول ظهور أو ثاني ظهور أو أي ظهور معيّن، يمكنك استخدام تركيب صيغة مختلف. وغالبًا ما يُطلب ذلك عند تحليل الرموز الهرمية، أو استخراج أجزاء من المعرّفات المنظمة، أو تحديد الرموز المتكررة في إدخالات البيانات.
1. للحصول على الموضع رقم n لحرف معيّن، أدخل أو الصق الصيغة التالية في خلية فارغة (مثل C2):
=FIND(CHAR(160),SUBSTITUTE(A2,"-",CHAR(160),2)) في هذه الصيغة،A2 هي الخلية التي يتم البحث فيها، و"-" هو الحرف الذي سيتم البحث عنه، و2 يشير إلى رقم الظهور المطلوب للحرف (مثل 2 للظهور الثاني). يمكنك تعديل رقم الظهور ليتناسب مع متطلبات بياناتك.

2. اضغطEnter. لتطبيق الصيغة على المزيد من الصفوف، اسحب مقبض التعبئة لأسفل حتى النطاق المطلوب. ستحصل بذلك على موضع التكرار الثاني لـ “-” في كل سلسلة نصية، على سبيل المثال. إذا كان رقم التكرار المحدد أكبر من العدد الإجمالي لتلك الحرف في السلسلة، فستُرجع الصيغة خطأً. في هذه الحالة، تحقق من بياناتك النصية أو معامل التكرار.

ملاحظة:الرقم2 في الصيغة هو رقم التكرار الذي سيتم البحث عنه. غيّر هذا الرقم لتحديد موضع أول أو ثالث أو رابع أو أي تكرار آخر للحرف المحدد. إذا لم يُوجد الحرف بالعدد المطلوب من المرات، فسيظهر خطأ #VALUE!؛ ويمكنك التعامل مع هذا الخطأ باستخدامIFERROR() للحصول على نتائج أنظف.
العثور على أول أو الظهور لحرف معيّن باستخدام ميزة سهلة
إذا كنت تفضّل حلاً مباشرًا وتفاعليًا، أو إذا شعرت بعدم الارتياح عند إنشاء صيغ معقدة أو كتابة أكواد VBA، فإنKutools لـ Excelيقدّم لك أداة مريحة باسمالعثور على موضع الظهور الثاني والعشرين لحرف في سلسلة. تتيح لك هذه الأداة استخراج موضع أول أو ثاني أو ثالث —أو حتى أي ظهور آخر— لحرف معيّن في خلية بمنتهى السهولة، وتُنجز المهمة بنقرات قليلة فقط، مما يوفّر وقتك بشكل كبير سواءً أثناء تنظيف البيانات المتكررة أو عند التعامل مع مجموعات بيانات ضخمة.
بعد تثبيتKutools لـ Excel، اتبع هذه الخطوات للحصول على نتائج سريعة:
افترض أنك تريد الحصول على موضع التكرار الثاني لحرف الواصلة “-” في مجموعة من السلاسل النصية:
1. انقر على الخلية التي ترغب في ظهور الناتج فيها.
2. انقرKutools > مساعد الصيغة > مساعد الصيغةفي الشريط، كما هو موضح أدناه:

3. في مربع الحوارمساعد الصيغة:
- حددبحثمن قائمةنوع الصيغةالمنسدلة.
- اخترالعثور على موضع الظهور الثاني والعشرين لحرف في سلسلةمن القائمةحدد صيغة.
- في منطقةإدخال الوسيط، حدد الخلية التي تحتوي على نصك، وأدخل الحرف الذي تريد البحث عنه، ثم حدد رقم الظهور.

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

حمّل Kutools لـ Excel وجربه مجانًا الآن!
هذا الخيار مثالي خصوصًا للمستخدمين غير التقنيين أو لأولئك الذين يحتاجون إلى تكرار العملية مرارًا عبر أوراق عمل مختلفة، إذ يقلل الأخطاء اليدوية ويوفّر الوقت في إنشاء الصيغ المعقدة.
صيغة بديلة لإصدارات Excel الحديثة (التي تدعم المصفوفات الديناميكية)
في إصدارات Excel الأحدث (Excel 365 وExcel 2021 والإصدارات الأحدث) التي تدعم المصفوفات الديناميكية، يمكنك الاستفادة من دوال مثلSEQUENCE وFILTER لإرجاع جميع مواضع الحرف دفعة واحدة، مما يسهّل عليك تحديد الظهور أو حتى عرض جميع التكرارات في نطاق منفصل للمعالجة الإضافية.
1. أدخل الصيغة التالية في خلية فارغة (مثل B2) للحصول على جميع مواضع الحرف “-” في الخلية A2:
=FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-") بعد الضغط علىEnter، ستقوم الصيغة تلقائيًا بملء مواضع كل تكرار لـ “-” عبر الخلايا المجاورة. إذا كنت تريد إرجاع الظهور فقط، يمكنك استخدام:
=INDEX(FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-"),2) استبدل2 برقم التكرار المطلوب. هذه الطريقة فعّالة جدًّا مع المصفوفات أو القوائم ذات الأطوال المتغيرة، لكنها تتطلب إصدارًا من Excel يدعم هذه الدوال.
تلميح:إذا ظهر خطأ #CALC! أو أي خطأ مشابه، فتأكد أولًا من أن إصدار Excel الذي تستخدمه يدعم المصفوفات الديناميكية، وأن الخلايا المرجعية تحتوي على بيانات نصية.
كود VBA للعثور على موضع الظهور لحرف ما
إذا كنت بحاجة إلى حلٍّ لا يقتصر على تحديد آخر موضع فحسب، بل يمتد ليشمل أي ظهور لحرف معين، فإن VBA هنا أيضًا في خدمتك. يمكن تخصيص الماكرو التالي ليتوافق مع احتياجات تحليلية متنوعة، وهو يوفّر وقتك بشكل ملحوظ عند استخدامه مرارًا عبر ملفات عمل متعددة.
1. انتقل إلى علامة التبويبالمطوّر > Visual Basic، ثم اخترإدراج > وحدة نمطية. الصق الكود أدناه في نافذة الوحدة النمطية:
Function NthPositionOfChar(cell As Range, ch As String, nth As Integer) As Long
Dim s As String
Dim i As Long, count As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
s = cell.Value
count = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = ch Then
count = count + 1
If count = nth Then
NthPositionOfChar = i
Exit Function
End If
End If
Next i
NthPositionOfChar = 0
End Function 2. أغلق المحرر. استخدم الصيغة=NthPositionOfChar(A2,"-",2) (استبدل الوسائط حسب الحاجة) في ورقة العمل الخاصة بك لإرجاع موضع التكرار الثاني لـ “-” في الخلية A2. يُرجى ملاحظة أنه إذا لم يكن هذا التكرار موجودًا، فستُرجع الدالة القيمة 0.
هذا الكود مثالي لاستخراج معلومات مفصلة ومرنة من البيانات أو تبسيط المهام التحليلية المتكررة. كما يمكن تخصيص دوال VBA لتلبية متطلبات أكثر تخصصًا، مثل البحث مع مراعاة حالة الأحرف أو التعامل مع مجموعات بيانات أكبر.
عند العمل مع السلاسل النصية ومواضع تكرار الأحرف، تأكد دائمًا من خلوّها من الأحرف المخفية أو غير القابلة للطباعة—مثل المسافات الزائدة، علامات انتهاء السطر، أو رموز Unicode الخاصة—فهي قد تُغيّر نتائج الصيغ دون أن تلاحظ! كما يُنصح بالتحقق من اتساق فواصل البيانات قبل تطبيق أي صيغ أو ماكروهات، خاصةً إذا كانت تستخدم تنسيقات مختلفة. وفي حال ظهور أخطاء، راجع معلمات الإدخال ومراجع الصيغ بدقة، وتأكد من توافق نوع البيانات (نص/رقم) مع الدالة التي تستخدمها.
يمكن أن يوفّر الجمع بين الصيغ وVBA وميزات Kutools مرونةً شاملةً لتلبية احتياجاتك في تنفيذ مهام معالجة النصوص الروتينية والمتقدمة في Excel. اختر الطريقة الأنسب بناءً على راحتك التقنية، وإصدار Excel الذي تستخدمه، وتعقيد بياناتك لتحقيق أعلى مستويات الدقة والكفاءة.
مقالات ذات صلة إضافية:
- استخراج جميع الكلمات باستثناء الكلمة الأولى / الأخيرة في Excel
- كيف يمكنك استخراج جميع الكلمات من خلية في Excel باستثناء الكلمة الأولى أو الأخيرة بسرعة وسهولة؟
- استخراج الأحرف من اليمين إلى اليسار في خلية
- سيتناول هذا المقال كيفية سحب أو استخراج الأحرف من الجهة اليمنى في خلية حتى الوصول إلى أول مسافة، للحصول على النتيجة المرجوة في ورقة عمل Excel. ويقدّم المقال صيغةً مفيدةً تُنجز هذه المهمة بسرعة وسهولة.
- إزالة أول X أحرف أو آخرها أو أحرف في مواضع معيّنة
- سيتناول هذا المقال كيفية سحب أو استخراج الأحرف من الجهة اليمنى في خلية حتى الوصول إلى المسافة الأولى، للحصول على النتيجة المرجوة في ورقة عمل Excel. وتقدّم صيغة مفيدة مذكورة في هذا المقال حلاً سريعًا وسهلاً لهذه المهمة.
- العثور على موضع أول حرف صغير
- إذا كانت لديك قائمة من السلاسل النصية تحتوي على أحرف كبيرة وصغيرة معًا، وترغب في تحديد موضع أول حرف صغير فيها بورقة عمل Excel بسرعة دون عد الأحرف يدويًّا واحدًا تلو الآخر، فكيف يمكنك تحقيق ذلك؟
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...
يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير
- تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
- افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
- يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!
جميع الإضافات من Kutools في برنامج تثبيت واحد!
Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل