Menu
flag Ar iconالعربيةdown icon

دالتا FIND وSEARCH في الاكسل: البحث عن نص داخل خلية

تعيد =SEARCH("apple",A2) الموضع الذي تبدأ فيه apple في A2، مع تجاهل حالة الأحرف. وتفعل FIND الشيء نفسه لكنها تميّز حالة الأحرف. تعيد الدالتان #VALUE! عندما يكون النص مفقودًا، وتحوّل ISNUMBER ذلك إلى اختبار "هل تحتوي الخلية على".

كل ورقة في هذه الصفحة تفاعلية: غيّر رقمًا أو صيغة وسيُعاد الحساب.

تعيد =SEARCH("apple",A2) الموضع الذي تبدأ فيه apple في A2، بالعد من 1، وتتجاهل الأحرف الكبيرة والصغيرة. وتفعل =FIND("apple",A2) الشيء نفسه لكنها لا تطابق إلا بحالة الأحرف نفسها. وعندما لا يكون النص موجودًا، تعيد الدالتان #VALUE!.

FIND تميّز حالة الأحرف، وSEARCH لا تميّزها
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! أحد الوسائط من نوع خاطئ، مثل نص في مكان رقم.

تبدأ Apple pie بحرف A كبير، لذا لا تطابق FIND وتعيد #VALUE!، بينما تعيد SEARCH القيمة 1. وفي Green apple تعيد الدالتان 7: المسافة تُعدّ حرفًا. أما Banana bread فلا تحتوي على apple أصلًا.

الصيغة

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text: ما تبحث عنه. حرف واحد أو كلمة.
  • within_text: الخلية التي تبحث فيها.
  • start_num: الموضع الذي يبدأ منه البحث، 1 إذا حُذف. وتبقى النتيجة معدودة من الحرف الأول في الخلية.

إذا كانت الخلية تحتوي على نص

نادرًا ما يكون الموضع نفسه هو ما تريده. فالسؤال عادة هو "هل تحتوي هذه الخلية على الكلمة؟". الموضع رقم وعدم العثور خطأ، لذا تحوّل ISNUMBER النتيجة إلى TRUE أو FALSE:

هل تذكر الملاحظة تأخيرًا؟
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

تطابق SEARCH الكلمة LATE في A4 لأنها تتجاهل حالة الأحرف. لاحظ أنها ستطابق أيضًا latest أو chocolate: تبحث SEARCH عن أحرف، لا عن كلمات كاملة. والبحث عن " late" مع مسافة في البداية يضيّق النتائج قليلًا. ولعدّ الخلايا التي تحتوي على كلمة، =COUNTIF(A2:A5,"*late*") أقصر؛ راجع عدّ الخلايا التي تحتوي على نص.

تمييز التذاكر العاجلة
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

دورك: في B2، أعد TRUE إذا كان الموضوع في A2 يحتوي على الكلمة urgent بأي حالة أحرف، وFALSE إن لم يكن. تُنسخ الصيغة إلى الأسفل حتى B4.

إيجاد التكرار الثاني

يتيح لك start_num بدء البحث بعد التطابق الأول. ضع FIND داخل أخرى: تجد الداخلية الشرطة الأولى، وتبدأ الخارجية بعدها بحرف واحد.

موضع الشرطة الأولى والثانية
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

مع الموضعين، تستطيع MID أخذ ما بين الشرطتين: تعيد =MID(A2,B2+1,C2-B2-1) القيمة 2041.

أين علامة @؟
B2
AB
1EmailPosition
2ana@coddy.tech
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

دورك: في B2، أعد موضع @ في عنوان البريد الإلكتروني.

FIND وSEARCH تعيدان #VALUE!

يعني #VALUE! هنا "غير موجود" فقط. استبدله بشيء مفيد:

"غير موجود" دون الخطأ
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

لا تقارن النتيجة الخام برقم، كما في =FIND("@",A2)>0: عدم العثور خطأ، فتعيد المقارنة #VALUE! بدلًا من FALSE. اختبرها بالدالة ISNUMBER، كما في القسم السابق.

أحرف البدل: في SEARCH فقط

تقبل SEARCH أحرف البدل ? (أي حرف واحد) و* (أي سلسلة من الأحرف). أما FIND فتعاملها كأحرف حرفية. في الاكسل:

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

المزيد عن * و? و~ في دوال الاكسل تجده في صفحة أحرف البدل.

FIND مقابل SEARCH مقابل Ctrl+F

FINDSEARCHCtrl+F
حالة الأحرفيجب أن تطابقتُتجاهلتُتجاهل، إلا إذا حُدد خيار مطابقة حالة الأحرف
أحرف البدللا? و* و~? و* و~
عند عدم العثور#VALUE!#VALUE!رسالة
النتيجةموضع يُعاد حسابهموضع يُعاد حسابهتحديد الخلية

لإيجاد قيمة مرة واحدة، الصفحة الرئيسية > بحث وتحديد > بحث (Ctrl+F، أو Cmd+F على Mac) أسرع من صيغة. وللتمييز أو الاستخراج في كل صف مع بقاء النتيجة محدّثة، استخدم FIND أو SEARCH. اختر FIND عندما تحمل حالة الأحرف معنى (رموز منتجات مثل ab وAB)، وSEARCH لكل ما يكتبه الناس.

الأسئلة الشائعة

ما الفرق بين FIND وSEARCH في الاكسل؟

تميّز FIND حالة الأحرف ولا تقبل أحرف البدل. وتتجاهل SEARCH حالة الأحرف وتقبل ? و*. فالصيغة =FIND("a","Apple") تعطي #VALUE!، بينما تعطي =SEARCH("a","Apple") القيمة 1.

كيف أستخرج النص الواقع بين شرطتين في الاكسل؟

أوجد الشرطتين وخذ ما بينهما بالدالة MID: تعيد =MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1) القيمة 2041 من NYC-2041-B. وفي Microsoft 365 تكون =TEXTBEFORE(TEXTAFTER(A2,"-"),"-") أقصر.

لماذا تعيد FIND الخطأ #VALUE!؟

لأن النص غير موجود في الخلية، أو موجود بحالة أحرف مختلفة (FIND تميّز حالة الأحرف). ضعها داخل دالة تعيد شيئًا آخر: =IFERROR(FIND("-",A2),0).

كيف أجد التكرار الثاني لحرف؟

ابدأ البحث بعد التطابق الأول بحرف واحد: =FIND("-",A2,FIND("-",A2)+1). والوسيط الثالث هو الموضع الذي يبدأ منه البحث.

رسم توضيحي للغات البرمجة في Coddy

تعلّم البرمجة مع Coddy

ابدأ الآن