فهرست مطالب
این آموزش نحوه تولید اعداد تصادفی، مرتبسازی تصادفی فهرست، انتخاب تصادفی و تخصیص تصادفی دادهها به گروهها را نشان میدهد. همه با یک تابع آرایه پویا جدید - RANDARRAY.
همانطور که احتمالاً می دانید، مایکروسافت اکسل قبلاً دارای چند تابع تصادفی - RAND و RANDBETWEEN است. معرفي يكي ديگر چه معني دارد؟ به طور خلاصه، زیرا بسیار قدرتمندتر است و می تواند جایگزین هر دو عملکرد قدیمی تر شود. جدا از تنظیم مقادیر حداکثر و حداقل خود، به شما امکان می دهد تعیین کنید که چند سطر و ستون پر کنید و آیا اعشار یا اعداد صحیح تصادفی تولید کنید. با استفاده از توابع دیگر، RANDARRAY حتی می تواند داده ها را به هم بزند و یک نمونه تصادفی انتخاب کند.
عملکرد RANDARRAY اکسل
تابع RANDARRAY در اکسل آرایه ای از اعداد تصادفی بین را برمی گرداند. هر دو عددی که شما مشخص می کنید.
این یکی از شش تابع آرایه پویا جدید است که در Microsoft Excel 365 معرفی شده است. 0> تابع دارای نحو زیر است. لطفاً توجه داشته باشید که همه آرگومانها اختیاری هستند:
RANDARRAY([ردیفها]، [ستونها]، [دقیقه]، [حداکثر]، [تمام_شماره])Where:
ردیف (اختیاری) - تعیین می کند که چند ردیف پر شود. اگر حذف شود، پیشفرض 1 ردیف است.
ستونها (اختیاری) - تعیین میکند که چند ستون پر شود. در صورت حذف، به طور پیش فرض روی 1 قرار می گیردبه طور تصادفی شرکت کنندگان را به گروه ها اختصاص دهید، فرمول بالا ممکن است مناسب نباشد زیرا تعداد دفعات انتخاب یک گروه را کنترل نمی کند. به عنوان مثال، 5 نفر می توانند به گروه A اختصاص داده شوند در حالی که تنها 2 نفر به گروه C. برای انجام تکالیف تصادفی به طور مساوی ، به طوری که هر گروه تعداد شرکت کنندگان یکسانی داشته باشد، به راه حل متفاوتی نیاز دارید.
ابتدا، فهرستی از اعداد تصادفی را با استفاده از این فرمول ایجاد میکنید:
=RANDARRAY(ROWS(A2:A13))
جایی که A2:A13 دادههای منبع شما هستند.
و سپس، گروهها (یا هر چیز دیگری) را با استفاده از این فرمول عمومی اختصاص میدهید:
INDEX( مقادیر_به_تخصیص, ROUNDUP(RANK( اولین_عدد_تصادفی, محدوده_اعداد_تصادفی)/ n، 0))جایی که n اندازه گروه است، یعنی تعداد دفعاتی که هر مقدار باید تخصیص داده شود.
به عنوان مثال، برای اختصاص تصادفی افراد به گروه های فهرست شده در E2:E5، به طوری که هر گروه 3 شرکت کننده داشته باشد، از این فرمول استفاده کنید:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
لطفاً توجه داشته باشید که یک فرمول معمولی است (نه یک فرمول آرایه پویا!)، بنابراین باید محدوده ها را با ارجاعات مطلق مانند فرمول بالا قفل کنید.
فرمول خود را در سلول بالا (در مورد ما C2) و n آن را به تعداد سلول های مورد نیاز به پایین بکشید. نتیجه مشابه این خواهد بود:
لطفاً به خاطر داشته باشید که تابع RANDARRAY فرار است. برای جلوگیری از ایجاد مقادیر تصادفی جدید هر بار که چیزی را در کاربرگ تغییر می دهید، جایگزین کنیدفرمول ها با مقادیرشان با استفاده از ویژگی Paste Special .
این فرمول چگونه کار می کند:
فرمول RANDARRAY در ستون کمکی بسیار ساده است. و به سختی نیاز به توضیح دارد، بنابراین اجازه دهید روی فرمول در ستون C تمرکز کنیم.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
تابع RANK مقدار را در B2 در برابر آرایه اعداد تصادفی در B2:B13 رتبه بندی می کند. نتیجه عددی بین 1 و تعداد کل شرکتکنندگان (در مورد ما 12) است.
رتبه بر اندازه گروه تقسیم میشود (در مثال ما 3)، و تابع ROUNDUP آن را به بالا گرد میکند. نزدیکترین عدد صحیح نتیجه این عملیات عددی بین 1 و تعداد کل گروه ها (در این مثال 4) است.
عدد صحیح به آرگومان row_num تابع INDEX می رود و آن را مجبور می کند تا مقداری را از ردیف مربوطه در محدوده E2:E5 برگردانید، که نشان دهنده گروه اختصاص داده شده است.
عملکرد عملکرد Excel RANDARRAY
وقتی فرمول RANDARRAY شما یک خطا را برمی گرداند، اینها واضح ترین موارد هستند. دلایلی برای بررسی:
خطای #SPILL
همانند هر تابع آرایه پویا دیگری، یک #SPILL! خطا اغلب به این معنی است که فضای کافی در محدوده نشت مورد نظر برای نمایش همه نتایج وجود ندارد. فقط تمام سلول های این محدوده را پاک کنید و فرمول شما به طور خودکار دوباره محاسبه می شود. برای اطلاعات بیشتر، لطفاً به Excel #SPILL Error - علل و رفع آن مراجعه کنید.
#VALUE error
A #VALUE! ممکن است در این موارد خطا رخ دهدشرایط:
- اگر مقدار max کمتر از مقدار min باشد.
- اگر هر یک از آرگومان ها غیر عددی باشد.
خطای #NAME
در اکثر موارد، یک #NAME! خطا یکی از موارد زیر را نشان می دهد:
- نام تابع اشتباه نوشته شده است.
- این تابع در نسخه اکسل شما موجود نیست.
#CALC! خطا
یک #CALC! اگر آرگومان ردیفها یا ستونها کمتر از 1 باشد یا به یک سلول خالی اشاره کند، خطا رخ میدهد.
به این ترتیب میتوان یک مولد اعداد تصادفی در اکسل با جدید ساخت. تابع RANDARRAY. از شما سپاسگزارم که خواندید و امیدوارم هفته آینده شما را در وبلاگ خود ببینم!
کتاب کار را برای دانلود تمرین کنید
نمونه های فرمول RANDARRAY (فایل xlsx.)
<3ستون.Min (اختیاری) - کوچکترین عدد تصادفی برای تولید. اگر مشخص نشده باشد، مقدار 0 پیش فرض استفاده می شود.
Max (اختیاری) - بزرگترین عدد تصادفی برای ایجاد. اگر مشخص نشده باشد، از مقدار پیشفرض 1 استفاده میشود.
تعداد_کلی (اختیاری) - تعیین میکند چه نوع مقادیری باید برگردانده شوند:
- TRUE - اعداد کامل
- FALSE یا حذف شده (پیشفرض) - اعداد اعشاری
تابع RANDARRAY - مواردی که باید به خاطر بسپارید
برای تولید موثر اعداد تصادفی در کاربرگهای اکسل، 6 نکته مهم وجود دارد. توجه به موارد زیر>اگر آرایه ای که توسط RANDARRAY برگردانده می شود، نتیجه نهایی باشد (خروجی در یک سلول و به تابع دیگری منتقل نمی شود)، اکسل به طور خودکار یک محدوده نشت پویا ایجاد می کند و آن را با اعداد تصادفی پر می کند. بنابراین، مطمئن شوید که به اندازه کافی سلول خالی در پایین و/یا سمت راست سلولی که فرمول را وارد می کنید، دارید، در غیر این صورت یک خطای #SPILL رخ خواهد داد.
Formula Basic Excel RANDARRAY
و اکنون، اجازه دهید یک فرمول تصادفی اکسل را در ساده ترین شکل آن به شما نشان دهم.
فرض کنید می خواهید محدوده ای متشکل از 5 سطر و 3 ستون را با هر عدد تصادفی پر کنید. برای انجام این کار، دو آرگومان اول را به این صورت تنظیم کنید:
- ردیف 5 است زیرا ما نتایج را در 5 ردیف می خواهیم.
- Columns 3 است زیرا ما نتایج را در 3 ستون می خواهیم.
همه آرگومان های دیگر را به مقادیر پیش فرض آنها می گذاریم و فرمول زیر را دریافت می کنیم:
=RANDARRAY(5, 3)
آن را در سلول سمت چپ بالای محدوده مقصد (در مورد ما A2) وارد کنید، کلید Enter را فشار دهید و نتایج را روی تعداد مشخص شده ردیف و ستون خواهید دید.
همانطور که در تصویر بالا می بینید، این فرمول پایه RANDARRAY محدوده را با اعداد اعشاری تصادفی از 0 تا 1 پر می کند. سه آرگومان همانطور که در مثال های بعدی نشان داده شده است.
نحوه تصادفی سازی درExcel - نمونه های فرمول RANDARRAY
در زیر چند فرمول پیشرفته را خواهید دید که سناریوهای تصادفی سازی معمولی در اکسل را پوشش می دهند.
اعداد تصادفی بین دو عدد ایجاد کنید
برای ایجاد لیستی از اعداد تصادفی در یک محدوده خاص، حداقل مقدار را در آرگومان 3 و حداکثر عدد را در آرگومان 4 ارائه می کنند. بسته به اینکه به اعداد صحیح یا اعشاری نیاز دارید، آرگومان پنجم را به ترتیب روی TRUE یا FALSE قرار دهید.
به عنوان مثال، اجازه دهید محدوده ای از 6 ردیف و 4 ستون را با اعداد صحیح تصادفی از 1 تا 100 پر کنیم. ، ما آرگومان های زیر تابع RANDARRAY را تنظیم می کنیم:
- ردیف 6 است زیرا ما نتایج را در 6 ردیف می خواهیم.
- Columns 4 است زیرا ما نتایج را در 4 ستون می خواهیم.
- Min 1 است، که حداقل مقداری است که می خواهیم داشته باشیم.
- Max 100 است، که حداکثر مقداری است که باید تولید شود.
- تعداد_کلی درست است زیرا به اعداد صحیح نیاز داریم.
با کنار هم قرار دادن آرگومان ها، به دست می آوریم. این فرمول:
=RANDARRAY(6, 4, 1, 100, TRUE)
و نتیجه زیر را ایجاد می کند:
تاریخ تصادفی بین دو تاریخ ایجاد کنید
به دنبال یک تولید کننده تاریخ تصادفی در اکسل هستید؟ تابع RANDARRAY یک راه حل آسان است! تنها کاری که باید انجام دهید این است که تاریخ قبلی (تاریخ 1) و تاریخ بعدی (تاریخ 2) را در سلول های از پیش تعریف شده وارد کنید، و سپس به آن سلول ها در فرمول خود ارجاع دهید:
RANDARRAY(ردیف ها، ستون ها، تاریخ1 ، date2 , TRUE)برای این مثال، لیستی از تاریخ های تصادفی بین تاریخ های D1 و D2 با این فرمول ایجاد کرده ایم:
=RANDARRAY(10, 1, D1, D2, TRUE)
البته، در صورت تمایل، هیچ چیز مانع از آن نمی شود که تاریخ های حداقل و حداکثر را مستقیماً در فرمول قرار دهید. فقط مطمئن شوید که آنها را در قالبی وارد کنید که اکسل قابل درک باشد:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
برای جلوگیری از اشتباهات، می توانید از تابع DATE برای وارد کردن تاریخ ها استفاده کنید:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
توجه داشته باشید. در داخل اکسل تاریخ ها را به عنوان شماره سریال ذخیره می کند، بنابراین نتایج فرمول به احتمال زیاد به صورت اعداد نمایش داده می شود. برای نمایش صحیح نتایج، قالب تاریخ را در تمام سلولهای محدوده ریخته شده اعمال کنید.
ایجاد روزهای کاری تصادفی در اکسل
برای تولید روزهای کاری تصادفی، تابع RANDARRAY را در اولین آرگومان WORKDAY به این صورت جاسازی کنید:
WORKDAY(RANDARRAY(ردیف ها، ستون ها، تاریخ1 ، date2 ، TRUE)، 1)RANDARRAY آرایه ای از تاریخ های شروع تصادفی ایجاد می کند، که تابع WORKDAY 1 روز کاری به آن اضافه می کند و اطمینان حاصل می کند که تمام تاریخ های برگشتی روزهای کاری هستند.
با تاریخ 1 در D1 و تاریخ 2 در D2، فرمول ایجاد لیستی از 10 روز کاری در اینجا آمده است:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
همانطور که با در مثال قبلی، لطفاً به یاد داشته باشید که محدوده ریزش را به صورت تاریخ قالب بندی کنید تا نتایج به درستی نمایش داده شوند.
نحوه تولید اعداد تصادفی بدون تکرار
اگرچه اکسل مدرن 6 را ارائه می دهد. آرایه پویا جدیدتوابع، متأسفانه، هنوز هیچ تابع داخلی برای برگرداندن اعداد تصادفی بدون تکرار وجود ندارد.
برای ایجاد مولد اعداد تصادفی منحصر به فرد خود در اکسل، باید چندین تابع را مانند نشان داده شده به هم متصل کنید. زیر ، TRUE))، SEQUENCE( n ))
اعشار تصادفی :
INDEX(UNIQUE(RANDARRAY( n *2، 1، دقیقه ، حداکثر ، نادرست))، SEQUENCE( n ))کجا:
- N تعداد مقادیری است که می خواهید ایجاد کنید.
- Min کمترین مقدار است.
- Max بالاترین مقدار است.
به عنوان مثال، برای تولید 10 عدد صحیح تصادفی بدون تکرار، از این فرمول استفاده کنید:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))
برای ایجاد یک عدد لیستی از 10 عدد تصادفی اعشاری ، در آخرین آرگومان تابع RANDARRAY TRUE را به FALSE تغییر دهید یا به سادگی این آرگومان را حذف کنید:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))
نکات و نکات:
- توضیح دقیق فرمول می تواند f ound در نحوه تولید اعداد تصادفی در اکسل بدون تکرار.
- در اکسل 2019 و قبل از آن، تابع RANDARRAY در دسترس نیست. در عوض، لطفاً این راه حل را بررسی کنید.
نحوه مرتب سازی تصادفی در اکسل
برای به هم زدن داده ها در اکسل، از RANDARRAY برای آرایه "مرتب سازی بر اساس" ( by_array آرگومان) تابع SORTBY. تابع ROWS تعداد ردیف های شما را می شماردمجموعه داده، نشان می دهد که چه تعداد اعداد تصادفی تولید می شود:
SORTBY( data , RANDARRAY(ROWS( data )))با این رویکرد، می توانید به طور تصادفی یک لیست را در اکسل مرتب کنید ، چه حاوی اعداد، تاریخ یا ورودی های متنی باشد:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
همچنین، همچنین می توانید به هم زدن ردیفها بدون مخلوط کردن دادههای خود:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
چگونه یک انتخاب تصادفی در اکسل بدست آوریم
برای استخراج تصادفی نمونه از یک لیست، در اینجا یک فرمول عمومی برای استفاده وجود دارد:
INDEX( data , RANDARRAY( n , 1, 1, ROWS( data ), TRUE))جایی که n تعداد ورودی های تصادفی است که می خواهید استخراج کنید.
به عنوان مثال، برای انتخاب تصادفی 3 نام از لیست در A2:A10، از این فرمول استفاده کنید. :
=INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))
یا اندازه نمونه مورد نظر را در سلولی مثلاً C2 وارد کنید و به آن سلول ارجاع دهید:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
چگونه این فرمول کار می کند:
در هسته این فرمول تابع RANDARRAY است که یک آرایه تصادفی از اعداد صحیح ایجاد می کند، با مقدار C2 تعیین می کند که چند مقدار تولید شود. . حداقل تعداد به صورت هاردکد (1) و حداکثر تعداد مربوط به تعداد ردیفهای مجموعه داده شما است که توسط تابع ROWS برگردانده میشود.
آرایه اعداد صحیح تصادفی مستقیماً به row_num میرود. آرگومان تابع INDEX که موقعیت آیتم هایی را که باید برگردانده شوند را مشخص می کند. برای نمونه در تصویر بالا، این است:
=INDEX(A2:A10, {8;7;4})
نکته. هنگام انتخاب یک نمونه بزرگ ازیک مجموعه داده کوچک، شانس این است که انتخاب تصادفی شما حاوی بیش از یک مورد از یک ورودی باشد، زیرا هیچ تضمینی وجود ندارد که RANDARRAY فقط اعداد منحصر به فرد تولید کند. برای جلوگیری از این اتفاق، از یک نسخه بدون تکرار از این فرمول استفاده کنید.
نحوه انتخاب ردیفهای تصادفی در اکسل
اگر مجموعه دادههای شما بیش از یک ستون دارد، سپس مشخص کنید کدام ستونها را در نمونه قرار دهید. برای این، یک ثابت آرایه برای آخرین آرگومان ( column_num ) تابع INDEX ارائه دهید، مانند این:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})
که در آن A2:B10 داده منبع است و D2 حجم نمونه است.
در نتیجه، انتخاب تصادفی ما شامل دو ستون داده خواهد بود:
نکته. همانطور که در مثال قبلی وجود دارد، این فرمول ممکن است رکوردهای تکراری را برگرداند. برای اطمینان از اینکه نمونه شما تکراری ندارد، از یک روش کمی متفاوت استفاده کنید که در نحوه انتخاب ردیف های تصادفی بدون تکرار توضیح داده شده است.
نحوه تخصیص تصادفی اعداد و متن در اکسل
برای انجام تخصیص تصادفی در اکسل، از RANDBETWEEN همراه با تابع CHOOSE به این روش استفاده کنید:
CHOOSE(RANDARRAY(ROWS( data )، 1، 1، n ، صحیح)، مقدار1 ، مقدار2 ،...)کجا:
- داده محدوده ای از داده های منبع شما است که می خواهید مقادیر تصادفی را به آن اختصاص دهید.
- N تعداد کل مقادیری است که باید اختصاص دهید.
- Value1 ، value2 ، value3 ، و غیره مقادیری هستند که باید باشندبه طور تصادفی اختصاص داده شده است.
به عنوان مثال، برای اختصاص اعداد از 1 تا 3 به شرکت کنندگان در A2:A13، از این فرمول استفاده کنید:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)
برای راحتی، میتوانید مقادیری را برای تخصیص در سلولهای جداگانه وارد کنید، مثلاً از D2 تا D4، و به آن سلولها در فرمول خود (به صورت جداگانه، نه به عنوان یک محدوده) ارجاع دهید:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
در نتیجه، میتوانید هر عدد، حروف، متن، تاریخ و زمان را بهطور تصادفی با همان فرمول اختصاص دهید:
توجه. تابع RANDARRAY به تولید مقادیر تصادفی جدید با هر تغییر در کاربرگ ادامه می دهد، زیرا در نتیجه هر بار مقادیر جدیدی تخصیص داده می شود. برای "رفع" مقادیر اختصاص داده شده، از Paste Special > ویژگی های ارزش گذاری برای جایگزینی فرمول ها با مقادیر محاسبه شده آنها.
این فرمول چگونه کار می کند
در قلب این راه حل دوباره تابع RANDARRAY است که آرایه ای از اعداد صحیح تصادفی را بر اساس اعداد حداقل و حداکثری که شما مشخص کرده اید (از 1) تولید می کند. به 3 در مورد ما). تابع ROWS به RANDARRAY می گوید که چند عدد تصادفی تولید کند. این آرایه به آرگومان index_num تابع CHOOSE می رود. برای مثال:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Index_num آرگومانی است که موقعیت مقادیری را که باید برگردانده شوند را تعیین می کند. و چون موقعیت ها تصادفی هستند، مقادیر در D2:D4 به ترتیب تصادفی انتخاب می شوند. بله، به همین سادگی است :)
نحوه تخصیص تصادفی داده ها به گروه ها
وقتی وظیفه شما این است که