:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

คำสั่ง random

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
poohbear
Member
Member
Posts: 6
Joined: Sat Oct 06, 2012 12:47 pm

คำสั่ง random

#1

Post by poohbear »

คำสั่งที่จะ random ให้ได้ตัวเลข 7 หลัก ห้าพันชุด ต้องใช้คำสั่งอะไรค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำสั่ง random

#2

Post by snasui »

:D ลองตามนี้ครับ

ที่เซลล์ใด ๆ คีย์

=INT(RAND()*900000+100000)

Enter > Copy ลงด้านล่างเท่าต้องการ
poohbear
Member
Member
Posts: 6
Joined: Sat Oct 06, 2012 12:47 pm

Re: คำสั่ง random

#3

Post by poohbear »

ลองทำตามสูตรที่ให้มาแล้วค่ะ ผลลัพธ์ออกมาเป็นเลข 6 หลักค่ะ รบกวนหน่อยนะค่ะ ต้องการเป็นเลข 7 หลัก ค่ะ ขอบคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำสั่ง random

#4

Post by snasui »

:lol: ผมคีย์ตกไปครับ :tt: เพิ่มเลข 0 เข้าไปอีกตัวเป็นด้านล่างครับ

=INT(RAND()*9000000+1000000)

Enter > Copy ลงด้านล่าง
poohbear
Member
Member
Posts: 6
Joined: Sat Oct 06, 2012 12:47 pm

Re: คำสั่ง random

#5

Post by poohbear »

ขอบคุณมากนะค่ะ
poohbear
Member
Member
Posts: 6
Joined: Sat Oct 06, 2012 12:47 pm

Re: คำสั่ง random

#6

Post by poohbear »

รบกวนถามอีกเรื่องค่ะ
ทำไมเราต้องใช้สูตร =INT(RAND()*9000000+1000000) แบบนี้ค่ะ คือสงสัยว่าทำไมต้องใช้ เลข 9000000 บวกกับ 1000000
สมมุติว่าเรา จะใช้แค่ 5 หลัก หรือ 8 หลัก แค่ลบ ศูนย์ ออกไปแค่นี่หรือค่ะ มีหลักการคิดหรือเปล่าค่ะ

ขอบคุณมากค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คำสั่ง random

#7

Post by snasui »

:D ฟังก์ชั่น Rand เป็นการสุ่มที่ให้ผลลัพธ์เป็นตัวเลขระหว่าง 0 กับ 1 ดูคำอธิบายที่นี่ครับ http://office.microsoft.com/th-th/excel ... P005204211 ดังนั้น ค่าที่ได้จะมากกว่า 0 และไม่ถึง 1 เพราะคำว่าระหว่างจะต้องไม่นับค่าต้นและค่าปลาย

จากสูตร =INT(RAND()*9000000+1000000) ขอยกตัวอย่างให้เห็นภาพเรื่องของ 9000000 และ 1000000 ตามด้านล่างครับ

จากโจทย์ต้องการให้ได้ตัวเลข 7 หลักเสมอดังนั้น ค่าที่น้อยที่สุดคือ 1000000 เพราะเป็น 7 หลักที่น้อยที่สุด ส่วน 7 หลักที่มากที่สุดคือ 9999999 และจากคำนิยามของ Rand ที่ให้ผลลัพธ์อยู่ระหว่าง 0 ไม่ถึง 1 โอกาสจะเป็น 0.000000000000001 ก็ย่อมจะเกิดขึ้นได้ ซึ่งค่าที่ได้นี้หากนำไปคูณกับ 9000000 ผลลัพธ์ คือ 0.000000009 ซึ่งไม่ถึง 1

เมื่อเรานำ 0.000000009 มาบวกกับ 1000000 ซึ่งเป็นเลข 7 หลักที่น้อยที่สุดจะได้เป็น 1000000.000000009 ส่วนฟังก์ชั่น Int เป็นการตัดเศษทิ้ง ดังนั้น Int(1000000.000000009) ก็จะได้เป็น 1000000 จากกรณีนี้ตัวเลขทีสุ่มแล้วน้อยทีสุดจะไม่มีโอกาสน้อยกว่า 1000000 ได้เลย

สมมุติว่าสุ่มแล้วได้ 0.999999999999999 เมื่อนำมาคูณกับ 9000000 ผลลัพธ์จะได้ 8999999.99999999 เมื่อนำมาบวกกับ 1000000 จะได้ 9999999.99999999 ดังนั้น Int(9999999.99999999) ก็จะได้เป็น 9999999 กรณีนี้ตัวเลขทีสุ่มแล้วมากทีสุดจะไม่มีโอกาสมากกว่า 9999999 ได้เลย จาก 2 กรณีข้างต้นคิดว่าน่าจะเห็นภาพมากขึ้น

ส่วนที่ถามมา
poohbear wrote:สมมุติว่าเรา จะใช้แค่ 5 หลัก หรือ 8 หลัก แค่ลบ ศูนย์ ออกไปแค่นี่หรือค่ะ
คำตอบคือ ใช่ครับ
poohbear
Member
Member
Posts: 6
Joined: Sat Oct 06, 2012 12:47 pm

Re: คำสั่ง random

#8

Post by poohbear »

ขอบคุณที่สุดในโลกเลยค่ะ ได้ความรู้เพิ่มอีก
phirawit
Member
Member
Posts: 79
Joined: Thu Jun 02, 2011 12:35 pm

Re: คำสั่ง random

#9

Post by phirawit »

ขอบคุณมากเลยคะ ขอเอาไปใช้ด้วยนะคะ
Post Reply