اكسل

قائمة أسماء عشوائية

Random List Names

صيغة Excel: قائمة عشوائية بالأسماءصيغة عامة
= INDEX (names, RANDARRAY (n,1,1, COUNTA (names),TRUE))
ملخص

لإنشاء قائمة عشوائية بالأسماء ، يمكنك استخدام امتداد دالة INDEX و ال وظيفة RANDARRAY لاختيار أسماء عشوائية من قائمة موجودة. في المثال الموضح ، الصيغة في D5 هي:



 
= INDEX (names, RANDARRAY (10,1,1, COUNTA (names),TRUE))

التي تُرجع 10 قيم عشوائية من ملف نطاق مسمى 'أسماء' (B5: B104).

كيفية إضافة عبارات if في Excel
تفسير

في جوهرها ، تستخدم هذه الصيغة وظيفة INDEX لاسترداد 10 أسماء عشوائية من نطاق مسمى يسمى 'أسماء' والذي يحتوي على 100 اسم. على سبيل المثال ، لاسترداد الاسم الخامس من القائمة ، نستخدم INDEX مثل هذا:





 
= INDEX (names,5)

ومع ذلك ، فإن الحيلة في هذه الحالة هي أننا لا نريد ملف غير مرتبطة اسم في مكان معروف ، نريد 10 أسماء عشوائية في مواقع غير معروفة بين 1 و 100. هذه حالة استخدام ممتازة لوظيفة RANDARRAY ، والتي يمكنها إنشاء مجموعة عشوائية من الأعداد الصحيحة في نطاق معين. بالعمل من الداخل إلى الخارج ، نستخدم RANDARRAY للحصول على 10 أرقام عشوائية بين 1 و 100 مثل هذا:

 
 RANDARRAY (10,1,1, COUNTA (names)

تُستخدم وظيفة COUNTA للحصول على عدد ديناميكي للأسماء في القائمة ، ولكن يمكننا استبدال COUNTA بـ 100 ترميز ثابت في هذه الحالة بنفس النتيجة:



 
= INDEX (names, RANDARRAY (10,1,1,100,TRUE))

في كلتا الحالتين ، سيعيد RANDARRAY 10 أرقام في مصفوفة تبدو كالتالي:

 
{6474137496655738485}

ملاحظة: هذه الأرقام عشوائية فقط ولا يتم تعيينها مباشرة إلى المثال الموضح.

يتم إرجاع هذه المصفوفة مباشرة إلى الدالة INDEX كوسيطة صف:

 
= INDEX (names, {6474137496655738485}

نظرًا لأننا نعطي أرقام صفوف INDEX 10 ، فستكون 10 نتائج ، كل منها يتوافق مع اسم في الموضع المحدد. يتم إرجاع الأسماء العشوائية العشرة في نطاق انسكاب يبدأ في الخلية D5.

ملاحظة: RANDARRAY هو ملف وظيفة متقلبة وستتم إعادة الحساب في كل مرة يتم فيها تغيير ورقة العمل ، مما يتسبب في إعادة القيم. لإيقاف فرز القيم تلقائيًا ، يمكنك نسخ الصيغ ، ثم استخدام لصق خاص> قيم لتحويل الصيغ إلى قيم ثابتة.

منع التكرارات

مشكلة واحدة في الصيغة أعلاه (حسب احتياجاتك) هي أن RANDARRAY ستنشئ أحيانًا أرقامًا مكررة. بمعنى آخر ، ليس هناك ما يضمن أن RANDARRAY سيعيد 10 أرقام فريدة.

لضمان 10 أسماء مختلفة من القائمة ، يمكنك تكييف الصيغة لفرز القائمة الكاملة للأسماء بشكل عشوائي ، ثم استرداد أول 10 أسماء من القائمة. تستخدم الصيغة في F5 هذا الأسلوب:

 
= INDEX ( SORTBY (names, RANDARRAY ( COUNTA (names))), SEQUENCE (10))

النهج هنا هو نفسه كما ورد أعلاه - نحن نستخدم INDEX لاسترداد 10 قيم من قائمة الأسماء. ومع ذلك ، في هذا الإصدار من الصيغة ، نقوم بفرز قائمة الأسماء بشكل عشوائي قبل تسليم القائمة إلى INDEX على النحو التالي:

 
 SORTBY (names, RANDARRAY ( COUNTA (names)))

هنا ، دالة SORTBY يستخدم لفرز قائمة الأسماء بشكل عشوائي باستخدام قيم مصفوفة تم إنشاؤها بواسطة دالة RANDARRAY ، كما هو موضح بمزيد من التفاصيل هنا.

أخيرًا ، نحتاج إلى استرداد 10 قيم. نظرًا لأن لدينا بالفعل أسماء بترتيب عشوائي ، يمكننا ببساطة طلب أول 10 بمصفوفة تم إنشاؤها بواسطة دالة SEQUENCE مثله:

 
 SEQUENCE (10)

يبني SEQUENCE مصفوفة من الأرقام المتسلسلة:

 
{12345678910}

والتي يتم إرجاعها إلى دالة INDEX كوسيطة صف. تقوم INDEX بعد ذلك بإرجاع أول 10 أسماء في ملف نطاق اللعبة مثل الصيغة الأصلية.

صيغ الصفيف الديناميكية متوفرة في مكتب 365 فقط. المؤلف ديف برونز


^