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

ریچارد نیاز به تولید رشته های تصادفی 15 و 20 کاراکتری دارد و فکر می کرد که ممکن است بتواند این کار را در اکسل انجام دهد. رشته ها می توانند شامل حروف و اعداد و بدون فاصله باشند. او در مورد تابع RANDBETWEEN می داند، اما واقعا نمی بیند که چگونه می تواند برای اهداف او مفید باشد.

در واقع، می توانید از تابع RANDBETWEEN به عنوان هسته فرمول خود استفاده کنید. با قرار دادن تمام کاراکترهای ممکن در سلول A1 شروع کنید. به عنوان مثال، می توانید 62 کاراکتر زیر را در A1 قرار دهید:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

حال فرمول زیر را در نظر بگیرید:

=MID(A1,RANDBETWEEN(1,LEN(A1)),1)

این کار از توابع MID ​​و RANDBETWEEN برای انتخاب یک نویسه تصادفی منفرد از هر کاراکتری که در سلول A1 قرار داده اید استفاده می کند. اکنون، برای طولانی‌تر کردن آنچه برگردانده می‌شود، فقط باید ترکیب این فرمول اصلی را با استفاده از کاراکتر آمپرساند آغاز کنید. به عنوان مثال، موارد زیر 2 کاراکتر را برمی گرداند:

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

اگر می خواهید 15 کاراکتر را برگردانید، فقط باید از 15 تکرار از فرمول اصلی استفاده کنید:

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

این می تواند (بدیهی است) به فرمول های بسیار طولانی منجر شود. خوشبختانه، اگر از نسخه اکسل ارائه شده با مایکروسافت 365 استفاده می کنید، برای تولید رشته های مورد نظر خود نیازی به استفاده از فرمول های بسیار طولانی ندارید. در عوض می توانید از تابع قدرتمند RANDARRAY همراه با تابع CONCAT استفاده کنید.

شما قبلاً کاراکترهای پایه خود را در سلول A1 دارید. بنابراین، در سلول A2، بسته به طول رشته ای که می خواهید ایجاد کنید، 15 یا 20 را قرار دهید. (در واقع، شما می توانید هر طول دیگری را در A2 قرار دهید، اما ریچارد به طور خاص به رشته های 15 و 20 کاراکتری نیاز داشت.) اکنون از فرمول زیر استفاده کنید:

=CONCAT(MID(A1,RANDARRAY(1,A2,1,LEN(A1),TRUE),1))

نتیجه یک رشته متن تصادفی است، فقط به طولی که می خواهید.

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

Function RandChars(iLen As Integer) As String
    Dim sSource As String
    Dim J As Integer
    Dim sTemp As String
    Dim AWF As WorksheetFunction

    Set AWF = Application.WorksheetFunction

    sSource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    sSource = sSource & "abcdefghijklmnopqrstuvwxyz"
    sSource = sSource & "0123456789"

    sTemp = ""
    For J = 1 To iLen
        sTemp = sTemp & Mid(sSource,AWF.RandBetween(1, Len(sSource)), 1)
    Next J
    RandChars = sTemp
End Function

کاراکترهایی که در sSource قرار می دهید آنهایی هستند که برای کنار هم قرار دادن رشته تصادفی استفاده می شوند. ماکرو از تابع کاربرگ RANDBETWEEN برای بیرون کشیدن کاراکترها از sSource استفاده می کند.

برای استفاده از ماکرو، به سادگی از فرمولی مانند این در کاربرگ خود استفاده کنید:

=RandChars(15)

پارامتری که به تابع می دهید طول رشته ای را که توسط تابع برگردانده می شود را تعیین می کند.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

94 نفر آنلاین
0 عضو و 94 مهمان در سایت حاضرند
بازدید امروز: 906
بازدید دیروز: 14599
بازدید کل: 15082537
...