ایجاد اعداد تصادفی غیر تکراری در اکسل

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • حسام بحرانی

    • 2013/09/29
    • 2065
    • 72.00

    ایجاد اعداد تصادفی غیر تکراری در اکسل

    با سلام ، در ستون a اعداد 1 تا 10 قرار دارند .
    ترتیبی اتخاذ نمایید تا در ستونی دیگر ، اعداد 1 تا 10 بطور تصادفی ( و البته غیر تکراری و نه لزوماً مرتب ) قرار گیرند . لطفاً روش کار را توضیح دهید .
    با سپاس
    ɦɛʂɑɱ ɓɑɦɾɑɳɨ
    فایل های پیوست شده
    [CENTER][B][SIZE=5][COLOR=#006600][FONT=georgia][COLOR=#800000]!With [/COLOR][/FONT][/COLOR][COLOR=#006600][FONT=georgia]God [/FONT][/COLOR][COLOR=#006600][FONT=georgia][COLOR=#800000]all [/COLOR][/FONT][/COLOR][COLOR=#800000][FONT=georgia]things are [/FONT][/COLOR][COLOR=#006600][FONT=georgia]possible[/FONT][/COLOR][/SIZE][/B][B][FONT=Tahoma]
    [/FONT][/B][/CENTER]
    [CENTER][B][FONT=Tahoma] [IMG]http://forum.exceliran.com/attachment.php?attachmentid=5334&d=1419428336[/IMG]
    [/FONT][/B][SIZE=1][FONT=Tahoma][B][FONT=Tahoma]
    [/FONT][/B][/FONT][/SIZE]
    [/CENTER]
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    بفرماييد خدمت شما

    در ستون e فقط اعداد رندوم 1-10 توليد ميشه و به ليست اعداد شما كاري نداره
    در ستون g اعداد ليست شما بصورت رندوم انتخاب ميشن
    فایل های پیوست شده
    Last edited by Amir Ghasemiyan; 2013/11/22, 09:02. دلیل: اصلاح فايل پيوست

    کامنت

    • ~M*E*H*D*I~
      • 2011/10/19
      • 4377
      • 70.00

      #3
      تایپیک زیر هم میتونه کمک کنه

      تولید کد های منحصر به فرد

      [CENTER]
      [SIGPIC][/SIGPIC]
      [/CENTER]

      کامنت

      • Ali Parsaei
        مدير تالارتوابع اکسل

        • 2013/11/18
        • 1522
        • 71.67

        #4
        آقا امير فايلتان غلط است، زيرا ستون c به صورت اتفاقي بوجود مي آيد و هيچ تضميني نيست که همه آنها با هم فرق کنند، يعني ممکن است دو تاي آنها يا حتي همه آنها برابر باشند، در نتيجه جواب دو ستون ديگرتان هم داراي مقادير تکراري خواهد بود.
        ضمنا" فکر کنم مقدار row(a$1)+1- را اضافه در فرمولتان نوشته ايد زيرا رديف خانه a1 که همواره برابر يک است و در نتيجه شما در اصل نوشته ايد منهاي يک به اضاف يک! که جوابش صفر و بي تاثير است.
        [SIGPIC][/SIGPIC]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          نوشته اصلی توسط علي پارسا
          آقا امير فايلتان غلط است، زيرا ستون c به صورت اتفاقي بوجود مي آيد و هيچ تضميني نيست که همه آنها با هم فرق کنند، يعني ممکن است دو تاي آنها يا حتي همه آنها برابر باشند، در نتيجه جواب دو ستون ديگرتان هم داراي مقادير تکراري خواهد بود.
          ضمنا" فکر کنم مقدار row(a$1)+1- را اضافه در فرمولتان نوشته ايد زيرا رديف خانه a1 که همواره برابر يک است و در نتيجه شما در اصل نوشته ايد منهاي يک به اضاف يک! که جوابش صفر و بي تاثير است.
          سلام دوست عزيز
          احتمال اينكه دو عدد رندوم با اين تعداد مميز مشابه در بياد اونم براي ده عدد بسيار بسيار بسيار ناچيز هست. ميشه احتمالش رو صفر در نظر گرفت
          در مورد مطلب دوم حق با شماست. بله نيازي به اين تفريق و جمع نبود. من اشتباه كردم. ممنون بابت تذكرتون

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط amir ghasemiyan
            سلام دوست عزيز
            احتمال اينكه دو عدد رندوم با اين تعداد مميز مشابه در بياد اونم براي ده عدد بسيار بسيار بسيار ناچيز هست. ميشه احتمالش رو صفر در نظر گرفت
            در مورد مطلب دوم حق با شماست. بله نيازي به اين تفريق و جمع نبود. من اشتباه كردم. ممنون بابت تذكرتون
            الان يادم اومد براي چي اون فرمول رو نوشتم

            اگه بجاي سلول a1 از سلول هاي ديگه شروع بشه فرمول بايد هموني باشه كه نوشتم فقط با اين تفاوت كه بجاي a1 بايد مثلا a5 (سلول اولين داده) نوشته بشه

            کامنت

            • Ali Parsaei
              مدير تالارتوابع اکسل

              • 2013/11/18
              • 1522
              • 71.67

              #7
              متشکرم از توضيحتان، کاملا" درست فرموديد، معمولا" اين امر پيش مي آيد که فرمولهاي قديمي را يادمان مي رود بر چه مبنايي نوشته ايم.
              البته خودمانيم آن قسمت که گفته ايد احتمالش کم است را نمي شود زير سيبيلي در کرد!!! زيرا بحث، بحث دقيق رياضي است وگرنه به صورت تصادفي خودمان اعداد را در ستون دوم بنويسيم که از هرگونه فرمولي راحت تر است!.
              اتفاقا" آقا حسام سوال بسيار جالبي مطرح کرده اند و علي رغم ظاهرش بسيار سخت است. البته من vba بلد نيستم و بحث vba يک بحث ديگر است با آن شايد خيلي کارها بشود انجام داد ولي اگر اين شرط را بگذاريم که مسئله بايد حتما" با توابع داخلي اکسل حل شود بسيار جالب خواهد بود.
              اگر تابع randbitween مقادير متعددي مي توانست به عنوان آرگومان داشته باشد مسئله به راحتي قابل حل بود.
              مسئله vba مثل اين است که من بگويم از خانه تا مرکز شهر مي خواهم بروم و راهي پيدا کنيد که ترافيک کمتري داشته باشد و شما بگوييد: با هلکوپتر برو!!!
              [SIGPIC][/SIGPIC]

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط علي پارسا
                متشکرم از توضيحتان، کاملا" درست فرموديد، معمولا" اين امر پيش مي آيد که فرمولهاي قديمي را يادمان مي رود بر چه مبنايي نوشته ايم.
                البته خودمانيم آن قسمت که گفته ايد احتمالش کم است را نمي شود زير سيبيلي در کرد!!! زيرا بحث، بحث دقيق رياضي است وگرنه به صورت تصادفي خودمان اعداد را در ستون دوم بنويسيم که از هرگونه فرمولي راحت تر است!.
                اتفاقا" آقا حسام سوال بسيار جالبي مطرح کرده اند و علي رغم ظاهرش بسيار سخت است. البته من vba بلد نيستم و بحث vba يک بحث ديگر است با آن شايد خيلي کارها بشود انجام داد ولي اگر اين شرط را بگذاريم که مسئله بايد حتما" با توابع داخلي اکسل حل شود بسيار جالب خواهد بود.
                اگر تابع randbitween مقادير متعددي مي توانست به عنوان آرگومان داشته باشد مسئله به راحتي قابل حل بود.
                مسئله vba مثل اين است که من بگويم از خانه تا مرکز شهر مي خواهم بروم و راهي پيدا کنيد که ترافيک کمتري داشته باشد و شما بگوييد: با هلکوپتر برو!!!
                دوست عزيز بحث احتمالات هست. احتمال اينكه يك عدد 15 رفمي در يك ليست 10تايي تكراري باشه چقدره؟ خودتون حساب كنيد جوابشو بهم بگيد
                باور كنين نيازي نيست زير سيبيلي رد كنين. از رو سيبيلم به راحتي رد ميشه

                اگر قرار بود خودمون عدد بديم كه ديگه تصادفي نميشد.
                تابعي كه مطرح فرمودين هم فقط عدد صحيح توليد ميكنه كه احتمال تكراري بودنش بسيار زيادتر از تابع rand خواهد بود.ولي اگر به قول شما آرگومان هاش بيشتر بود و ميتونست اعداد غير صحيح هم توليد كنه اون موقع randbetween تابع بهتري بود.

                کامنت

                • امين اسماعيلي
                  مدير تالار ويژوال بيسيك

                  • 2013/01/17
                  • 1198
                  • 84.00

                  #9
                  با درود
                  تا حالا تست نکردم اما اگر دیگه میخوای محکم کاری کنی یه حلقه for با vba بنویس که اگر یکی از اینها هم تکراری بود دوباره rand تکرار بشه. زیرورو بالارو همرو کنترل کن.
                  در پناه خداوندگار ایران زمین باشید و پیروز

                  کامنت

                  • moslemi

                    • 2011/03/04
                    • 110

                    #10
                    ایجاد اعداد تصادفی غیر تکراری در اکسل

                    یکسری اعداد تصادفی از 1 تا 12 به صورت رندوم بدون تکرار
                    از فرمول(randbetween(1;12 استفاده کردم ولی تکراری میده

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4598
                      • 100.00

                      #11
                      نوشته اصلی توسط moslemi
                      یکسری اعداد تصادفی از 1 تا 12 به صورت رندوم بدون تکرار
                      از فرمول(randbetween(1;12 استفاده کردم ولی تکراری میده

                      سلام دوست عزيز
                      بله اين تابع ممكنه عدد تكراري بهتون بده. شما بهتره از ستون كمكي استفاده كنيد.
                      در ستون كمكي تابع rand و در ستوني كه اعداد رندوم رو ميخواهيد توليد كنيد اين فرمول رو وارد كنيد.
                      کد:
                      =IF(ROW()-ROW(A$1)+1>10;"";RANK(C1;$C$1:$C$10))
                      براي مشاهده بهتر فايل پيوست شد.



                      فایل های پیوست شده

                      کامنت

                      • hairin
                        • 2014/06/14
                        • 1

                        #12
                        سلام
                        من میخوام تو اکسل عدد تصادفی بدون تکرار تولید کنم ولی نمیخوام از دستور rand , randbetween , generation استفاده کنم
                        میخوام برنامشو داشته باشم که بتونم هر وقت خواستم تغییرش بدم. میخوام برنامه انعطاف پذیری باشه
                        اگه ممکنه منو راهنمایی کنید(من برنامه نویسی اکسل رو بلد نیستم)

                        کامنت

                        • Mohammad WR10
                          • 2014/06/21
                          • 2

                          #13
                          سلام ، من داخل اکسل یه مشکل رو دارم . دوستان میتونن کمک کنن ؟
                          مثل جدول زیر میخوام برای ستون آخر سمت راست (مظورم محدوده اعداد) یک عدد انتخاب بشه . برای 1 تا 10 ، عدد 1 . برای 11 تا 30 عدد 2 . همین طور تا پایان . در ضمن اعداد محدوده بتونن به صورت تصادفی تولید شن ، مظورم تابع رندوم .
                          ممنون میشم کمک کنید .

                          کامنت

                          • Ali Parsaei
                            مدير تالارتوابع اکسل

                            • 2013/11/18
                            • 1522
                            • 71.67

                            #14
                            خواسته شما خوب مفهوم نيست!
                            من طبق برداشت خودم جواب مي دهم:
                            اگر مي خواهيد در يک خانه عدد تصادفي بين دو عدد ايجاد کنيد بايد از تابع randbetween استفاده کنيد، مثلا" اگر در خانه a1 بخواهيم اعداد بين 11 تا 30 ايجاد گردد، بايد فرمول زير را در a1 بنويسيد:
                            کد PHP:
                            =randbetween(11;30
                            حال اگر بخواهيم برحسب عدد مندرج در خانه a1 در خانه اي ديگر عدد بدهيم (مانند مثال شما:
                            برای 1 تا 10 ، عدد 1 . برای 11 تا 30 عدد 2 و ...) بايد مشابه فرمول زير را در خانه دوم به کار بريد:

                            من فقط سه مرحله در فرمول تخصيص داده ام (يعني تا محدوده 31 تا 60) شما مي توانيد آن را گسترش دهيد

                            کد PHP:
                            =if(and(a1>=1;a1<=10);1;if(and(a1>=11;a1<=30);2;if(and(a1>=31;a1<=60);3))) 
                            اميدوارم با دو فرمول فوق مشکل حل شود.
                            [SIGPIC][/SIGPIC]

                            کامنت

                            • khakzad

                              • 2010/03/17
                              • 2034
                              • 85.00

                              #15
                              سلام
                              با تشکر از جناب پارسا
                              دوست عزیز، از راهنمایی های جناب پارسا کمک بگیرید. به این لینک هم سر بزنید. ایده بهتون میده. (برای اینکه بازه ها قابلیت محاسبات داشته باشن، حتما در سل های جداگانه بنویسید)

                              [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

                              [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
                              [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
                              :wcom:

                              [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
                              [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
                              [/CENTER]

                              کامنت

                              چند لحظه..