ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
22 visibility
موضوع: آفیس توسط:

نانسی در تلاش است تا اکسل 50 عدد را انتخاب کند که هر کدام شامل هشت کاراکتر تصادفی است. کاراکترها می توانند ارقام یا حروف (بزرگ یا کوچک) باشند.

اگر اعداد تصادفی شما واقعاً اعداد (فقط رقم) باشند، تولید آنها آسان خواهد بود. تنها کاری که باید انجام دهید این است که از تابع RANDBETWEEN به این صورت استفاده کنید:

=RANDBETWEEN(10000000,99999999)

با این حال، این چیزی نیست که نانسی می خواهد. "اعداد" تصادفی او می تواند شامل حروف بزرگ و کوچک نیز باشد. این کمی چسبنده تر می شود. با این حال، چندین روش وجود دارد که می توانید از آنها استفاده کنید.

یک روش این است که همه کاراکترهای ممکن را در یک سلول جداگانه قرار دهید، مانند B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

نام این سلول را چیزی جذاب بگذارید، مانند MySource. سپس می توانید از فرمولی مانند زیر برای برگرداندن رشته تصادفی کاراکترها استفاده کنید:

=MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)
& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

فرمول طولانی است. برای وضوح به خطوط جداگانه تقسیم شده است، اما هنوز یک فرمول واحد است. این هشت کاراکتر از منبعی که شما وارد سلول B7 کرده اید به هم متصل می کند.

روش دیگر ایجاد جدولی است که شامل تمام کاراکترهای مورد نظر شما در رشته متن تصادفی شما باشد. با قرار دادن اعداد 1 تا 62 در یک ستون، یک عدد در هر سطر شروع کنید. در سمت چپ این اعداد، کاراکترهای خود را قرار دهید — A، B، C، D و غیره مانند MyTable. سپس می توانید از فرمول زیر برای تولید کاراکترهای تصادفی استفاده کنید:

=VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)
& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

باز هم به یاد داشته باشید که این یک فرمول واحد است، اگرچه کمی کوتاهتر از فرمول قبلی است.

هنوز رویکرد دیگری بر تعریف نام ها با استفاده از Name Manager تکیه دارد. من دقیقاً به نحوه تعریف نام در این نکته نمی پردازم، اما باید از Name Manager برای تعریف نام های a، U، n و x به صورت زیر استفاده کنید:

a =CHAR(RANDBETWEEN(97,122))
U =UPPER(a)
n =CHAR(RANDBETWEEN(48,57))
x =CHOOSE(RANDBETWEEN(1,3),a,U,n)

نام "a" یک حرف کوچک تصادفی، نام "U" یک حرف بزرگ تصادفی و نام "n" یک رقم تصادفی را برمی گرداند. سپس نام "x" یکی از این سه را به طور تصادفی انتخاب می کند. هنگامی که اینها تعریف شدند، می توانید موارد زیر را در هر سلولی قرار دهید:

=x & x & x & x & x & x & x & x

این را می توان به تعداد سلول های دلخواه کپی کرد و در نهایت به رشته تصادفی کاراکترهای خود خواهید رسید.

هر یک از رویکردهای ارائه شده تا کنون یک اشکال دارد: هر بار که کاربرگ شما مجدداً محاسبه می شود، دوباره تولید می شوند. بنابراین، سخت است که یک رشته تصادفی تولید شده داشته باشیم که به طور منظم تغییر نکند. بهترین راه برای حل این مشکل استفاده از ماکرو است، اما لزوما نمی خواهید از یک تابع تعریف شده توسط کاربر استفاده کنید. چرا؟ زیرا آن نیز هر بار که کاربرگ دوباره محاسبه می شد، نتیجه خود را تغییر می داد. در عوض، به یک ماکرو نیاز دارید که رشته های تصادفی را با شروع از یک مکان سلولی خاص در ورک بوک شما قرار دهد. نمونه زیر نمونه ای از این ماکروها است:

Sub MakeRandom()
    Dim J As Integer
    Dim K As Integer
    Dim iTemp As Integer
    Dim sNumber As String
    Dim bOK As Boolean

    Range("D4").Activate
    Randomize
    For J = 1 To 50
        sNumber = ""
        For K = 1 To 8
            Do
                iTemp = Int((122 - 48 + 1) * Rnd + 48)
                Select Case iTemp
                    Case 48 To 57, 65 To 90, 97 To 122
                        bOK = True
                    Case Else
                        bOK = False
                End Select
            Loop Until bOK
            bOK = False
            sNumber = sNumber & Chr(iTemp)
        Next K
        ActiveCell.Value = sNumber
        ActiveCell.Offset(1, 0).Select
    Next J
End Sub

ماکرو را اجرا کنید، و هر آنچه در سلول های D4:D53 است با مقادیر تصادفی بازنویسی می شود. اگر می خواهید مقادیر در مکان دیگری نوشته شوند، عبارت Range را نزدیک ابتدای ماکرو تغییر دهید.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

145 نفر آنلاین
0 عضو و 145 مهمان در سایت حاضرند
بازدید امروز: 17626
بازدید دیروز: 22514
بازدید کل: 15164828
...