বর্ণমালা থেকে এলোমেলো দৈর্ঘ্যের একটি এলোমেলো স্ট্রিং কীভাবে তৈরি করবেন?


11

আমি এক্সেলের বর্ণমালা থেকে এলোমেলো দৈর্ঘ্যের সাথে একটি এলোমেলো স্ট্রিং তৈরি করতে চাই। উদাহরণস্বরূপ, "jlskdjf", "kjlk", "kljsodif" ইত্যাদি etc. আমি কীভাবে এটি করতে পারি?

উত্তর:


14

মৌলিক

ধরে নিন আপনি ছোট হাতের অক্ষর (এজে) থেকে একটি এলোমেলো দৈর্ঘ্য (1-8 অক্ষর) স্ট্রিং তৈরি করতে চান।

=LEFT( CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97) & 
       CHAR(RAND()*26+97) & CHAR(RAND()*26+97),
       RAND()*8+1)

প্রতিটিতে CHAR(...)1 টি এলোমেলো ছোট ছোট বর্ণমালা বর্ণিত হয়।

লোয়ার কেসের পরিবর্তে আপার কেস বর্ণমালা (এজেড) ব্যবহার করতে, আপনি এটির CHAR(RAND()*26+97)সাথে প্রতিস্থাপন করতে পারেন CHAR(RAND()*26+65)। কারণ এজেডের এএসসিআইআই কোড 65-90, এবং এএসসিআইআই এর এজেডের কোডটি 97-122 হয়।

কেবল সূত্র করার জন্য, আপনি ব্যবহার করতে পারেন RANDBETWEEN()এর বিশ্লেষণ Toolpak প্রতিস্থাপন করতে RAND()*xx+yy


অগ্রসর

ধরে নিন আপনি নির্দিষ্ট অক্ষর থেকে একটি এলোমেলো দৈর্ঘ্য (1-8 অক্ষর) স্ট্রিং উত্পন্ন করতে চান।

আপনি সেল এ 1 এ পছন্দসই অক্ষরগুলি ইনপুট করতে পারেন , উদাহরণস্বরূপ:

abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()

তারপর,

=LEFT( MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) & 
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) &
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1) &
       MID($A$1,RAND()*LEN($A$1)+1,1) & MID($A$1,RAND()*LEN($A$1)+1,1),
       RAND()*8+1)

প্রতিটি এ MID(...)1 থেকে 1 টি এলোমেলো চরিত্র পান।


4

হুম। এটি করার জন্য কোনও ফাংশন তৈরি করা ভিবিএর সাহায্যে খুব সহজ হবে। সূত্রগুলির সাথে এটি আরও কিছুটা জড়িত।

  • =CHAR(RANDBETWEEN(97,122))স্পষ্টতই আপনাকে একটি চিঠি দেয় সুতরাং তাদের দশটি কলাম এ রাখুন A.
  • তারপরে পরবর্তী কলামে, =A1সেল বি 1 এ রাখুন।
  • =B1&A2বি 2 রাখুন এবং বি 2: বি 10 পূরণ করুন। (সংক্ষেপে বিরক্তিজনকভাবে ব্যাপ্তিগুলি গ্রহণ করে না))
  • সি সিতে, রাখুন =OFFSET(B1,RANDBETWEEN(0,9),0)

অ্যারে সূত্র বা অন্য কিছু সহ একটি সহজ উপায় হতে পারে।


1
+1 - আমি জানতাম যে একটি উপায় থাকা উচিত - তবে আমি OFFSET এর পরিবর্তে INDEX ব্যবহার করব - যেমনINDEX(B1:B10,RANDBETWEEN(1,10))
জুক

2

একটি একক চরিত্রের সূত্র হিসাবে আপনি এটি ব্যবহার করতে পারেন

=CHAR(RANDBETWEEN(97,122))

আপনার পছন্দসই র‌্যান্ডের ব্যাপ্তিটি নির্বাচন করতে কেবল যে কোনও এসিএসআইআই-টেবিলটি দেখুন।

তবে এলোমেলো দৈর্ঘ্যটি জটিল, এলোমেলো দৈর্ঘ্যের কারণে নয়, তবে আপনি এলোমেলো অক্ষরগুলির কারণে যা আপনি একসাথে রাখতে চান। অন্যথায়, আপনি কেবল REPT ফাংশনটি RAND ফাংশন এবং উপরের সূত্রের সাথে যোগ দিতে পারেন।

তবে আপনার বর্ণিত ফলাফলের সাথে মানিয়ে নিতে আমি এই কোডটি ব্যবহার করব:

'Put this into a VBA-Module, to be accessable as a worksheet function
Public Function RandomString() As String
  Dim i As Long
  Dim lngEnd As Long
  Dim strResult As String

  With Application.WorksheetFunction

    lngEnd = .RandBetween(1, 20) 'String length 1-20 characters
    strResult = ""

    'create a random string of a random length between 1 and 20
    For i = 1 To lngEnd
      strResult = strResult & Chr(.RandBetween(97, 122))
    Next i

  End With
  Debug.Print strResult
  RandomString = strResult 'return the random string
End Function

যদি সূত্রগুলি সহ এই কোডটি করার কোনও সমাধান হয়, অতএব ভিবিএ ছাড়াই, আমি এটি সম্পর্কে জানতে খুব চাই :)



1

এই সূত্রটিতে "abc ... ABC ... 012" সহ কোনও কক্ষের প্রয়োজন নেই

[A-zA-Z0-9] এর থেকে এলোমেলোভাবে 1 চর।

=CHAR(CHOOSE(RANDBETWEEN(1,3),RANDBETWEEN(48,57),RANDBETWEEN(65,90),RANDBETWEEN(97,122)))

যদি আরও চরগুলির প্রয়োজন হয় তবে CHAR (...) অনুলিপি করুন এবং এটিকে & এর সাথে পৃথক করুন।

এই সমাধান Oaktree থেকে http://www.mrexcel.com/forum/excel-questions/332116-generate-random-alphanumeric-code.html


0

(আপনি যদি কেবলমাত্র অক্ষরের স্ট্রিংগুলি চান তবে নীচের সংযুক্ত অনুচ্ছেদটি দেখুন)

8 থেকে 12 এর মধ্যে বড় হাতের অক্ষর এবং এলোমেলো দৈর্ঘ্যের অঙ্কগুলির একটি এলোমেলো স্ট্রিং উত্পন্ন করুন: =MID(BASE(RAND()*10^18,36,12),1,RAND()*4+8)

ব্যাখ্যা:

  1. মিনিমাম দৈর্ঘ্যের 12: এর একটি এলোমেলো স্ট্রিং ডিজিট এবং বড় হাতের অক্ষর তৈরি করুন BASE(RAND()*10^18,36,12)। কৌতুকটি একটি বড় এলোমেলো সংখ্যা উত্পন্ন করছে এবং তারপরে এটিকে রূপান্তরিত করে বেস 36 এ কার্যকরভাবে স্ট্রিংয়ের মতো দেখতে এমন কিছু অর্জন করবে।
  2. স্ট্রিং দৈর্ঘ্য 8 এবং 12 এর মধ্যে একটি এলোমেলো সংখ্যা তৈরি করুন RAND()*4+8
  3. স্ট্রিংয়ের অক্ষরগুলি (1) এর মতো 1 থেকে আপনি যে দৈর্ঘ্যে তৈরি করেছিলেন (2) take

সূত্রে ব্যবহৃত কার্য (ভিতরে বাইরে):

  • RAND() 0 এবং 1 এর মধ্যে একটি এলোমেলো সংখ্যা প্রদান করে।
  • BASE(Number; Radix; [MinimumLength]) একটি ধনাত্মক পূর্ণসংখ্যাকে একটি নির্দিষ্ট বেসকে সংখ্যায়ন সিস্টেম থেকে পাঠ্যে রূপান্তর করে। অঙ্কগুলি 0-9 এবং অক্ষর AZ ব্যবহার করা হয়।
  • MID("Text"; Start; Number) একটি পাঠ্যের একটি পাঠ্য স্ট্রিং প্রদান করে। পরামিতিগুলি শুরুর অবস্থান এবং অক্ষরের সংখ্যা উল্লেখ করে।

নম্বরটি 10^18একটি ম্যাজিক নম্বর যার জন্য উত্পন্ন স্ট্রিংটির পিছনে বা নেতৃস্থানীয় জিরো নেই। আপনার যদি দীর্ঘতর স্ট্রিং তৈরি করতে হয় তবে আমি এই জাতীয় দুটি বা ততোধিক স্ট্রিং তৈরি করতে এবং সেগুলিকে সম্মতি দেওয়ার পরামর্শ দিচ্ছি।

প্লাজ নোট: এই সমাধানটি লিবারঅফিস ক্যালক 5 তে পরীক্ষা করা হয়েছিল, তবে এটি মাইক্রোসফ্ট এক্সেলেও কাজ করা উচিত যেহেতু ফাংশনগুলি তাদের ডকুমেন্টেশন অনুসারে একই রকম (যা আমি সংযুক্ত করতে পারি না কারণ আমার যথেষ্ট খ্যাতি নেই)।

সম্পাদিত উত্তর

যেহেতু একটি মন্তব্যে এটি নির্দেশ করা হয়েছিল যে ওপি বিশেষত চিঠিপত্র চেয়েছিল কেবলমাত্র আমি এই বিকল্প সংস্করণটি এখানে ফেলে দেব: =MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(BASE(RAND()*10^22,36,16),"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),1,RAND()*4+8)

যেখানে আপনি অঙ্কের সমস্ত উপস্থিতি খালি স্ট্রিংয়ের পরিবর্তে স্থাপন করেন। এইভাবে আপনি কেবল (বড় হাতের) অক্ষর পাবেন। প্রাথমিক এলোমেলো স্ট্রিংয়ের অনেকগুলি সংখ্যা রয়েছে এমন সম্ভাবনাটি গণনা করার জন্য আমি যাদু নম্বরগুলি টিক করেছি। এটি ব্যর্থ সাফ নয়, যদিও এই অর্থে যে নীতিগতভাবে আপনি এমন স্ট্রিংগুলি পেতে পারেন যা প্রত্যাশার চেয়ে কম।

যদি আপনার ন্যূনতম দৈর্ঘ্যের বিষয়ে নিশ্চিত হওয়া দরকার তবে আপনার কাছে এই অন্যান্য (আরও জটিল) বিকল্প রয়েছে: =MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(BASE(RAND()*10^22,36,16),"0",CHAR(RANDBETWEEN(65,90))),"1",CHAR(RANDBETWEEN(65,90))),"2",CHAR(RANDBETWEEN(65,90))),"3",CHAR(RANDBETWEEN(65,90))),"4",CHAR(RANDBETWEEN(65,90))),"5",CHAR(RANDBETWEEN(65,90))),"6",CHAR(RANDBETWEEN(65,90))),"7",CHAR(RANDBETWEEN(65,90))),"8",CHAR(RANDBETWEEN(65,90))),"9",CHAR(RANDBETWEEN(65,90))),1,RAND()*4+8)

যেখানে আপনি এলোমেলোভাবে তৈরি হওয়া বড় হাতের অক্ষরের সাথে প্রতিটি অঙ্কের বিকল্প রাখেন।

আমার বলতে হবে যে অন্যান্য উত্তরগুলিতে প্রদত্ত সংস্থাগুলির সাথে আমি প্রাথমিক সমাধানটি যা পছন্দ করি তা হ'ল এটি সংক্ষিপ্ত এবং অপেক্ষাকৃত সহজবোধ্য। দুটি বিকল্প এই বৈশিষ্ট্যগুলি হারাবে।


ওপি বিশেষত কেবল বর্ণমালার অক্ষরের জন্য জিজ্ঞাসা করছিল। আপনি কি এই উত্তরটির জন্য নিজের উত্তরটি সম্পাদনা করতে পারবেন?
music2myear

@ মিউজিক 2 মাইয়ার সম্পন্ন হয়েছে, তবে এইভাবে আপনি আসল সংস্করণের সংক্ষিপ্ততা হারাবেন।
ক্রিশ্চিয়ানক্যান্টোরো

সংক্ষিপ্ততা কেবল তখনই কার্যকর যখন এটি প্রয়োজনগুলি পূরণ করে। এই উত্তরটি যদিও এটি দীর্ঘতর হলেও এটি আরও ভাল কারণ এটি ওপি-র জিজ্ঞাসিত নির্দিষ্ট প্রশ্নের উত্তর দেয়।
music2myear

0

এলোমেলো অক্ষর উত্পন্ন করতে:

সেল বি 1 এ

= চার (র‌্যান্ডবিটওয়েইন (৪৮,১১১)) (বা যে কোনও চর সেট আপনি চান)

আপনার স্ট্রিংয়ে কলামগুলির সংখ্যা = সর্বাধিক প্রয়োজনীয় অক্ষরের মধ্যে এটি পূরণ করুন

এলোমেলো দৈর্ঘ্য উত্পন্ন করতে

সেল এ 1 এ

= Left (CONCATENATE (খ 1, গ 1, D1, ই 1, ফর্মুলা 1 যেমন G1 H1, i1, J1, K1), RANDBETWEEN (0,9))

এলোমেলো স্ট্রিং তৈরি করতে

A1 কলামে পুরো টেবিলটি পূরণ করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.