KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف تُولِّد قيمة عشوائية بناءً على احتمال معيَّن في Excel؟

المؤلفصنتاريخ التعديل

عند العمل مع Excel، قد تحتاج أحيانًا إلى توليد قيم عشوائية تعكس احتمالات محددة مسبقًا. على سبيل المثال، تخيل أن لديك جدولًا يعرض عدة نتائج محتملة مع احتمالاتها المرتبطة، كما في لقطة الشاشة أدناه.
بيانات نموذجية

يُعد هذا السيناريو شائعًا في محاكاة الأعمال ونمذجة المشاريع والأغراض التعليمية، حيث تريد أن يعكس الاختيار العشوائي بدقة الاحتمال أو التكرار المحدَّد بواسطة بياناتك.

تشمل الاحتياجات والاستخدامات النموذجية ما يلي:

  • محاكاة استجابات الاستبيانات أو اختيارات العملاء، مع جعل بعض الإجابات أكثر احتمالاً من غيرها.
  • أنشئ مجموعات بيانات تجريبية أو سحوبات عشوائية لتعليم مفاهيم الاحتمالات.
  • أتمتة عمليات الاختيار بحيث يحظى كل خيار بفرصة معلومة.
  • تصميم الألعاب وتحليل المخاطر، حيث تتطلب النتائج توزيعات احتمالية محددة.

أدناه تجد عدة طرق لتوليد قيم عشوائية وفق احتمالات معيّنة في Excel، بما في ذلك تقنيات تعتمد على الصيغ القياسية، وأتمتة متقدمة باستخدام VBA، بالإضافة إلى استخدام أداة تحليل البيانات (Analysis ToolPak) المدمجة في Excel.


توليد قيمة عشوائية مع احتمال

يقدم Excel حلاً عمليًا مبنيًا على الصيغ لتوليد قيم عشوائية وفقًا لاحتمالات محددة، وهو مثالي للمهام السريعة، حيث يعمل بالكامل داخل أوراق العمل دون الحاجة إلى أي إعداد خاص.

قبل البدء، تأكد من أن قيمك مُدرجة في عمود واحد (A2:A8)، وأن احتمالاتها المقابلة (المعبر عنها بأعداد عشرية بين 0 و1) موجودة في العمود المجاور (B2:B8). يجب أن يساوي مجموع الاحتمالات 1 لضمان الدقة. ويُعد هذا الحل مثاليًا للجداول التي تحتوي على عدد معقول من القيم.

1.في عمود مجاور (ابدأ من الخلية C2)، أدخل الصيغة التالية لحساب الاحتمالات التراكمية:

=SUM($B$2:B2)

ثم اسحب هذه الصيغة لأسفل لتغطية جميع قيمك، فيُنشئ ذلك نطاقات تراكمية لكل قيمة، مما يساعدك على ربط رقم عشوائي بنتيجة محددة.
استخدام صيغة لحساب النسب المئوية التراكمية

2.في أي خلية فارغة (على سبيل المثال، D2)، أدخل الصيغة التالية لإرجاع قيمة عشوائية بناءً على توزيع الاحتمالات الخاص بك:

=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)

اضغطEnter لعرض قيمة عشوائية. في كل مرة تضغط فيهاF9 (لإعادة الحساب)، أو عند تغيّر بيانات ورقة العمل، ستظهر نتيجة جديدة.
تطبيق صيغة لتوليد قيمة مختارة عشوائيًا بناءً على النسب المئوية التراكمية

نصائح وتحذيرات:

  • يجب أن يُجمَع مجموع الاحتمالات في العمود B بالضبط إلى 1 (أو 100% إذا كنت تستخدم النسب المئوية، ولكن تأكد من تحويلها إلى أعداد عشرية عند إدخالها في الصيغ) لضمان توزيع عادل.
  • هذه التقنية أنسب للقوائم القصيرة. فإذا كانت لديك عشرات أو مئات القيم، فقد يتباطأ الأداء وتصبح الصيانة أصعب.
  • إذا كنت بحاجة إلى تكرار الاختيار العشوائي لعدة سحوبات (مثل إنشاء دفعة من نتائج المحاكاة)، فما عليك سوى نسخ الصيغة النهائية إلى نطاقٍ أسفلَ أو بجانبها.
  • احذر من الصفوف الفارغة والنطاقات غير المتطابقة، فقد تؤدي إلى أخطاء أو نتائج غير متوقعة.

تذكير بالخطأ:إذا ظهر خطأ #REF! أو #VALUE!، فتأكد من أن عمود الاحتمالات التراكمية متطابق في طوله مع قيمك، وأن جميع الاحتمالات أرقامًا صالحة.

لقطة شاشة لـ kutools for excel ai

افتح سحر إكسل مع KUTOOLS AI

  • التنفيذ الذكي: نفِّذ عمليات الخلايا، وحلِّل البيانات، وأنشئ المخططات البيانية — كل ذلك بأوامر بسيطة!
  • الصيغ المخصصة: أنشئ صيغًا مخصصة لتبسيط سير عملك.
  • برمجة VBA: اكتب وأَنفِذ أكواد VBA بسلاسة تامة.
  • تفسير الصيغ: افهم الصيغ المعقدة بسهولة!
  • ترجمة النصوص: اكسر الحواجز اللغوية في جداولك الإلكترونية!
حسِّن قدراتك في إكسل بأدوات مدعومة بالذكاء الاصطناعي.حمِّل الآنوجرِّب الكفاءة كما لم تفعل من قبل!

VBA: توليد قيم عشوائية مع احتمالات معيّنة

للمستخدمين الذين يحتاجون إلى أتمتة متقدمة أو يرغبون في توليد كميات كبيرة من القيم العشوائية—مثل آلاف العيّنات—يُعدّ Excel VBA حلاً عمليًا، أسرع وأكثر مرونة من صيغ أوراق العمل. وتبرز فعالية هذه الطريقة بشكل خاص عند التعامل مع مجموعات بيانات ضخمة أو إنشاء نتائج عشوائية واسعة النطاق لأغراض المحاكاة.

1.انتقل إلىأدوات المطور>Visual Basic، ثم في نافذة VBA، انقر فوقإدراج>وحدة نمطية، والصق الكود التالي في الوحدة النمطية:

Sub GenerateRandomWithProbability()
    Dim rngValues As Range
    Dim rngProbs As Range
    Dim n As Long
    Dim i As Long
    Dim cumProbs() As Double
    Dim valList() As Variant
    Dim randNum As Double
    Dim resultRange As Range
    Dim idx As Long
    
    ' On Error, ignore
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Select values
    Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
    
    ' Select probabilities
    Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
    
    ' Number of random values to generate
    n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
    
    ' Where to output
    Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
    
    If rngValues.Rows.Count <> rngProbs.Rows.Count Then
        MsgBox "Values and probabilities range must be the same size.", vbExclamation
        Exit Sub
    End If
    
    ReDim cumProbs(1 To rngValues.Count)
    ReDim valList(1 To rngValues.Count)
    
    ' Calculate cumulative probabilities
    cumProbs(1) = rngProbs.Cells(1, 1).Value
    valList(1) = rngValues.Cells(1, 1).Value
    
    For i = 2 To rngValues.Count
        cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
        valList(i) = rngValues.Cells(i, 1).Value
    Next i
    
    ' Generate random results
    For i = 1 To n
        randNum = Rnd
        For idx = 1 To UBound(cumProbs)
            If randNum <= cumProbs(idx) Then
                resultRange.Cells(i, 1).Value = valList(idx)
                Exit For
            End If
        Next idx
    Next i
End Sub

2. في نافذة VBA، انقر فوقزر التشغيل زر التشغيل لتنفيذ الكود. بعد ذلك، سيتم مطالبتك على التوالي باختيار نطاق قيمك، ونطاق الاحتمالات، وعدد القيم العشوائية التي ترغب في توليدها، بالإضافة إلى خلية البداية للمخرجات. وسيقوم الماكرو بتعبئة الخلايا المستهدفة بسرعة بقيم عشوائية بناءً على الاحتمالات المعيّنة.

  • يمكنك تكرار هذه العملية مع مجموعات بيانات أكبر، كما يمكنك تخصيص عمود المخرجات في أي ورقة تريدها.
  • إذا لم يكن مجموع نطاق احتمالاتك قريبًا بما يكفي من 1، فقد يؤدي ذلك إلى انحراف في التوزيع؛ لذا تأكد دائمًا من صحة افتراضاتك.
  • يُعد هذا الحل المفضّل للعينات الآلية والمحاكاة وإنشاء دفعات قابلة للتكرار.

نصائح:تأكد من أن تكون قيمك واحتمالاتك متجاورة ومتوافقة بوضوح. واحفظ عملك قبل تشغيل الماكرو، لأن إجراءات VBA لا يمكن التراجع عنها باستخدام زر التراجع (Undo).


مقالات ذات صلة:

أفضل أدوات الإنتاجية لمكتبتك

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   12 أدواتالتحويل(تحويل إلى كلمات،تحويل العملة، ...)|   7 أدواتدمج وتقسيم(دمج متقدم للصفوف،تقسيم الخلايا، ...)|... وأكثر من ذلك
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية والإسبانية والألمانية والفرنسية والصينية و40+ لغات أخرى!

عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...


يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير

  • تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
  • افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
  • يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!

جميع الإضافات من Kutools في برنامج تثبيت واحد!

Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل