Excel: إذا كانت الخلية تحتوي على أمثلة للصيغ

  • شارك هذا
Michael Brown

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

تتمثل إحدى المهام الأكثر شيوعًا في Excel في التحقق مما إذا كانت الخلية تحتوي على قيمة ذات أهمية. أي نوع من القيمة يمكن أن يكون؟ فقط أي نص أو رقم ، نص محدد ، أو أي قيمة على الإطلاق (ليست خلية فارغة).

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

    إذا كانت الخلية تحتوي على أي قيمة ، ثم

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

    IF ( خلية"" ، value_to_return، "")

    من أجل على سبيل المثال ، لإرجاع "ليس فارغًا" في العمود B إذا كانت خلية العمود A في نفس الصف تحتوي على أي قيمة ، أدخل الصيغة التالية في B2 ، ثم انقر نقرًا مزدوجًا فوق المربع الأخضر الصغير في الزاوية اليمنى السفلية لنسخ الصيغة لأسفل الالعمود:

    =IF(A2"", "Not blank", "")

    ستبدو النتيجة مشابهة لما يلي:

    إذا كانت الخلية تحتوي على نص ، فعندئذٍ

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

    IF (ISTEXT ( خلية) ، value_to_return، " ")

    لنفترض أنك تريد إدراج كلمة" نعم "في العمود B إذا كانت الخلية الموجودة في العمود A تحتوي على نص. لإنجاز ذلك ، ضع الصيغة التالية في B2:

    =IF(ISTEXT(A2), "Yes", "")

    إذا كانت الخلية تحتوي على رقم ، ثم

    بطريقة مماثلة ، يمكنك تحديد الخلايا ذات القيم الرقمية (الأرقام والتواريخ). لهذا ، استخدم الدالة IF مع ISNUMBER:

    IF (ISNUMBER ( خلية) ، value_to_return، "")

    ترجع الصيغة التالية "نعم" في العمود إذا كانت الخلية المقابلة في العمود A تحتوي على أي رقم:

    =IF(ISNUMBER(A2), "Yes", "")

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

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

    IF ( cell= " نص value_to_return،" ")

    على سبيل المثال ، لمعرفة ما إذا كانت الخلية A2 تحتوي على" تفاح "، استخدم هذه الصيغة:

    =IF(A2="apples", "Yes", "")

    إذا كانت الخلية لا تحتوي على محددtext

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

    أدخل سلسلة فارغة ("") في الوسيطة value_if_true ، ونص لإرجاعه في الوسيطة value_if_false :

    =IF(A2="apples", "", "Not apples")

    Or ، ضع عامل التشغيل "لا يساوي" في logical_test والنص لإرجاعه في value_if_true:

    =IF(A2"apples", "Not apples", "")

    وفي كلتا الحالتين ، ستنتج الصيغة هذه النتيجة:

    إذا كانت الخلية تحتوي على نص: صيغة حساسة لحالة الأحرف

    لفرض الصيغة على التمييز بين الأحرف الكبيرة والصغيرة ، استخدم الدالة EXACT التي للتحقق مما إذا كانت سلسلتان نصيتان متساويتان تمامًا ، بما في ذلك حالة الأحرف:

    =IF(EXACT(A2,"APPLES"), "Yes", "")

    يمكنك أيضًا إدخال سلسلة نصية للنموذج في بعض الخلايا (على سبيل المثال في C1) ، قم بإصلاح مرجع الخلية بعلامة $ ($ C $ 1) ، وقارن الخلية المستهدفة بتلك الخلية:

    =IF(EXACT(A2,$C$1), "Yes", "")

    إذا كانت الخلية يحتوي على سلسلة نصية محددة (التطابق الجزئي)

    لقد انتهينا من المهام البسيطة وانتقلنا إلى مهام أكثر تحديًا وإثارة للاهتمام :) في هذا المثال ، يتطلب الأمر ثلاث وظائف مختلفة لمعرفة ما إذا كان حرف معين أو سلسلة فرعية جزءًا من الخلية المحتويات:

    IF (ISNUMBER (SEARCH (" text"، cell))، value_to_return، "")

    العمل من الداخل إلى الخارج ، إليك ما تفعله الصيغة:

    • ملفتبحث دالة SEARCH عن سلسلة نصية ، وإذا تم العثور على السلسلة ، فتُرجع موضع الحرف الأول ، وهو #VALUE! خطأ بخلاف ذلك.
    • تتحقق الدالة ISNUMBER من نجاح البحث أو فشله. إذا أعادت SEARCH أي رقم ، فإن ISNUMBER تُرجع TRUE. إذا نتج عن SEARCH خطأ ، فإن ISNUMBER تُرجع FALSE.
    • أخيرًا ، تُرجع الدالة IF القيمة المحددة للخلايا التي تحتوي على TRUE في الاختبار المنطقي ، وهي سلسلة فارغة ("") بخلاف ذلك.

    والآن ، دعنا نرى كيف تعمل هذه الصيغة العامة في أوراق العمل الواقعية.

    إذا كانت الخلية تحتوي على نص معين ، فضع قيمة في خلية أخرى

    لنفترض أن لديك قائمة الطلبات في العمود A وتريد العثور على الطلبات بمعرف معين ، قل "A-". يمكن إنجاز المهمة بهذه الصيغة:

    =IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")

    بدلاً من تشفير السلسلة في الصيغة ، يمكنك إدخالها في خلية منفصلة (E1) ، مرجع تلك الخلية في الصيغة الخاصة بك :

    =IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")

    لكي تعمل الصيغة بشكل صحيح ، تأكد من قفل عنوان الخلية التي تحتوي على السلسلة بعلامة $ (مرجع الخلية المطلق).

    إذا كانت الخلية تحتوي على نص معين ، فانسخه إلى عمود آخر

    إذا كنت ترغب في نسخ محتويات الخلايا الصالحة في مكان آخر ، فما عليك سوى توفير عنوان الخلية التي تم تقييمها (A2) في الوسيطة value_if_true :

    =IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")

    توضح لقطة الشاشة أدناه النتائج:

    إذاتحتوي الخلية على نص محدد: صيغة حساسة لحالة الأحرف

    في كلا المثالين أعلاه ، تكون الصيغ حساسة لحالة الأحرف. في المواقف التي تعمل فيها باستخدام بيانات حساسة لحالة الأحرف ، استخدم الدالة FIND بدلاً من "بحث" لتمييز حالة الأحرف.

    على سبيل المثال ، ستحدد الصيغة التالية فقط الطلبات ذات الأحرف الكبيرة "A-" مع تجاهل الأحرف الصغيرة " أ- ".

    =IF(ISNUMBER(FIND("A-",A2)),"Valid","")

    إذا كانت الخلية تحتوي على واحدة من العديد من السلاسل النصية (أو منطق)

    لتحديد الخلايا التي تحتوي على الأقل من بين العديد من الأشياء التي تبحث عنها ، استخدم إحدى الصيغ التالية.

    تتمثل الطريقة الأكثر وضوحًا في التحقق من كل سلسلة فرعية على حدة والحصول على وظيفة OR إرجاع TRUE في الاختبار المنطقي لصيغة IF إذا تم العثور على سلسلة فرعية واحدة على الأقل:

    IF (OR (ISNUMBER (SEARCH (" string1 cell)) ، ISNUMBER (SEARCH (" سلسلة 2" ، خلية))) ، value_to_return، "")

    لنفترض أن لديك قائمة بـ SKU في العمود A وأنت تريد العثور على تلك التي تتضمن إما "فستان" أو "تنورة". يمكنك القيام بذلك باستخدام هذه الصيغة:

    =IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))),"Valid ","")

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

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

    SUMPRODUCT (- ISNUMBER (SEARCH ( سلاسل، خلية))) & gt؛ 0

    على سبيل المثال ، لمعرفة ما إذا كان A2 يحتوي على أي من الكلمات المدخلة في الخلايا D2: D4 ، استخدم هذه الصيغة:

    =SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0

    بدلاً من ذلك ، يمكنك إنشاء نطاق مسمى يحتوي على السلاسل للبحث عنها ، أو توفير الكلمات مباشرة في الصيغة:

    =SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0

    وفي كلتا الحالتين ، ستكون النتيجة مشابهة لما يلي:

    لجعل الإخراج أكثر سهولة في الاستخدام ، يمكنك دمج الصيغة أعلاه في دالة IF وإرجاع النص الخاص بك بدلاً من قيم TRUE / FALSE:

    =IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")

    كيف تعمل هذه الصيغة

    في الأساس ، تستخدم ISNUMBER مع SEARCH كما هو موضح في المثال السابق. في هذه الحالة ، يتم تمثيل نتائج البحث في شكل مصفوفة مثل {TRUE؛ FALSE؛ FALSE}. إذا كانت الخلية تحتوي على واحد على الأقل من السلاسل الفرعية المحددة ، فسيكون هناك TRUE في الصفيف. يقوم عامل التشغيل الأحادي المزدوج (-) بإجبار قيم TRUE / FALSE على 1 و 0 ، على التوالي ، ويقدم مصفوفة مثل {1 ؛ 0 ؛ 0}. أخيرًا ، تجمع الدالة SUMPRODUCT الأرقام ، ونختار الخلايا التي تكون النتيجة فيها أكبر من الصفر.

    إذاتحتوي الخلية على عدة سلاسل (AND logic)

    في المواقف التي تريد فيها العثور على خلايا تحتوي على جميع السلاسل النصية المحددة ، استخدم تركيبة ISNUMBER SEARCH المألوفة بالفعل مع IF AND:

    IF (AND (ISNUMBER) (SEARCH (" سلسلة 1" ، خلية)) ، ISNUMBER (SEARCH (" سلسلة 2" ، خلية))) ، value_to_return، "")

    على سبيل المثال ، يمكنك العثور على وحدات SKU التي تحتوي على كل من "dress" و "blue" بهذه الصيغة:

    =IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))),"Valid ","")

    أو يمكنك كتابة السلاسل في خلايا منفصلة والإشارة إلى تلك الخلايا في الصيغة:

    =IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))),"Valid ","")

    كحل بديل ، يمكنك حساب تكرارات كل سلسلة والتحقق إذا كان كل عدد أكبر من الصفر:

    =IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid","")

    ستكون النتيجة تمامًا كما هو موضح في لقطة الشاشة أعلاه.

    كيفية إرجاع نتائج مختلفة بناءً على قيمة الخلية

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

    متداخلة IFs

    منطق صيغة IF المتداخلة بسيط مثل هذا: يمكنك استخدام دالة IF منفصلة لاختبار كل شرط ، وإرجاع قيم مختلفة بناءً على نتائج تلك الاختبارات.

    IF ( الخلية= " lookup_text1"، " إرجاع_ text1"، IF ( خلية= " lookup_text2"،" إرجاع_ text2"، IF ( خلية=" lookup_text3"،" إرجاع_ نص 3"،" ")))

    لنفترض أن لديك قائمة بالعناصر في العمود A وتريد الحصول على اختصاراتها في العمود B. للقيام بذلك ، استخدم الصيغة التالية:

    =IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))

    للحصول على تفاصيل كاملة حول بناء جملة IF المتداخلة ومنطقها ، يرجى الاطلاع على Excel المتداخلة IF - شروط متعددة في صيغة واحدة.

    صيغة البحث

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

    LOOKUP ( خلية، {" lookup_text1"؛ " lookup_text2"؛" lookup_text3"؛…}، {" إرجاع_ text1"؛" إرجاع_ text2"؛" إرجاع_ text3"؛…})

    للحصول على نتائج دقيقة ، تأكد من سرد قيم البحث في ترتيب أبجدي ، من الألف إلى الياء.

    =LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})

    بالمقارنة مع IFs المتداخلة ، تتمتع صيغة البحث بميزة أخرى - فهي تفهم أحرف البدل وبالتالي يمكن تحديد التطابقات الجزئية.

    على سبيل المثال ، إذا كان العمود A يحتوي على أنواع قليلة من الموز ، يمكنك البحث عن "* banana *" وإرجاع نفس الاختصار ("B") لجميع هذه الخلايا:

    =LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})

    لمزيد من المعلومات ، يرجى الاطلاع على صيغة البحث كبديل لمعايير IFs المتداخلة.

    صيغة Vlookup

    عند العمل مع مجموعة بيانات متغيرة ، قد يكون من الأنسب إدخال قائمة التطابقات بشكل منفصل الخلايا واستردادها باستخدام صيغة Vlookup ،على سبيل المثال:

    =VLOOKUP(A2, $D$2:$E$5, 2,FALSE )

    لمزيد من المعلومات ، يرجى الاطلاع على برنامج Excel VLOOKUP التعليمي للمبتدئين.

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

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

    Excel إذا احتوت الخلية - أمثلة الصيغة (ملف .xlsx)

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