الصـقر قام بنشر نوفمبر 30, 2014 قام بنشر نوفمبر 30, 2014 (معدل) للامانة العملية هذا العمل منقول من موقع office نقلته لكم وقمت بالعمل على تنسيقه فقط اولاً : استخدام VLOOKUP تبحث VLOOKUP عن قيمة في العمود في أقصى يسار الجدول، ثم تُرجع قيمة في الصف نفسه من عمود تحدده في الجدول. (يشير الحرف V في VLOOKUP إلى عمودي). لتوضيح ما تقوم به VLOOKUP، سنلقي نظرة على مهمة نستخدم فيها البيانات الموجودة في النطاق B3:C11 — يظهر في الصورة التالية — لإرجاع المعدلات بالساعة في النطاق F3:F11، للأسماء المدرجة في النطاق E3:E11. تجدر الإشارة إلى أن الأسماء في E3:E11 مدرجة بترتيب مختلف عن الأسماء في B3:B11. المنطق البسيط المستخدم هنا هو: البحث عن اسم مدرج في النطاق E3:E11، ضمن النطاق B3:B11. ثم إرجاع المعدل بالساعة لذلك الاسم، المدرج في النطاق C3:C11، ووضع المعدل في النطاق F3:F11. الصيغة المطلوبة لتنفيذ ذلك هي: =VLOOKUP(E3,$B$3:$C$11,2,FALSE) لفهم هذه الصيغة، يجب مراعاة بناء جملة الدالة VLOOKUP: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) سنقسّم الآن الوسيطات في بناء الجملة لهذا المثال المحدد: lookup_value الإشارة إلى الخلية التي تحتوي على القيمة التي تريد البحث عنها. وبالتالي، بالنسبة إلى الخلية F3 تكون قيمة lookup_value هي E3. table_array تشير table_array هنا إلى النطاق الذي يحتوي على كل من البيانات التي تبحث عنها والبيانات التي تريد إرجاعها. في هذا المثال، النطاق B3:C11 هو القائمة التي سيتم منها إرجاع المعدل بالساعة. col_index_num الإشارة إلى رقم العمود ضمن النطاق $B$3:$C$11 الذي يضم البيانات التي تريد إرجاعها. في المثال الذي قدمناه، يقع المعدل بالساعة في العمود 2. range_lookup تحدد هذه القيمة إن كنت تريد أن تبحث الدالة VLOOKUP عن تطابق تام أو تطابق تقريبي. إذا كانت قيمتها تساوي TRUE أو إذا تم حذفها، فيمكن إرجاع تطابق تام أو تقريبي. لكي تعمل هذه الوسيطة بشكل صحيح، يجب وضع القيم في العمود الأول من table_array بترتيب فرز تصاعدي. وإذا كانت قيمتها تساوي FALSE، كما في هذا المثال، فستعثر الدالة VLOOKUP على التطابق التام فقط. وفي هذه الحالة، لا حاجة إلى فرز القيم في العمود الأول من table_array. الأخطاء التي قد تنتج من إدراج البيانات أو حذفها سنعالج الآن بعض التعقيدات التي تبرز في الصيغة. استخدام ISERROR للتعامل مع اسم مفقود إذا حذفنا الاسم Sue P من الخلية B9، فسنحصل على النتيجة #N/A في الخلية F5 نظرًا لعدم تمكّن الصيغة من العثور على الاسم في النطاق B3:C11 في الخلية F5. لإخفاء قيمة الخطأ، تكون الصيغة على الشكل التالي: =IF(ISERROR(VLOOKUP(E3,$B$3:$C$11,2,FALSE)),"",VLOOKUP(E3,$B$3:$C$11,2,FALSE)) المنطق الأساسي المستخدم هنا هو: إذا كانت الصيغة ترجع قيمة خطأ، فيجب إظهار قيمة فارغة في هذه الخلية؛ أو إظهار المعدل بالساعة. استخدام MATCH للتعامل مع الأعمدة المدرجة كما رأيت في الدالة VLOOKUP أعلاه، تم إدخال col_index_name كـ 2، وبالتالي فإن الصيغة غير ديناميكية. أي، إذا تم إدراج عمود فارغ بين العمودين B وC من هذا النطاق، فستُرجع الصيغة القيمة 0 لأن العمود 2 لم يعد يتضمّن أي بيانات. ولذلك، فإن مهمتنا الآن هي جعل col_index_name ديناميكية بما فيه الكفاية لتحديد رقم العمود للخلية التي تحتوي على العنوانالمعدل بالساعة. لتنفيذ ذلك، سنستخدم الدالة MATCH. ثانياً : بناء جملة الدالة MATCH هو: MATCH(lookup_value,lookup_array,match_type) سنقسّم الآن الوسيطات في بناء الجملة لهذا المثال المحدد: Lookup_value المرجع للخلية التي تحتوي على المعدل بالساعة. في هذه الحالة، يمكننا إدخال $F$1 أو تحديد "المعدل بالساعة" كـ lookup_value. lookup_array هذا هو العمود حيث تتوقع أن يكون المعدل بالساعة فيه — هذا هو البحث الديناميكي. وتجدر الملاحظة إلى وجوب وجود صف واحد فقط لـ lookup_array. أي، لا تُدخل النطاق $B$1:$D$2؛ عليك إدخال $B$1:$D$1. match_type أدخل 0 للعثور على تطابق تام أو 1 للعثور على تطابق تقريبي. في هذه الحالة، سنُدخل 0. صيغة MATCH هي الآن على الشكل التالي: MATCH($F$1,$B$1:$D$1,0) وناتج الصيغة هو 2. إذا تم الآن إدراج عمود في النطاق B3:C11، فسيكون عائد الصيغة 3. يمكن الآن إدخال الصيغة VLOOKUP في الخلية F3 على الشكل التالي: =VLOOKUP(E3,$B$3:$D$11,MATCH($F$1,$B$1:$D$1,0),FALSE) تلميح لمنع ظهور قيم الخطأ، يمكنك أيضًا تضمين الدالة ISERROR، كما هو موضح أعلاه. ثالثاً: اكتساب المرونة باستخدام الدالة INDEX في حين تقوم الدالة VLOOKUP بالبحث عن إحدى القيم في العمود إلى أقصى اليسار في الجدول، ثم تُرجع قيمة في الصف نفسه من عمود تحدده في الجدول، فإن الدالة INDEX أكثر ديناميكية. إذ يمكنها البحث عن قيمة في أي عمود في الجدول وإرجاع القيمة من عمود آخر في الصف نفسه. على سبيل المثال، إذا كان المعدل بالساعة في النطاق A3:A11 بدلاً من النطاق C3:C11، فستفشل صيغة VLOOKUP الأصلية، لأن القيمة المطلوب البحث عنها (الاسم) غير موجودة في العمود إلى أقصى اليسار في الجدول (النطاق A3:B11). الحل الذي توفره INDEX هو: البحث عن الصف (في النطاق A3:B11) حيث يظهر الاسم في النطاق D3:D11. البحث عن العمود حيث يظهر المعدل بالساعة. إرجاع القيمة عند تقاطع الصف والعمود. بناء جملة الدالة INDEX هو: INDEX(array,row_num,column_num) يمكن تفسير بناء جملة الأمر كما يلي: Array التطابق مع table_array في الدالة VLOOKUP. في المثال المعروض في الصورة التالية، الصفيف هو A1:B11. Row_num الإشارة إلى رقم صف الاسم، الذي يظهر في النطاق D3:D11، في النطاق B1:B11. كما هو موضح سابقًا، تم استخدام الدالة MATCH لتحديد رقم الصف. Column_num الإشارة إلى رقم العمود في النطاق A1:B11 الذي نريد الحصول على البيانات منه. مرة أخرى، تم استخدام الدالة MATCH لتحديد رقم العمود. ولذلك، فإن INDEX تنفّذ هذه العملية الأساسية: في النطاق A1:B11، البحث عن القيمة عند تقاطع صف مع عمود محدد. الصيغة المطلوبة لتنفيذ ذلك، كما هو موضح في الصورة أعلاه، هي: =INDEX($A$1:$B$11,MATCH(D3,$B$1:$B$11,0),MATCH($E$1,$1:$1,0)) تم تعديل نوفمبر 30, 2014 بواسطه حسام عيسى 3
ليلى الهلالي قام بنشر نوفمبر 30, 2014 قام بنشر نوفمبر 30, 2014 للامانة العملية هذا العمل منقول من موقع office نقلته لكم وقمت بالعمل على تنسيقه فقط شكراً أستاذ حسام على هذه المعلومات القيمة. وشيء جميل أن تقوم بتسهيل وصول المعلومة لمن لا يعرفون من أين يحصلون عليها. 1
ياسر خليل أبو البراء قام بنشر نوفمبر 30, 2014 قام بنشر نوفمبر 30, 2014 جزاكم الله خيراً أخي الحبيب حسام أنا قاعد لك للساقطة واللاقطة إنت قلت (إذا حذفنا الاسم Sue P من الخلية B9، فسنحصل على النتيجة #N/A في الخلية F5 نظرًا لعدم تمكّن الصيغة من العثور على الاسم في النطاق B3:C11 في الخلية F5.) مين الأخ ده Sue P؟؟ اللي موجود في B9 (وليد حلو) يا حسام يا حلو .. وبلاش التعقيد في الشرح .. فهم الكلام واشرحه بأسلوبك (خلي ليك أسلوب مستقل ) اعذرني للانتقاد ..بس أتمنى يكون بناء مش هدام .. بارك الله فيك على المجهود المبذول أخي الحبيب Sue P أقصد حسام حبيبي
الصـقر قام بنشر نوفمبر 30, 2014 الكاتب قام بنشر نوفمبر 30, 2014 (معدل) استاذى الفاضل / ياسر شكرا على مرورك اما موضوع الشرح انا تلميذ لسة بتعلم مليش في الشرح يعنى يدوب اقدر اقدم شئ منقول فقط الشرح بقى للاستاذ اللى زيك يا كبير تقبل منى وافر الاحترام والتقدير تم تعديل نوفمبر 30, 2014 بواسطه حسام عيسى 1
ياسر خليل أبو البراء قام بنشر نوفمبر 30, 2014 قام بنشر نوفمبر 30, 2014 أنا مجرد تلميذ يا مستر حسام ، وبردو بنقل ، كل الفكرة إني بهضم المعلومة وأنقلها بأسلوبي ..ودا اللي أنا عايزك تعمله
الصـقر قام بنشر نوفمبر 30, 2014 الكاتب قام بنشر نوفمبر 30, 2014 (معدل) ما هو المشكله انى مش بعرف افهمها اقصد ( اهضمها ) فبكتفى بنقلها ممكن اللى مهضمتهوش انا يهضمه غيرى ويستفيد منه تم تعديل نوفمبر 30, 2014 بواسطه حسام عيسى
محمد لطفى قام بنشر ديسمبر 1, 2014 قام بنشر ديسمبر 1, 2014 السلام عليكم جزاك الله خيرا استاذى الفاضل / حسام عيسى حلو جدا الايثار فى العلم لكى يستفيد منه الاخرين
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.