التكرار باستخدام MAP وREDUCE
تطبيق LAMBDA على مصفوفة لتحويل القيم أو تجميعها
التكرار باستخدام MAP وREDUCE درس مجاني في Excel Formulas Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Excel Formulas Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Excel Formulas Academy 4 دروس في المجموع.
التكرار من دون تعليمات برمجية
قد ترغب أحيانًا في تطبيق الحساب نفسه على كل قيمة في نطاق، أو اختزال نطاق كامل إلى رقم واحد. يُسمّى هذا تكرارًا في البرمجة. وفي جداول البيانات الحديثة، تنفّذ MAP وREDUCE ذلك نيابةً عنك باستخدام LAMBDA.
- تحوّل MAP كل عنصر في المصفوفة إلى عنصر جديد
- تجمع REDUCE كل العناصر في نتيجة واحدة متراكمة
تستقبل كلتاهما LAMBDA تصف ما يجب فعله بكل قيمة. وهما متاحتان في Microsoft 365 وجداول بيانات Google.
كيفية عمل MAP
تمر MAP على المصفوفة وتطبّق LAMBDA على كل عنصر، فتنتج مصفوفة جديدة بالحجم نفسه. وتتلقى معلمة LAMBDA عنصرًا واحدًا في كل مرة.
النمط هو: تزويد MAP بالمصفوفة، ثم LAMBDA تكون معلمتها ممثلةً لكل قيمة. وتوزّع MAP النتائج المحوّلة تلقائيًا عبر الخلايا.
=MAP(array, LAMBDA(value, calculation))مثال MAP الأول
لنفترض أن A2:A6 تحتوي على خمسة أسعار، وأنك تريد زيادة كل منها بنسبة 10 بالمئة. تطبّق MAP الزيادة على كل قيمة دفعة واحدة.
تمثل معلمة LAMBDA p كل سعر بالتتابع. وتُرجع MAP خمس نتائج، واحدة لكل خلية إدخال، فتوزّعها نزولًا في العمود.
لا حاجة إلى سحب مقبض التعبئة أو النسخ. تتولى صيغة واحدة معالجة النطاق بأكمله.
=MAP(A2:A6, LAMBDA(p, p*1.1))MAP مع مصفوفتين
يمكن لـ MAP المرور على مصفوفتين بالتوازي. وعندها تأخذ LAMBDA معلمتين، واحدة من كل مصفوفة، وتطابق بينهما حسب الموضع.
نضرب هنا الكميات في A2:A6 بالأسعار في B2:B6 للحصول على إجماليات البنود. وتقترن المعلمة q بكل كمية، بينما تقترن pr بكل سعر.
يجب أن تكون المصفوفتان بالحجم نفسه، وإلا فستحصل على خطأ.
=MAP(A2:A6, B2:B6, LAMBDA(q, pr, q*pr))كيفية عمل REDUCE
تختزل REDUCE مصفوفة إلى قيمة واحدة. وهي تحتفظ بـمجمّع يتحدّث مع كل عنصر.
وتستقبل ثلاثة أشياء: قيمة ابتدائية للمجمّع، والمصفوفة، وLAMBDA بمعلمتين هما acc (الإجمالي الجاري) وvalue (العنصر الحالي). وتُرجع LAMBDA المجمّع الجديد في كل خطوة.
=REDUCE(start, array, LAMBDA(acc, value, new_accumulator))مثال REDUCE الأول
لنجمع نطاقًا باستخدام REDUCE (نعم، تنفّذ SUM ذلك أيضًا، لكنه يوضح الآلية بجلاء).
نبدأ المجمّع بالقيمة 0. ولكل قيمة في A2:A6، تضيف LAMBDA القيمة إلى acc. وبعد العنصر الأخير، يحتوي acc على الإجمالي.
إذا كانت القيم هي 10 و20 و30، فسيتدرج المجمّع من 0 إلى 10 ثم 30 ثم 60، وينتهي عند 60.
=REDUCE(0, A2:A6, LAMBDA(acc, v, acc + v))استخدام REDUCE لحساب حاصل ضرب متراكم
غيّر العملية، وستنفّذ REDUCE شيئًا جديدًا. لضرب جميع القيم معًا، ابدأ المجمّع بالقيمة 1 واضرب في كل خطوة.
يحسب هذا حاصل ضرب، وهو مفيد لأشياء مثل عوامل النمو المركب. وتهم قيمة البداية: استخدم 0 للمجاميع و1 لحواصل الضرب، فهما نقطتا البداية المحايدتان.
=REDUCE(1, A2:A6, LAMBDA(acc, v, acc * v))دمج MAP وREDUCE
يمكنك إجراء التحويل باستخدام MAP والتلخيص باستخدام REDUCE في صيغة واحدة. ومن المهام الشائعة جمع مربعات نطاق.
تربّع MAP كل قيمة، ثم تجمع REDUCE القيم بدءًا من 0. وتصبح نتيجة MAP هي المصفوفة التي تعالجها REDUCE.
=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))MAP وREDUCE في جداول بيانات Google
توجد كلتا الدالتين في جداول بيانات Google بالبنية نفسها. تطبّق MAP LAMBDA على كل عنصر، بينما تجمع REDUCE القيم باستخدام قيمة بداية ومصفوفة وLAMBDA بمعلمتين.
توفّر جداول بيانات Google أيضًا أدوات مساعدة ذات صلة مثل SCAN، التي تشبه REDUCE لكنها تُرجع كل مجمّع وسيط بدلًا من الأخير فقط. ويتوفر SCAN في Excel أيضًا.
=SCAN(0, A2:A6, LAMBDA(acc, v, acc + v))تلميحات وملاحظات مهمة
تذكّر بعض الأمور:
- في MAP، يجب أن تُرجع LAMBDA قيمة واحدة لكل عنصر
- في REDUCE، يجب أن تُرجع LAMBDA المجمّع الجديد دائمًا، فلا تنسه
- اختر قيمة البداية المناسبة: 0 للمجاميع، و1 لحواصل الضرب، وسلسلة نصية فارغة لضم النصوص
- يجب أن تتشارك المصفوفات الممرّرة معًا الأبعاد نفسها
عند الشك، اختبر LAMBDA مضمنة على قيمة واحدة أولًا.
متى تستخدم كل دالة
استخدم MAP عندما تريد نتيجة لكل مدخل، مثل تطبيق زيادة أو تنسيق على كل قيمة.
استخدم REDUCE عندما تريد اختزال قيم متعددة إلى قيمة واحدة، مثل إجمالي مخصص أو عملية ضم أو إيجاد أكبر قيمة باستخدام منطقك الخاص.
تتيح لك الدالتان معًا التعبير عن عمليات تكرار لم تكن جداول البيانات القديمة قادرة على تنفيذها في صيغة واحدة.
تحقق سريع
اختبر فهمك للدالة REDUCE.
مراجعة: التكرار باستخدام MAP وREDUCE
تعلّمت كيفية التكرار على المصفوفات باستخدام دوال تعتمد على LAMBDA.
- تحوّل MAP كل عنصر إلى عنصر جديد، وتُرجع مصفوفة
- تختزل REDUCE المصفوفة إلى قيمة واحدة باستخدام مجمّع
- اختر قيمة بداية مناسبة: 0 للمجاميع و1 لحواصل الضرب
- يمكن لـ MAP مطابقة عدة مصفوفات؛ وادمج MAP وREDUCE للحصول على ملخصات قوية في سطر واحد
- يعرض SCAN كل خطوة وسيطة
بعد ذلك ستتعلّم حفظ LAMBDA كدوال مسماة لإنشاء صيغ واضحة قابلة لإعادة الاستخدام في المصنف بأكمله.
=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))الأسئلة الشائعة
هل درس «التكرار باستخدام MAP وREDUCE» مجاني؟
نعم — نص درس «التكرار باستخدام MAP وREDUCE» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Excel Formulas Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Excel Formulas Academy 4 دروس في المجموع.
ماذا ستتعلم في «التكرار باستخدام MAP وREDUCE»؟
تطبيق LAMBDA على مصفوفة لتحويل القيم أو تجميعها تتمرن على Excel Formulas Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Excel Formulas Academy؟
لا تُشترط خبرة سابقة. Excel Formulas Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «التكرار باستخدام MAP وREDUCE»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Excel Formulas Academy هذا؟
نعم. كل درس في Excel Formulas Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تسمية الخطوات باستخدام LET
- تعريف دوال مخصصة باستخدام LAMBDA
- التكرار باستخدام MAP وREDUCE
- صيغ أوضح باستخدام LAMBDA مسماة