دالتا Excel FIND و SEARCH مع أمثلة للصيغ

  • شارك هذا
Michael Brown

يشرح البرنامج التعليمي بناء جملة وظائف Excel FIND و SEARCH ويوفر أمثلة صيغ للاستخدامات المتقدمة غير التافهة.

في المقالة الأخيرة ، تناولنا أساسيات Excel بحث واستبدال الحوار. ومع ذلك ، في كثير من الحالات ، قد ترغب في أن يبحث Excel عن البيانات ويستخرجها من الخلايا الأخرى تلقائيًا بناءً على المعايير الخاصة بك. لذلك ، دعونا نلقي نظرة فاحصة على ما يجب أن تقدمه وظائف بحث Excel.

    وظيفة Excel FIND

    تُستخدم وظيفة FIND في Excel لإرجاع موضع حرف معين أو سلسلة فرعية داخل سلسلة نصية.

    بناء جملة وظيفة Excel Find كما يلي:

    FIND (find_text، within_text، [start_num])

    الوسيطتان الأوليان مطلوبتان ، آخر واحد اختياري.

    • Find_text - الحرف أو السلسلة الفرعية التي تريد البحث عنها.
    • within_text - السلسلة النصية إلى يتم البحث عنها في الداخل. عادةً ما يتم توفيره كمرجع خلية ، ولكن يمكنك أيضًا كتابة السلسلة مباشرةً في الصيغة.
    • Start_num - وسيطة اختيارية تحدد من أي حرف يبدأ البحث. إذا تم حذفه ، يبدأ البحث من الحرف الأول من السلسلة within_text.

    إذا لم تعثر الدالة FIND على الحرف (الأحرف) find_text ، فإن الخطأ #VALUE! تم إرجاع الخطأ.

    على سبيل المثال ، تُرجع الصيغة =FIND("d", "find") 4 لأن "d" هو الحرف الرابع في الكلمة " اعثر على ". الصيغة =FIND("a", "find") مرة أخرى ، الجزء الأكثر تعقيدًا هو الوسيطة الأخيرة التي تخبر الصيغة بعدد الأحرف التي يجب إرجاعها. هذا التعبير الطويل جدًا في وسيطة num_chars يقوم بما يلي:

    • أولاً ، ستجد موضع قوس الإغلاق: SEARCH(")",A2)
    • بعد ذلك تحدد موضع قوس الفتح: SEARCH("(",A2)
    • وبعد ذلك ، تقوم بحساب الفرق بين مواضع أقواس الإغلاق والفتح وطرح 1 من هذا الرقم ، لأنك لا تريد أيًا من القوسين في النتيجة: SEARCH(")",A2)-SEARCH("(",A2))-1

    بطبيعة الحال ، لا شيء يمنعك من استخدام وظيفة Excel FIND بدلاً من SEARCH ، لأن حساسية حالة الأحرف أو الحساسية لحالة الأحرف لا تحدث فرقًا في هذا المثال.

    نأمل ، هذا ألقى البرنامج التعليمي بعض الضوء على كيفية استخدام وظائف SEARCH و FIND في Excel. في البرنامج التعليمي التالي ، سنقوم بفحص وظيفة REPLACE عن كثب ، لذا يرجى متابعة أخبارنا. شكرًا على القراءة!

    تنزيل المصنف التدريبي

    البحث عن أمثلة الصيغ والبحث عنها

    إرجاع خطأ لأنه لا يوجد "a" في " اعثر على".

    وظيفة Excel FIND - أشياء يجب تذكرها!

    لاستخدام صيغة FIND بشكل صحيح في Excel ، ضع في اعتبارك الحقائق البسيطة التالية:

    1. وظيفة FIND حساسة لحالة الأحرف . إذا كنت تبحث عن تطابق غير حساس لحالة الأحرف ، فاستخدم الدالة SEARCH.
    2. لا تسمح وظيفة FIND في Excel باستخدام أحرف البدل .
    3. إذا كانت الوسيطة find_text تحتوي على عدة أحرف ، تقوم الدالة FIND بإرجاع موضع الحرف الأول . على سبيل المثال ، تُرجع الصيغة FIND ("ap"، "happy") 2 لأن "a" في الحرف الثاني من كلمة "happy".
    4. إذا كان within_text يحتوي على تكرارات متعددة من find_text ، يتم إرجاع التواجد الأول. على سبيل المثال ، تقوم FIND ("l"، "hello") بإرجاع 3 ، وهو موضع الحرف "l" الأول في الكلمة "hello".
    5. إذا كانت find_text سلسلة فارغة 10> "" ، تُرجع صيغة Excel FIND الحرف الأول في سلسلة البحث.
    6. ترجع الدالة Excel FIND #VALUE! خطأ إذا حدث أي مما يلي:
      • Find_text غير موجود في within_text.
      • تحتوي Start_num على أحرف أكثر من within_text.
      • Start_num هي 0 (صفر) أو رقم سالب.

    وظيفة SEARCH في Excel تشبه إلى حد بعيد FIND من حيث أنها تعرض أيضًا موقع سلسلة فرعية في نصسلسلة. هل بناء الجملة والوسيطات شبيهة بتلك الخاصة بـ FIND:

    SEARCH (find_text، within_text، [start_num])

    على عكس FIND ، فإن وظيفة SEARCH هي حساسة لحالة الأحرف وتسمح باستخدام أحرف البدل ، كما هو موضح في المثال التالي.

    وإليك زوج من صيغ Excel SEARCH الأساسية:

    =SEARCH("market", "supermarket") تُرجع 6 لأن السلسلة الفرعية "market" تبدأ عند الحرف السادس من كلمة "supermarket" .

    =SEARCH("e", "Excel") تُرجع 1 لأن "e" هو الحرف الأول في كلمة "Excel" ، مع تجاهل الحالة.

    مثل FIND ، ترجع دالة SEARCH في Excel القيمة #VALUE! خطأ إذا:

    • لم يتم العثور على قيمة الوسيطة find_text.
    • وسيطة start_num أكبر من طول within_text.
    • Start_num يساوي أو أقل من صفر.

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

    كما ذكرنا سابقًا ، تتشابه وظيفتا FIND و SEARCH في Excel إلى حد كبير من حيث التركيب والاستخدامات. ومع ذلك ، يوجد بينهما اختلافان.

    أهم فرق بين وظيفتي Excel SEARCH و FIND هو أن SEARCH غير حساس لحالة الأحرف ، بينما FIND حساسة لحالة الأحرف.

    على سبيل المثال ، SEARCH ("e"، "Excel") ترجع 1 لأنها تتجاهلحالة "E" ، بينما تعرض FIND ("e"، "Excel") 4 لأنها تهتم بالحالة.

    2. البحث باستخدام أحرف البدل

    بخلاف FIND ، تقبل وظيفة Excel SEARCH أحرف البدل في الوسيطة find_text:

    • تطابق علامة الاستفهام (؟) حرفًا واحدًا و
    • علامة النجمة (*) تطابق أي سلسلة من الأحرف.

    لمعرفة كيفية عملها على البيانات الحقيقية ، ضع في اعتبارك المثال التالي:

    كما ترى في لقطة الشاشة أعلاه ، فإن الصيغة SEARCH ("function * 2013"، A2) ترجع موضع الحرف الأول ("f") في السلسلة الفرعية إذا كانت السلسلة النصية المشار إليها في وسيطة within_text تحتوي على كلتا "الدالة" و "2013" ، بغض النظر عن عدد الأحرف الأخرى بينهما.

    نصيحة. للبحث عن علامة استفهام فعلية (؟) أو علامة النجمة (*) ، اكتب علامة التلدة (~) قبل الحرف المقابل.

    من الناحية العملية ، نادرًا ما يتم استخدام الدالتين Excel FIND و SEARCH بمفردهما. عادة ، يمكنك استخدامها مع وظائف أخرى مثل MID أو LEFT أو RIGHT ، وتوضح أمثلة الصيغة التالية بعض الاستخدامات الواقعية.

    مثال 1. ابحث عن سلسلة تسبق أو تتبع حرفًا معينًا

    يوضح هذا المثال كيف يمكنك البحث عن جميع الأحرف واستخراجها في سلسلة نصية إلى يسار أو يمين حرف معين. لتسهيل فهم الأمور ، ضع في اعتباركالمثال التالي.

    لنفترض أن لديك عمودًا من الأسماء (العمود A) وتريد سحب الاسم الأول واسم العائلة إلى أعمدة منفصلة.

    للحصول على الاسم الأول ، يمكنك استخدام FIND (أو SEARCH) بالاقتران مع الدالة LEFT:

    =LEFT(A2, FIND(" ", A2)-1)

    أو

    =LEFT(A2, SEARCH(" ", A2)-1)

    كما تعلم على الأرجح ، ترجع وظيفة Excel LEFT العدد المحدد لأقصى اليسار من الأحرف في سلسلة. ويمكنك استخدام الدالة FIND لتحديد موضع مسافة ("") للسماح للدالة LEFT بمعرفة عدد الأحرف المراد استخلاصها. عند ذلك ، تقوم بطرح 1 من موضع المسافة لأنك لا تريد أن تتضمن القيمة التي تم إرجاعها المسافة.

    لاستخراج اسم العائلة ، استخدم مجموعة وظائف RIGHT و FIND / SEARCH و LEN. وظيفة LEN مطلوبة للحصول على العدد الإجمالي للأحرف في السلسلة ، والتي تطرح منها موضع المسافة:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    أو

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    توضح لقطة الشاشة التالية النتيجة:

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

    مثال 2. ابحث عن التكرار التاسع لحرف معين في سلسلة نصية

    لنفترض أن لديك بعض السلاسل النصية في العمود A ، قل قائمة بـ SKU ، وتريد البحث موضع الشرطة الثانية في سلسلة. تعمل الصيغة التالية على علاج:

    =FIND("-", A2, FIND("-",A2)+1)

    الأولينمن السهل تفسير الوسيطات: حدد موقع شرطة ("-") في الخلية A2. في الوسيطة الثالثة (start_num) ، تقوم بتضمين دالة FIND أخرى تخبر Excel أن يبدأ البحث بدءًا من الحرف الذي يأتي مباشرةً بعد التكرار الأول للشرطة (FIND ("-"، A2) +1).

    لإرجاع موضع التواجد الثالث ، يمكنك تضمين الصيغة أعلاه في وسيطة start_num لدالة FIND أخرى وإضافة 2 إلى القيمة التي تم إرجاعها:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    هناك طريقة أخرى وربما أبسط للعثور على التكرار التاسع لحرف معين وهي استخدام وظيفة Excel FIND مع CHAR و SUBSTITUTE:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    حيث "-" هو الحرف المعني و "3" هو التكرار رقم N الذي تريد البحث عنه.

    في الصيغة أعلاه ، تستبدل الدالة SUBSTITUTE التكرار الثالث للشرطة ("-") بـ CHAR ( 1) ، وهو حرف "بداية العنوان" غير القابل للطباعة في نظام ASCII. بدلاً من CHAR (1) ، يمكنك استخدام أي حرف آخر غير قابل للطباعة من 1 إلى 31. وبعد ذلك ، تُرجع الدالة FIND موضع هذا الحرف في السلسلة النصية. إذن ، الصيغة العامة هي كما يلي:

    البحث (CHAR (1) ، البديل ( خلية ، حرف ، CHAR (1) ، التواجد التاسع ))

    للوهلة الأولى ، قد يبدو أن الصيغ أعلاه لها قيمة عملية قليلة ، لكن المثال التالي سيوضح مدى فائدتها في حل المهام الحقيقية.

    ملاحظة. يرجى تذكر أن ملف Excel FINDالوظيفة حساسة لحالة الأحرف. في مثالنا ، لا يحدث هذا فرقًا ، ولكن إذا كنت تعمل بأحرف وتريد تطابق غير حساس لحالة الأحرف ، فاستخدم وظيفة البحث بدلاً من البحث.

    مثال 3. استخراج حرف N بعد حرف معين

    لتحديد موقع سلسلة فرعية بطول معين داخل أي سلسلة نصية ، استخدم Excel FIND أو Excel SEARCH مع وظيفة MID. يوضح المثال التالي كيف يمكنك استخدام هذه الصيغ في الممارسة العملية.

    في قائمة SKU الخاصة بنا ، لنفترض أنك تريد العثور على الأحرف الثلاثة الأولى بعد الشرطة الأولى وسحبها في عمود آخر.

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

    =MID(A2, 4, 3)

    ترجمت إلى اللغة الإنجليزية ، تقول الصيغة: "ابحث في الخلية A2 ، وابدأ في الاستخراج من الحرف 4 ، وأعد 3 أحرف".

    ومع ذلك ، في أوراق العمل الواقعية ، يمكن أن تبدأ السلسلة الفرعية التي تريد استخراجها في أي مكان ضمن السلسلة النصية. في مثالنا ، قد لا تعرف عدد الأحرف التي تسبق الشرطة الأولى. للتعامل مع هذا التحدي ، استخدم الدالة FIND لتحديد نقطة البداية للسلسلة الفرعية التي تريد استردادها.

    صيغة FIND لإرجاعيكون موضع الشرطة الأولى كما يلي:

    =FIND("-",A2)

    لأنك تريد أن تبدأ بالحرف الذي يلي الشرطة ، أضف 1 إلى القيمة التي تم إرجاعها وقم بتضمين الوظيفة أعلاه في الوسيطة الثانية (start_num) لوظيفة MID:

    =MID(A2, FIND("-",A2)+1, 3)

    في هذا السيناريو ، تعمل وظيفة Excel SEARCH بشكل جيد:

    =MID(A2, SEARCH("-",A2)+1, 3)

    إنه رائع ، ولكن ماذا لو احتوت مجموعة الأحرف التي تلي الشرطة الأولى على عدد مختلف من الأحرف؟ حسنًا ... قد تكون هذه مشكلة:

    كما ترى في لقطة الشاشة أعلاه ، تعمل الصيغة بشكل مثالي للصفين 1 و 2. في الصفين 4 و 5 ، تحتوي المجموعة الثانية على 4 أحرف ، ولكن يتم إرجاع أول 3 أحرف فقط. في الصفين 6 و 7 ، هناك حرفان فقط في المجموعة الثانية ، وبالتالي فإن صيغة Excel Search الخاصة بنا ترجع شرطة تليها.

    إذا أردت إرجاع جميع الأحرف بين التكرار الأول والثاني من حرف معين (شرطة في هذا المثال) ، كيف يمكنك المتابعة؟ ها هي الإجابة:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    لفهم أفضل لصيغة MID هذه ، دعنا نفحص حججها واحدة تلو الأخرى:

    • الوسيطة الأولى (نص). إنها السلسلة النصية التي تحتوي على الأحرف التي تريد استخراجها ، الخلية A2 في هذا المثال
    • الوسيطة الثانية (start_position). يحدد موضع الحرف الأول الذي تريد استخراجه. يمكنك استخدام الدالة FIND لتحديد موقع أول شرطة في السلسلة وإضافة 1 إليهاهذه القيمة لأنك تريد أن تبدأ بالحرف الذي يلي الشرطة: FIND ("-"، A2) +1.
    • الوسيطة الثالثة (num_chars). يحدد عدد الأحرف التي تريد إرجاعها. في صيغتنا ، هذا هو الجزء الأصعب. يمكنك استخدام وظيفتين FIND (أو SEARCH) ، أحدهما يحدد موضع الشرطة الأولى: FIND ("-" ، A2). ويعيد الآخر موضع الشرطة الثانية: FIND ("-"، A2، FIND ("-"، A2) +1). ثم تطرح الأول من الأخير ، ثم تطرح 1 لأنك لا تريد تضمين أي من الشرطتين. نتيجة لذلك ، ستحصل على عدد الأحرف بين الشرطتين الأولى والثانية ، وهو بالضبط ما نبحث عنه. لذلك ، تقوم بتغذية هذه القيمة إلى وسيطة num_chars الخاصة بوظيفة MID.

    بطريقة مماثلة ، يمكنك إرجاع 3 أحرف بعد الشرطة الثانية:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    أو ، استخرج جميع الأحرف بين الشرطتين الثانية والثالثة:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    مثال 4. ابحث عن نص بين الأقواس

    لنفترض أن لديك سلسلة نصية طويلة في العمود A وتريد البحث عن النص الموجود في (الأقواس) واستخراجه فقط.

    للقيام بذلك ، ستحتاج إلى وظيفة MID لإرجاع العدد المطلوب من الأحرف من سلسلة ، وإما Excel FIND أو دالة SEARCH لتحديد مكان البدء وعدد الأحرف المراد استخلاصها.

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)

    يشبه منطق هذه الصيغة تلك التي ناقشناها في السابق مثال. و

    مايكل براون متحمس للتكنولوجيا ولديه شغف لتبسيط العمليات المعقدة باستخدام أدوات البرمجيات. مع أكثر من عشر سنوات من الخبرة في صناعة التكنولوجيا ، صقل مهاراته في Microsoft Excel و Outlook ، بالإضافة إلى جداول بيانات Google والمستندات. مدونة مايكل مكرسة لمشاركة معرفته وخبرته مع الآخرين ، وتقديم نصائح ودروس تعليمية سهلة المتابعة لتحسين الإنتاجية والكفاءة. سواء كنت محترفًا متمرسًا أو مبتدئًا ، تقدم مدونة مايكل رؤى قيمة ونصائح عملية للحصول على أقصى استفادة من أدوات البرامج الأساسية هذه.