الأخ الحبيب أبو عمر
أولا هذا ليس بكود بل هذه معادلة (المعادلة في الإكسيل تبدأ بعلامة يساوي = أما الكود عبارة عن أسطر برمجية تكتب في محرر الفيجوال بيسك والكود يكتب بين Sub يليه اسم الإجراء وبعد كتابة الأكود ينتهي بالجملة End Sub)
ثانيا لو أردت فهم معادلة بشكل جيد قم بتقسيمها جزء جزء حتى يسهل فهمها (قسمها تفهمها إن شاء الله)
ثالثا إليك شرح المعادلة بشكل مبسط .. المعادلة عبارة عن معادلة بحث في النطاق A2:A20 وطالما أن البحث لا يشمل البحث عن خلية واحدة فبالتالي المعادلة معادلة صفيف أي تبدأ بقوس وتنتهي بقوس وهذه الأقواس لا تكتب يدوياً إنما يتم الضغط على CTRL + SHIFT +ENTER بعد الانتهاء من كتابة المعادلة ، هذا شرح عام للمعادلة
نقسمها :
=IFERROR(INDEX($A$2:$A$20; MATCH(0;COUNTIF($I$1:I3;$A$2:$A$20);0));"")
الجزء الأول بعد علامة يساوي مرتبط بآخر جزء وهو خاص في حالة حدوث خطأ في ناتج المعادلة وهذا الخطأ هو #N/A تمت إضافته لتفادي الخطأ ، وفي حالة حدوث الخطأ يتم وضع فراغ وليس مسافة لأن الفراغ لا يشغل حيز أم المسافة بالمسطرة تشغل حيز
=IFERROR( ;"")
الجزء الثاني دالة INDEX وهي دالة البحث (لتعرف كيف تعمل الدالة قم بوضع مؤشر الماوس بعد القوس التالي مباشرة للدالة فيظهر لك البارامتر الخاص بالدالة - سيفيدك هذا في فهم المعادلة بشكل كبير - ، بالنسبة لهذه الدالة يتبعها ثلاثة بارامترات .. الأول هو Array أي المصفوفة أو بشكل أبسط النطاق والمقصود به نطاق البحث وهو هنا A2:A20 والبارامتر الثاني هو رقم الصف المطابق للبحث والبارامتر الثالث رقم العمود وهذا البارامتر اختياري أي يمكن تجاهله وهو في معادلتنا هذه تم تجاهله لأن البحث في عمود واحد وهو A
نأتي للجزء الخاص باستخراج رقم الصف وهو أهم جزء في المعادلة ..
MATCH(0;COUNTIF($I$1:I3;$A$2:$A$20);0)
الدالة Match من ضمن دوال البحث ويتبعها ثلاثة بارامترات أيضا : الأول خاص بالقيمة المراد البحث عنها ، والثاني نطاق البحث عن القيمة ، والثالث عبارة عن تحديد طريقة البحث وتكون إحدى القيم 1 أو 0 أو -1 (الصفر للبحثث المتطابق)
القيمة المطلوب البحث عنها 0 والجزء الأخير 0 للبحث المتطابق....
أما نطاق البحث عن القيمة فهي عبارة عن معادلة تكون نواتجها عبارة عن 1 أو صفر ، هنا تم استخدام الدالة COUNTIF دالة العد الشرطية
COUNTIF($I$1:I1;$A$2:$A$20)
ويتبعها النطاق وهو هنا الخلية
$I$1:I1
حيث أول النطاق خلية ثابتة أمأ آخر النطاق خلية غير ثابتة حتى يتغير النطاق عند سحب المعادلة ، والبارامتر الثاني للدالة COUNTIF هو الشرط والشرط هنا هو القيم الموجودة في النطاق A2:A20
في الخلية I2 مثلا يبحث في النطاق فيجد كلمة المندوب والشرط هو إحدى القيم في النطاق A2:A20 فيرجع القيمة 0 فيعطي رقم الصف الذي يطابق القيمة صفر وهو الصف رقم 1 ، بالتالي يكون ناتج المعادلة MATCH في أول خلية رقم 1 وهو أول اسم (أحمد)
وهكذا يتم استخراج القيم الغير مكررة في النطاق A2:A20 حتى إذا تم استخراج القيم كلها في النطاق لا تجد الدالة قيم أخرى فتعطي فراغ في باقي الخلايا
الحمد لله الذي بنعمته تتم الصالحات