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

دالة IFERROR في الاكسل: استبدال #N/A و#DIV/0! (وIFNA)

تعيد =IFERROR(B2/C2,0) ناتج B2/C2، أو 0 عندما تعطي القسمة خطأ. تعلّم IFERROR مع VLOOKUP، وإعادة خلية فارغة بدل الخطأ، ولماذا IFNA خيار أفضل للبحث، ولماذا قد يخفي إخفاء كل الأخطاء أخطاء حقيقية.

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

تعيد =IFERROR(B2/C2,0) ناتج B2/C2، أو 0 عندما يكون ذلك الناتج خطأ. الوسيط الأول هو الصيغة التي تريدها؛ والثاني هو ما يُعرض بدلًا من أي خطأ تنتجه.

سعر الوحدة
E2
ABCDE
1ProductRevenueUnitsPlainWith IFERROR
2Pens$12080$1.50$1.50
3Paper$30050$6.00$6.00
4Ink$900#DIV/0!$0.00
5Tape$4530$1.50$1.50
6Clips$00#DIV/0!$0.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

لدى Ink وClips صفر وحدات، لذا تعرض القسمة العادية في العمود D الخطأ #DIV/0!. ويعرض العمود E القيمة $0.00 لهما والسعر العادي لكل صف آخر. اكتب 15 في C4 فيعرض العمودان سعر Ink.

صيغة دالة IFERROR

=IFERROR(value, value_if_error)
  • value هي الصيغة المراد حسابها.
  • value_if_error تُعاد عندما تكون value أي خطأ: #N/A و#VALUE! و#REF! و#DIV/0! و#NUM! و#NAME? و#NULL!، والأخطاء الأحدث مثل #CALC!.
  • إذا لم تكن value خطأ، تعيدها IFERROR دون تغيير.

يمكن أن يكون البديل رقمًا (0)، أو نصًا ("Not found")، أو نصًا فارغًا ("")، أو صيغة أخرى، مثل بحث ثانٍ في جدول آخر: =IFERROR(VLOOKUP(E2,A2:C6,3,FALSE),VLOOKUP(E2,G2:I6,3,FALSE)).

IFERROR مع VLOOKUP

يعيد البحث الخطأ #N/A عندما لا تكون القيمة في الجدول. وضعه داخل IFERROR يعرض رسالة بدلًا من ذلك:

البحث عن سعر
F2
ABCDEF
1ProductCategoryPriceLook forPrice
2AppleFruit$1.20Pear$1.50
3PearFruit$1.50KiwiNot found
4CarrotVegetable$0.80Milk$1.10
5BreadBakery$2.40
6MilkDairy$1.10
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

Kiwi ليست في القائمة، لذا تقول F3 إنها Not found. اكتب Kiwi في A4 بدلًا من Carrot فتجدها F3. ومع XLOOKUP لا تحتاج إلى IFERROR لهذا الغرض، لأن وسيطها الرابع هو قيمة "غير موجود": =XLOOKUP(E2,A2:A6,C2:C6,"Not found").

IFNA: التقاط #N/A فقط

تعمل IFNA مثل IFERROR لكنها تستبدل #N/A فقط. وفي البحث يكون هذا عادة ما تريده: #N/A تعني "غير موجود"، وهي إجابة طبيعية، بينما يعني أي خطأ آخر أن الصيغة نفسها خاطئة. في هذه الورقة تطلب الصيغ العمود 4 من جدول من ثلاثة أعمدة، وهذا خطأ مطبعي:

IFERROR تخفي الخطأ المطبعي وIFNA تظهره
F2
ABCDEFG
1ProductCategoryPriceLook forIFERRORIFNA
2AppleFruit1.2PearNot found#REF!
3PearFruit1.5
4CarrotVegetable0.8
5BreadBakery2.4
6MilkDairy1.1
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

Pear موجودة في الجدول، ومع ذلك تقول F2 إنها Not found: حوّلت IFERROR الخطأ #REF! الناتج عن رقم العمود الخاطئ إلى الرسالة نفسها التي تظهر لمنتج مفقود. أما G2 فتترك #REF! يمر، فترى أن الصيغة معطلة. غيّر 4 إلى 3 في G2 فتعيد 1.5. تحتاج IFNA إلى Excel 2013 أو ما بعده.

إعادة خلية فارغة بدل الخطأ

لعرض لا شيء، استخدم نصًا فارغًا، أي علامتي اقتباس مزدوجتين، كبديل:

النمو مع خلايا فارغة مكان الأخطاء
D2
ABCD
1MonthLast yearThis yearGrowth
2Jan20024020%
3Feb0150
4Mar180171-5%
5Apr90
6May25030020%
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

لم تكن لشهري فبراير وأبريل مبيعات في العام الماضي، لذا لا يمكن حساب نموهما وتبقى الخلية فارغة. وتعرض الأشهر الأخرى 20% وسالب 5% و20%. الخلية التي فيها "" تحتوي على نص: تتخطاها SUM وAVERAGE، لكن =D3*2 تعطي #VALUE!. إذا كانت صيغ لاحقة تجري عمليات حسابية على العمود، فأعد 0 بدلًا من ذلك.

تمرين: البحث مع قيمة بديلة

البحث في المخزون
F2
ABCDEF
1ProductStockLook forStock
2Apple40Kiwi
3Pear25
4Carrot60
5Bread12
6Milk30
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

دورك: في F2، ابحث عن مخزون المنتج الموجود في E2 من A2:B6، واعرض "Not found" عندما لا يكون في القائمة.

لماذا قد يخفي إخفاء كل الأخطاء أخطاءً حقيقية

لا تصلح IFERROR أي شيء؛ إنها تقرر ما تعرضه الخلية. قبل أن تضع صيغة داخلها:

  1. اعرف سبب الخطأ. عندما تسبب خلية Units فارغة الخطأ #DIV/0!، فقد يكون الحل الحقيقي بيانات يجب أن يدخلها أحد، لا سعرًا صفريًا.
  2. فضّل IFNA في البحث، حتى يبقى ظاهرًا رقم العمود الخاطئ (#REF!)، أو الاسم المكتوب خطأ (#NAME?)، أو النص في عمود أرقام (#VALUE!).
  3. اختبر الحالة المحددة في القسمة. تتعامل =IF(C2=0,0,B2/C2) مع المقسوم عليه الصفري ولا شيء غيره؛ ويبقى خطأ المرجع الخاطئ في B2 ظاهرًا. تقارن صفحة #DIV/0! بين الأسلوبين.
  4. اختر بديلًا لا يمكن الخلط بينه وبين البيانات. الصفر في عمود أسعار يبدو كسعر حقيقي ويخفض المتوسط؛ أما "" أو "Not found" فلا.

ضع الصيغة داخل IFERROR في آخر خطوة، بعد أن تعطي النتيجة الصحيحة في الصفوف التي يجب أن تعمل.

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

كيف أستخدم IFERROR مع VLOOKUP؟

ضع البحث داخلها: =IFERROR(VLOOKUP(E2,A2:C6,3,FALSE),"Not found"). عندما لا تكون E2 في العمود الأول، تعرض الخلية Not found بدلًا من #N/A. وتفعل =IFNA(VLOOKUP(E2,A2:C6,3,FALSE),"Not found") الشيء نفسه مع إبقاء الأخطاء الأخرى ظاهرة.

كيف أجعل IFERROR تعيد خلية فارغة؟

استخدم نصًا فارغًا كوسيط ثانٍ: =IFERROR(B2/C2,""). تبدو الخلية فارغة، لكنها تحتوي على نص، لذا تعطي =D2+1 عليها الخطأ #VALUE!؛ أما SUM وAVERAGE فتتخطيانها.

ما الفرق بين IFERROR وIFNA؟

تستبدل IFERROR كل خطأ: #N/A و#DIV/0! و#VALUE! و#REF! و#NAME? و#NUM! و#NULL!. أما IFNA فتستبدل #N/A فقط، أي "غير موجود" في البحث، وتترك كل خطأ آخر ظاهرًا، فلا تُخفى صيغة معطلة.

كيف أستبدل #N/A بصفر في الاكسل؟

ضع الصيغة داخل IFNA مع 0 كقيمة: =IFNA(VLOOKUP(E2,A2:C6,3,FALSE),0). وفي XLOOKUP يكون الاستبدال مدمجًا كوسيطها الرابع: =XLOOKUP(E2,A2:A6,C2:C6,0).

أي إصدارات الاكسل فيها IFERROR وIFNA؟

توجد IFERROR منذ Excel 2007 وIFNA منذ Excel 2013. في الملفات الأقدم قد ترى =IF(ISERROR(B2/C2),0,B2/C2)، التي تؤدي عمل IFERROR نفسه لكنها تحسب الصيغة مرتين.

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

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

ابدأ الآن