انتقل إلى المحتوى الرئيسي

ابحث عن التكرار n لحرف ما في Excel – 3 طرق سريعة

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


ابحث عن التواجد n لحرف في سلسلة نصية باستخدام الصيغة

يمكنك صياغة صيغة للعثور على التواجد التاسع للحرف. يرجى القيام بذلك:

1. أدخل الصيغة التالية أو انسخها في الخلية التي تريد الحصول على النتيجة فيها:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
ملاحظات: في الصيغة أعلاه:
  • A2: الخلية التي تحتوي على السلسلة.
  • -: الشخصية التي تبحث عنها.
  • 2: التواجد الثاني الذي تريد البحث عنه، يمكنك تغييره إلى 2... حسب حاجتك.

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

شرح الصيغة:
  • استبدل يستبدل التكرار n للحرف بحرف غير قابل للطباعة (CHAR(1)).
  • البحث عن يبحث عن هذا الحرف غير القابل للطباعة، مع تحديد موضع التكرار n.

ابحث عن التكرار n لحرف في سلسلة نصية باستخدام Kutools for Excel

إذا لم تكن من محبي استخدام الصيغة أو VBA، فقد تفكر في بديل مناسب – كوتولس ل إكسيل. ضمن مجموعات الصيغة الخاصة بها، ستجد أداة مفيدة – ابحث عن مكان ظهور الحرف Nth في سلسلة الذي يحدد بسرعة ويعيد الموضع n لأي حرف في الخلية.

بعد تثبيت Kutools لبرنامج Excel، اضغط هنا كوتولس > مساعد الصيغة > مساعد الصيغة لفتح مساعد الصيغة صندوق المحادثة. انقر فوق الخلية التي تريد وضع النتيجة فيها. ثم قم بما يلي:

  1. أختار بحث من القائمة المنسدلة نوع الصيغة قسم.
  2. اختار ابحث عن مكان ظهور الحرف Nth في سلسلة in اختر صيغة قسم.
  3. حدد الخلية التي تحتوي على السلسلة التي تستخدمها، ثم اكتب الحرف المحدد والتكرار n في مربعات النص الموجودة مدخلات الحجج قسم.
  4. أخيرًا ، انقر فوق OK زر للحصول على النتيجة.

ابحث عن التواجد رقم n لحرف في سلسلة نصية باستخدام وظيفة محددة من قبل المستخدم

في هذا القسم، سوف نستكشف كيفية إنشاء UDF واستخدامه للعثور على التكرار n لحرف ما في Excel، مع توفير دليل خطوة بخطوة لمساعدتك على تحسين معالجة البيانات.

  1. اضغط باستمرار ALT + F11 مفاتيح ، ويفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.
  2. انقر إدراج > وحدة، ولصق الماكرو التالي في نافذة الوحدة النمطية.
     Function FindN(sFindWhat As String, _
    sInputString As String, N As Integer) As Integer
    'Updateby Extendoffice
    Dim J As Integer
    Application.Volatile
    FindN = 0
    For J = 1 To N
    FindN = InStr(FindN + 1, sInputString, sFindWhat)
    If FindN = 0 Then Exit For
    Next
    End Function
  3. ثم أغلق نافذة vba. ارجع إلى ورقة العمل، وأدخل الصيغة التالية في خلية، ثم اسحب مقبض التعبئة لأسفل لملء الصيغة إلى خلايا أخرى، انظر لقطة الشاشة:
    =FindN("-",A2,3)

  4. مقالات ذات صلة:

    • حساب عدد مرات ظهور الكلمة في العمود
    • إذا كان لديك بيانات عمود تتضمن بعض القيم المكررة كما هو موضح أدناه ، فما تريد فعله الآن هو حساب عدد تكرارات كلمة معينة في هذا العمود. الآن مع هذا البرنامج التعليمي ، أقدم بعض الحيل لحلها بسرعة في Excel.
    • استخراج حرف n من سلسلة
    • بشكل عام، قد ترغب في استخراج السلسلة بعد حرف معين، ولكن في هذه الحالة، أريد استخراج الحرف n من سلسلة كما هو موضح أدناه في لقطة الشاشة.
    • استخراج الأحرف الأولى/الأخيرة من السلسلة
    • على سبيل المثال ، هناك قائمة بها سلاسل طويلة في كل خلية ، وتريد استخراج الأحرف n الأولى من كل سلسلة فقط ، مثل الأحرف الثلاثة الأولى من كل سلسلة ، والآن يمكنك استخدام الطرق التالية لحلها في Excel .

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

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


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

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (28)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Your formula to find the Nth occurrence of a character in a string does not work. Using your example, adding 2 to the results of the imbedded find ensures a starting position for the initial find of a position beyond the 1st two c's but changing the +2 to +3 does not yield the position of the 4th "c", it simply starts the search one character deeper into the string and the result is still the 3rd "c". To find the 4th "c" the search must begin beyond the position of the 3rd "c". I look forward to your new solution.
This comment was minimized by the moderator on the site
Hello, David

Yes, as you said, the first formula does not work correctly, you can apply the second formula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Note: The number "2" in the formula means the second "c", if you want to get the third, fourth "c", just change the number 2 to 3,4 as you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Find formula1 is imperfect. It will be a great help if it is removed. I have lost lot of time trying for 4th occurance of "a" in "vedanarayanan" Thanks.
This comment was minimized by the moderator on the site
To handle the exception of the formula, you can use same with if and iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
This comment was minimized by the moderator on the site
"Substitute" lets you find the Nth occurrence of a term, so combine it with "find" as follows (where 5=5th occurrence):

=FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),5))
This comment was minimized by the moderator on the site
Excellent! I am glad I scrolled up to review other comments after posting my own.
This comment was minimized by the moderator on the site
This is the correct answer! please replace this whole article with this one line of code.....
This comment was minimized by the moderator on the site
The first formula is completely useless and wrong but it works just correct for this example as the first and second "c"s are adjacent. The correct formula is:


For 2nd occurence -
=FIND("c",A1,FIND("c",A1)+1)

For 3rd occurence -
=FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) and so on...
This comment was minimized by the moderator on the site
Absolutely agree. The +2, or +3 etc.....entirely depends on the spacing between the n and (n+1) occurences of "c". Thus you would have to manually adjust for every cell if you were trying to copy this formula down a column for instance. Essentially the same as manually counting.


Ex. Let's try to find the 4th occurrence of "c" in cell A1 using the provided formula. Per the article we should use +3 in our nested FIND function to find the 4th occurrence.


Text in Cell A1:

"cab car abc cole cube"

Manually counting, the 4th occurrence is the "c" in cole in the character position of 13.


=FIND("c",A1,FIND("c",A1)+3)

The nested function, FIND("c",A1) will find the first occurrence of "c" in position 1.

Therefore,

FIND("c",A1)+3 = 1+3 = 4

Plugging that back into our formula,

=FIND("c",A1,FIND("c",A1)+3) = FIND("c",A1,1+3) = FIND("c",A1,4)

This new formula will look for the first occurrence of "c" beginning from character position 4. The 4th character in the string is the space just after cab.

Therefore, the formula will find the "c" in car and return the value of 5 for our formula. As we know from manually counting we are looking for 13 as the output.
This comment was minimized by the moderator on the site
The firs formula works correct in my version, in the note, it has explained how to find the third or forth or nth "c".

Note: You can change the 2 in the formula based on your needs. For example, if you want to find the fourth position of "c", you can change the 2 to 3. And if you want to find the first position of "c", you shuold change 2 to 0.
This comment was minimized by the moderator on the site
Try to find out the position of the second c with the first sentence of my above comment as the string using the first formula. You'll get to know how correct it is!
This comment was minimized by the moderator on the site
Hello all,

I have a text in an Excel cell " BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

I need a function to extract just "N08745987123546"

Thanks
This comment was minimized by the moderator on the site
Hello, do you want to extract the numbers after No and the number of numbers are fixed? If so, you can use Kutools for Exccel's Extract text function, type No????to extract.
This comment was minimized by the moderator on the site
HI ALL,
I have a text in an Excel cell " BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
I need a function to extract just "N053112345624801"
This comment was minimized by the moderator on the site
Formula 1 doesn't work on fourth, fifth, sixth etc. so (+3,4,5) will always show third position of letter "c" which is 19 second formula is working though.
This comment was minimized by the moderator on the site
Hello all, I have a text in an Excel cell "23 floyd lane, longville,KN 14564" I need a function to extract just "longville" Thanks
This comment was minimized by the moderator on the site
If you must use a function, try: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",","!@#",2))-SEARCH(",",A1)-1)) Otherwise, you might consider Data > Text to Columns > Delimited (using a comma as the separator).
This comment was minimized by the moderator on the site
Try this: =INDEX(SMALL(IF(MID(A1,MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),1)="c",MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),""),MATCH(ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),0)),2) where "c" is the character required and 2 is the position. Note this is an array formula.
This comment was minimized by the moderator on the site
this is simpler: =INDEX(SMALL(IF(MID(A1,ROW(INDIRECT(1&":"&LEN(A1))),1)="c",ROW(INDIRECT(1&":"&LEN(A1))),""),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))))),2)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations