إزاي تقدر تعمل أرقام عشوائية في إكسل؟
تعرف إنك تقدر تولّد أرقام وقوايم أرقام في ثواني عن طريق برنامج الإكسل؟ الأرقام العشوائية دي هي الأرقام اللي بتطلع بالصدفة وبدون ترتيب محدد، فلو عايز تطلع أرقام عشوائية في الإكسل، ممكن تعمل الخطوات دي بكل سهولة، والجميل كمان إنه سهل جدًا تعمل تجارب وحسابات افتراضية باستخدام إكسل من خلال اتنين من وظايفه اللي بتولّد الأرقام العشوائية وهما:
( ) R A N D و RANDBETWEEN ( bottom, top ).
إقرأ المزيد: ازاي تحسب الانحراف المعياري في اكسل؟
توليد الأرقام في Excel
فلنفرض إنك عاوز تختار أرقام عشوائية لمجموعة من الناس، ممكن يكون عشان تخصص ليهم أرقام رمزية في سباق زي مثلا:
- هتختار بشكل عشوائي عدد من الناس من قايمة المراسلات.
- عايز عدد عشوائي من الموظفين عشان تعمل استبيان عشوائي، مش لكل الموظفين في القيمة.
- هتجمع اتنين من فصول مختلفة في مدرسة عشان يتنافسوا في مسابقة معرفية.
- هتختار فرق كرة قدم بشكل عشوائي عشان يتنافسوا مع بعض بتقسيمهم على مستوى متساوي.
توليد الأرقام باستخدام وظيفة RAND
في البداية، بنستخدم وظيفة RAND: الوظيفة دي بتديلنا أرقام عشوائية بشكل متوزع بالتساوي (بنسميها “أرقام شبه عشوائية”)، ودي اللي بتكون أكبر من أو تساوي صفر وأقل من واحد، وفي كل الأمثلة دي، ممكن تختار أرقام عشوائية للمجموعات/الأشخاص المناسبين، وتعمل تجارب وحسابات افتراضية عشان تنظم علاقات السبب والنتيجة بينهم، وأول حاجة هنبتدي بيها هي وظيفة RAND، والصيغة بتاعة وظيفة RAND بتكون كدا:
=( ) R A N D
هتلاحظ انه لما تستخدم الوظيفة دي كل ما كتبت حاجة في أي خلية (ممكن تكون رقم، حرف، أو رمز أي حاجة)، أو مسحت قيمة من خلية تانية، أو عملت Refresh للصفحة، أو ضغطت Enter والماوس بيكون في خلية A2 اللياأنت طبقت فيها وظيفة RAND، ساعتها القيمة في الخلية A2 هتتغير تلقائي، ودا بيحصل لأن الخلايا اللي شغالة بوظيفة RAND ديناميكية، يعني الورقة بتعيد حساباتها ورقم عشوائي جديد بيتولّد في كل مرة.
لكن دا ممكن يكون مزعج، وممكن يأثر على شغلك، لو عايز أرقام ثابتة عشان تعمل فيها حسابات، فممكن تعطل الإعادة التلقائية للحسابات، وده بيتم من خلال اتباع الخطوات دي:
- File > Options > Formulas
- وبعدين تختار Manual من الخيارات الموجودة.
- ( الأمر ده متاح بردو لوظيفة RANDBETWEEN ).
لازم تكون واخد بالك جدًا وانت بتعطل الإعادة التلقائية، عشان ممكن تأثر على صحة الحسابات التانية اللي في الورقة، وتقدر كمان توقف الحساب التلقائي في الجدول بطريقة تانية، تقدر تنسخ العمود اللي فيه الأرقام العشوائية اللي اتعملت من خلال وظيفة RAND، وبعدين تعمل كليك يمين وتختار Paste Special وبعدين Values، وبالطريقة دي، لأنه مش هيبقى فيه فورمولا، الأرقام مش هتتغير تلقائي ( وده كمان متاح لوظيفة RANDBETWEEN ).
لو مش عايز بس رقم عشوائي واحد، وعايز قايمة بأرقام عشوائية، تقدر تعمل رقم عشوائي واحد باستخدام وظيفة RAND في خلية واحدة، وبعدين تستخدم الـ Fill Handle للسحب للأسفل وتكرار الرقم العشوائي في الخلايا اللي بعدها( الكلام ده كمان متوفر لوظيفة RANDBETWEEN ).
توليد الأرقام باستخدام وظيفة RANDBETWEEN
ولو قررت مثلا إنك محتاج أرقام عشوائية، بس مش في النطاق بين 0 و 1، وعايز أرقام عشوائية في أي نطاق تاني، فممكن تستخدم وظيفة RANDBETWEEN، يعني الوظيفة دي بتديلك خيارات أكتر من وظيفة RAND لما تحتاج تعمل أرقام عشوائية! وصيغة وظيفة RANDBETWEEN بتكون كدا:
=RANDBETWEEN (bottom, top)
- القيمة الأقل ( Bottom ): أصغر رقم اللي عايزه يجيلك من الدالة.
- القيمة الأعلى ( Top ): أكبر رقم عايزه يجي من الدالة.
- ممكن إن الرقم الأصغر والرقم الأكبر يظهروا في القايمة.
مهم جدًا: وظيفة RAND بتديلنا رقم عشري (لأنه لازم يكون بين 0 و 1)، لكن وظيفة RANDBETWEEN بتديلنا رقم صحيح.
بس، لو انت كاتب نفس الصيغة ومش ضغطت Enter، وضغطت F9، هتلاقي إن الصيغة هتتغير وهتديلك رقم ثابت بدل من رقم عشوائي، دا اختصار لعملية النسخ واللصق الخاص بالقيم.
أمثلة عملية علي توليد الارقام العشوائية في إكسل
خلينا نأخد مثال علي الكلام ده: عندك مجموعة من الموظفين وعايز تسحب قرعة بين 5 منهم واللي كانوا الأفضل في المبيعات، وتدي الفايز جايزة. المجموعة دي: لو فرزنا درجات المبيعات من الأعلى للأقل باستخدام: Data -> Filter -> Sort from biggest to smallest.
هنسحب قرعة عشوائية بين الخمسة اللي كانوا الأفضل في المبيعات باستخدام وظايف MAX و MIN و RANDBETWEEN في إكسل، ولنفرض ان الصيغة اختارت مايك كفايز كمان طلع رقم الموظف رقم 2، مع العلم اننا حطينا صيغة تانية اسمها VLOOKUP في الخلية F و G عشان نسترجع اسم الموظف ودرجته في المبيعات.
بس لازم تاخد بالك إن لو النطاق اللي بتستخدمه في وظيفة RANDBETWEEN كان أكبر من النطاق في القايمة الأصلية، ممكن تطلعلك أرقام متكررة أو أخطاء، مثلا لو بتجرب الدرس اللي فات، واخترت نطاق RANDBETWEEN من 1 لـ 10، بس مفيش في القايمة الموظفين اللي عندهم رقم 8، 9، أو 10، لما تسحب الصيغة للأسفل وتوصل للرقم 9، هتظهر أخطاء في وظيفة VLOOKUP.
المحاكاة في برنامج إكسل
المحاكاة في إكسل بتُستخدم عشان تحاكي موقف فيه أكتر من حاجة مختلفة بتحصل، في أغلب الأحيان بيحتاج يكون عندك نموذج رياضي عشان تحاكي النظام أو الموقف أو العملية، بالطريقة دي هتقدر تشوف إزاي النظام بيشتغل وإزاي الحاجات المختلفة بتتأثر ببعضها وكمان هتقدر تحسب نتايج الإجراءات المختلفة.
في الحياة العملية، بتقدر تستخدم المحاكاة عشان تحل مشاكل كتير زي اختيار قد ايه مبيعات لكل بايع هتكون المكافأة بتاعته، وإزاي المكافأة دي بتأثر على النتايج المالية للشركة، أو بتقدر تحسب الكميات المختلفة لمكونات منتج هتنتجه، وإزاي كميات المكونات دي بتأثر على تكلفة الإنتاج وكمان بتأثر على الربح اللي هتحققه بناءًا على توقعات المبيعات المختلفة، وبردو بتقدر تحسب المخاطر المالية اللي ممكن تواجها بناءً على كمية الإنتاج والمبيعات المتوقعة من خلال المحاكاة وتعمل معادلة فيها المتغيرات بتاعت الوضع عشان تحاكي احتمالات المستقبل.
عمل المدخلات في الاكسل
عشان تستخدم المحاكاة في الاكسل، لازم تبدأ تعمل إدخالات صح عشان كل مرة تحاكي المحاكاة تظهر قيم عشوائية جديدة، اللي هتُستخدم كإدخالات في نموذج الحساب، وبما إننا هنستخدم ميزة RAND و RANDBETWEEN في الإكسل عشان نحدد قيم عشوائية، بس لو عايزين نعكس الواقع و نستخدم قيم بطريقة توزيع الاحتمالات، عشان كدا النظام هيحسب نتيجة بتظهر بشكل مختلف ومرجح حسب الإدخالات والمتغيرات.
نقدر نعمل أرقام عشوائية باستخدام الوظيفتين دول ونجدد الأرقام بكل بساطة بالضغط على F9، بس لو عايزين نعمل محاكاة لحدث حقيقي، لازم نولّد الأرقام بطريقة تعبر عن التوزيع الاحتمالي المناسب للحدث، عشان النتيجة اللي تطلعلنا تكون أقرب للواقع المتوقع، إكسل بتقدم وظايف (functions) عشان تساعدك تحسب احتمالات انتشار البيانات بسهولة، والقايمة الجاية دي تقدر تلاقي فيها كل الوظايف المتاحة:
- Normal: DIST, INV.
- Standard normal: DIST, NORM.S.INV.
- t-distribution: DIST, INV.
- F-distribution: DIST, INV.
- Chi-square: DIST, INV.
- Lognormal: DIST, INV.
- Binomial: DIST, INV.
- Hypergeometric: DIST.
- Beta: DIST, INV.
- Gamma: DIST, GAMMA.INV.
- Exponential: DIST.
- Weibull: DIST.
- Poisson: DIST.
- Negative binomial: DIST.
واحد من أشهر التوزيعات هو التوزيع الطبيعي (normal distribution)، تقدر تستخدم الوظيفة NORM.INV لحساب الاحتماليات فيه، كمان ممكن تستخدم الصيغة دي للوظيفة:
=NORM.INV(probability,mean,standard_dev)
كمان متنساش عشان ترتب النتايج عشوائي، استخدام وظيفة RAND في وظيفة NORM زي كده:
=NORM.INV(RAND(),mean,standard_dev)
المقصود إننا لازم ناخد بالنا من البيانات اللي بندّخلها عشان نحدد المتوسط والانحراف المعياري صح، فمثلا لو بنحسب تكلفة منتج جديد و بندّخل بيانات زي كمية الإنتاج وكمية المواد الخام المستخدمة، لازم نعتمد على متوسط وانحراف معياري لمنتج مشابه تم إنتاجه في السنة اللي فاتت، وعشان مننساش، بنستخدم الدالة دي عشان نحسب المتوسط الحسابي:
=AVERAGE(numbers)
الصيغة اللي بنستخدمها عشان نحسب الانحراف المعياري في اكسل بتختلف حسب النوع اللي بنحسبه، فبنقدر نستخدم واحدة من الصيغ دي:
- S(numbers).
- P(numbers).
- STDDEVA(numbers).
- STDDEVPA(numbers).
محاكاة مونتي كارلو في اكسل
في الأربعينيات، ابتكر جون فون نويمان وستانيسلاف أولام مصطلح محاكاة مونتي كارلو، واستوحوه من مونتي كارلو في موناكو، اللي مشهور بمكان المقامرة للطبقة النخبوية في أوروبا، محاكاة مونتي كارلو هي طريقة لحساب كمية كبيرة من الأرقام العشوائية وحل مشاكل معقدة جدًا، وبنستخدمها في مجالات مختلفة زي الاقتصاد والمالية والفيزياء والكيمياء والهندسة والتوريد، ولو اخدتوا بالكوا كل دول ممكن يحتاجوا لحسابات معقدة وبيانات كتير.
مثلا في مجال الأعمال، ممكن تستخدم طرق عشوائية واحتمالية لدراسة الخيارات المعقدة أو تقييم المخاطر اللي بتواجه شركة في حالة عدم قدرتها على سداد ديونها، وفي بعض الأحيان بيكون عندنا مشكلة معقدة ومستحيل حلها بالحساب المباشر، في الحالة دي بنستخدم طريقة حساب رياضي بيضم عدد من الدورات الحسابية اللي بينتج عنها محاكاة توزيع عادي، وبتستخدم أنظمة حساب المخاطر ونماذج التنبؤ كتير من الطريقة دي.
وعشان نعمل محاكاة مونتي كارلو، لازم ناخد المتغيرات الرئيسية في المشكلة ونحولها لتوزيع احتمالات بعد عدد من العينات المحددة. كمثال خلينا نشوف نموذج لعبة النرد في 6 مراحل، ولنفترض إننا هنرمي 3 نردات 3 مرات، وكل نرد فيه 6 وجوه.
القواعد بتكون كده:
- لو مجموع النردات بيساوي 7 أو 11، اللاعب هيفوز في اللعبة.
- لو مجموع النردات بيساوي 3 أو 4 أو 5 أو 16 أو 17 أو 18، اللاعب هيخسر اللعبة.
- لو مجموع النردات مختلف عن الأرقام دي، اللاعب بياخد فرصة واحدة عشان يرمي النردات تاني.
مهم: متنساش إننا عايزين 5000 نتيجة عشان نقدر نعمل محاكاة مونتي كارلو، وكمان جدول البيانات حاجة مهمة جدًا في إنتاج النتايج.
المرحلة الأولى: رمي النرد
الحاجة الأولى اللي لازم نعملها هي إننا نجهز نطاق بيانات، مثلا لـ 50 رمية، وعشان نطلع نتايج عشوائية جديدة، لازم نستخدم دالة “RANDBETWEEN” بين الرقم 1 و 6، ونضغط F9 أو نحدث الصفحة بشكل مستمر، بعد كده لازم نحسب مجموع النتائج الإجمالية باسم “النتيجة” في خلية تانية.
المرحلة التانية: نطاق النتايج المحتملة
عشان نطلع النتايج المحتملة، لازم نجهز نطاق بيانات من 3 أعمدة، في العمود الأول هنكتب الأرقام من 3 لـ 18، اللي بتمثل مجموع النردات من 3 رميات، الرقم 3 هو الأقل لأنه ممكن نوصل ليه برمي النرد 3 مرات ونطلع النتيجة 1 + 1 + 1 = 3، والرقم 18 هو الأعلى عشان ممكن نوصله برمي النرد 3 مرات ونطلع النتيجة 6 + 6 + 6 = 18.
في الخلايا 1 و 2، لازم نطلع النتيجة “غ/م” غير متاح أو متاح لأن الوصول للنتيجة 1 أو 2 من خلال الحسابات دي هيبقي مستحيل، وفي العمود التاني، لازم نطلع النتايج المحتملة بعد الجولة الأولى، وهي الفوز، الخسارة أو الإعادة باعتمادك على نتيجة العمود الأول (مجموع النردات)، وفي العمود التالت، لازم نجيب النتايج المحتملة بعد الجولات اللي بعد كده، وعشان نعمل ده بنقدر نستخدم دالة “IF” في إكسل، عشان نضمن النتيجة النهائية بعد الفوز أو الإعادة الخ.
الفوز والخسارة هما النتايج النهائية، ولازم نستمر في رمي النردات لغاية ما نوصل للنتايج دي.
المرحلة التالتة: الاستنتاجات
دلوقتي، لازم نحسب نتايج الـ 50 رمية، وعشان نعمل كده، بنقدر نستخدم دالة “INDEX”، اللي من خلالها بنطلع نتايج منسجمة مع بعض، مثلا لو طلعلنا 8، بنحتاج نرمي النردات تاني، زبنقدر نستخدم دالة “OR” في إكسل وندمجها مع الدالة “IF” في الدالة “INDEX”، عشان نعمل حالة شرطية، مثلا لو كانت نتيجة الجولة اللي فاتت فوز أو خسارة، لازم النظام يُقف عن الرمي.
المرحلة الرابعة: عدد رميات النرد
عشان نتأكد إن إكسل محتاج لإعادة رمي النردات وبيضيف العدد من الجولة الإضافية، بنقدر نستخدم دالة “COUNTIF”، وبالطريقة دي بنقدر نحسب عدد رميات النرد اللي لازم نعملها عشان نطلع النتيجة النهائية كفوز أو خسارة.
المرحلة الخامسة: المحاكاة
دلوقتي، لازم نحسب نتايج محاكاة مختلفة، لازم نحسب 5000 محاكاة عشان نعمل محاكاة مونت كارلو.
- لازم نجهز 3 أعمدة، في العمود الأول، هنكتب الرقم 5000.
- في العمود التاني، لازم نطلع النتايج بعد 50 رمية.
- وفي العمود التالت، لازم نطلع عدد رميات النرد اللي هنعملها عشان نطلع النتيجة النهائية، وهي الفوز أو الخسارة.
في المرحلة دي، ضروري نعمل جدول تحليل الحساسية، بنقدر نعمله باستخدام جدول الميزات أو الجدول البياني، في جدول تحليل الحساسية ده، بنحط أرقام الأحداث من 1 لـ 5000، وبنقدر نحط النتايج دي في أي خلايا عشان ما تتأثرش بأي صيغ في خلايا تانية.
المرحلة السادسة: الاحتمالية
دلوقتي، الوقت جه عشان نحسب النتيجة النهائية، الفوز أو الخسارة، بنستخدم دالة “COUNTIF” في إكسل عشان نتأكد إن الصيغة بتحسب عدد الفوز أو الخسارة، وبعدين بنقسمه على العدد الإجمالي للأحداث، اللي هو 5000. بالطريقة دي، بنطلع النتيجة إن الاحتمالية للفوز هي 73.2%، والاحتمالية للخسارة هي 26.8%.
قالب مولد الأرقام العشوائية في إكسل
زي ما انتوا عارفين، إكسل فيه دوال إحصائية لتوزيعات الاحتمالات، الدوال دي ممكن نستخدمها مع دالة “RAND”، زي S.DIST، T.INV أو GAMMA.IMV وغيرها، لو عايز تستخدم قوالب لمولد الأرقام العشوائية، بتقدر تولّد أرقام عشوائية على حسب النوع اللي انت اخترته في صفحة جاهزة.، وتقدر تعمل اللستة بسهولة علي حسب الخصائص اللي عايزها، وكمان تقدر ترتب أو تعمل عشوائية أكتر من مرة على حسب ما تحب، وتقدر كمان تخلط الأرقام مع الحروف اللي تحبها زي الحروف، الأرقام، الكلمات وغيرها. نظام سهل جدًا ومفيد جدًا!
وبكدا نكون اتعرفنا علي إزاي تقدر تعمل أرقام عشوائية في إكسل؟
في النهاية
الأرقام العشوائية في إكسل بتفتحلنا عالم كبير، بنقدر نستخدمها في كذا حاجة، زي توزيع الأرقام بشكل عشوائي في الجداول، أو اختبار النماذج والتنبؤات، وعشان نستفيد من الأرقام العشوائية، لازم نكون فاهمين إزاي هي بتتولد، الأرقام العشوائية بتبقى زي القرعة بتاعة الشهر العقاري، بيطلع رقم واحد من فوق ويكون مفاجأة، بس الفرق إن الأرقام العشوائية بتبقى مستقلة وغير متوقعة، عشان ميبقاش فيه حد محسوب عليها.
مهم: ازاي تعمل مخططات Venn بالاكسل
مهمة الأرقام العشوائية في إكسل مش بس توزيع الحظ والمصادفات، لأ، دورها أكبر من كده، بتبقى صاحبة القرار في الإكسل، بتقولنا انتوا أكتر من مجرد أرقام، وبتخلق حرية للبيانات وبتدينا قوة في تحليل البيانات والاحصاء.