snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#1
Post
by ajsudkedt » Fri Nov 25, 2016 1:18 pm
ตามภาพ
สูตรที่ผมใช้ ทำไมเลข
0000000000001
ทำไมสูตรถึงแจ้งว่าถูกครับ
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#2
Post
by DhitiBank » Fri Nov 25, 2016 1:55 pm
ลองเอาเม้าส์ลากคลุม Value(Right(A2,1))
แล้วกด F9 ดูครับ ว่าได้เท่ากับ 1 หรือไม่ หากเท่าแสดงว่าเลข 1 เป็นอัขระสุดท้ายในเซลล์ A2 จริงๆ ก็ให้ตรวจต่อ...
เอาเม้าส์ลากคลุม Mid(A2,Row(A1:A12),1)
แล้วกด F9 ครับ ว่าตัดได้ {0;0;0;0;0;0;0;0;0;0;0;0}
หรือไม่ หากไม่ก็ผิดครับ
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#3
Post
by ajsudkedt » Sun Nov 27, 2016 1:04 pm
รูปแบบเซลล์มันเป็น text ครับ
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#4
Post
by DhitiBank » Sun Nov 27, 2016 3:30 pm
จะเป็นเลขหรือเป็น text ไม่สำคัญครับ เพราะผลจากการคำนวณจะถูกแปลงเป็นเลขโดยอัตโนมัติอยู่แล้วด้วยสูตร Value
และการคูณกันในสูตร Sumproduct
ผมลองคีย์เป็น text แล้วทดสอบกับเลขประชาชนของผมเอง ผลก็ true เหมือนกันครับ แต่หากเปลี่ยนเลขบางตัว ผลเป็น false
มาคิดอีกที หากเลข 12 ตัวหน้าเป็น 0 หมด check digit จะต้องคำนวณได้ 1 ถูกแล้วครับ ลองทดสอบโดยคีย์ที่ A2 เป็น '0000000000002
สูตรจะแสดง False ครับ หรือลองคีย์ '1234567891003
ก็จะ true อันนี้ผมมั่วเลขขึ้นมานะครับ
สูตรนั้นเป็นการเช็คเลขสุดท้ายเฉยๆ ว่าสอดคล้องกันไหม แต่ไม่ได้ตรวจว่าเป็นเลขประชาชนจริงๆ หรือเปล่าครับ
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#5
Post
by ajsudkedt » Tue Nov 29, 2016 11:33 am
แล้วสูตรตรวจเลขประชาชนจริง ๆ
ที่ต้องออกโดยกระทรวงมหาดไทยเท่านั้นถึงจะถูก มีไหมครับ
เพราะเห็นมีเลขที่ประชาชนที่มหาดไทยออกให้คนต่างด้าวขึ้นต้นด้วย 0
ตามภาพแบบนี้มีสูตรตรวจไหมครับ
You do not have the required permissions to view the files attached to this post.
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#6
Post
by parakorn » Tue Nov 29, 2016 11:38 am
ajsudkedt wrote: แล้วสูตรตรวจเลขประชาชนจริง ๆ
ที่ต้องออกโดยกระทรวงมหาดไทยเท่านั้นถึงจะถูก มีไหมครับ
เพราะเห็นมีเลขที่ประชาชนที่มหาดไทยออกให้คนต่างด้าวขึ้นต้นด้วย 0
ตามภาพแบบนี้มีสูตรตรวจไหมครับ
หากต้องการตรวจสอบข้อมูลอะไร ต้องมีฐานข้อมูลครับ
แต่หากแค่ตรวจ ว่า ข้อมูลที่มีอยู่ เลขด้านหน้าสุด เป็น 0 หรือไม่ แบบนี้พอได้ครับ
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#7
Post
by ajsudkedt » Tue Nov 29, 2016 4:35 pm
จากเลขบัตร ตามภาพ พอจะมีสูตรตรวจสอบไหมครับ
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#8
Post
by parakorn » Tue Nov 29, 2016 5:08 pm
ajsudkedt wrote: จากเลขบัตร ตามภาพ พอจะมีสูตรตรวจสอบไหมครับ
เงื่อนไขในการตรวจสอบมีอะไรบ้างครับ
ถ้าตรวจสอบว่าเป็นเลขบัตรประจำตัวประชาชน
ก็ต้องมีฐานข้อมูล ว่ามีเลขอะไรบ้างก่อน ลองส่งตัวอย่างฐานข้อมูลมาดูครับ
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#9
Post
by DhitiBank » Thu Dec 01, 2016 11:11 am
ตามที่คุณ parakorn กล่าวไว้เลยครับ หากต้องการจะตรวจว่าเลข 13 หลักนั้นๆ เป็นเลขบัตรประชาชนจริงๆ มีตัวตนอยู่จริงจะต้องมีฐานข้อมูล (แต่ผมคิดว่าฐานข้อมูลเลขบัตรประชาชนไม่ใช่สิ่งที่หามาได้ง่ายๆ ครับ เฉพาะผู้ที่ได้รับอำนาจเฉพาะ หรือมีตำแหน่งหน้าที่เฉพาะที่เข้าถึงข้อมูลพวกนี้ได้ หรือไม่ก็ไปแฮ็คมาครับ)
หากไม่มีฐานข้อมูลที่ว่า การตรวจสอบเบื้องต้นก็ทำได้แค่เช็คว่า พิมพ์รหัสถูกหรือเปล่าโดยดูจากเลขหลักที่ 1 ซึ่งเป็น check digit ที่ได้จากการคำนวณครับ
ZEROV
Member
Posts: 73 Joined: Thu Jun 03, 2010 6:31 pm
#10
Post
by ZEROV » Fri Dec 02, 2016 6:59 pm
ตั้งตัวอย่างโจทย์ผิด
0-0000-00000-00-1 =ผิดหลักการกำหนดเลขที่บัตรประชาชนแต่ถูกหลักการตรวจสอบ
หมายความว่าไม่มีบัตรประชาชนเลขที่นี้ แต่ถ้าใช้สูตรตรวจจะได้ค่า true
0-2394-89000-06-8 =ถูกหลักการกำหนดเลขที่บัตรประชาชนและถูกต้องตามหลักการตรวจสอบ
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#11
Post
by parakorn » Fri Dec 02, 2016 9:17 pm
ZEROV wrote: ตั้งตัวอย่างโจทย์ผิด
<a href="tel:0-0000-00000-00-1">0-0000-00000-00-1</a> =ผิดหลักการกำหนดเลขที่บัตรประชาชนแต่ถูกหลักการตรวจสอบ
หมายความว่าไม่มีบัตรประชาชนเลขที่นี้ แต่ถ้าใช้สูตรตรวจจะได้ค่า true
<a href="tel:0-2394-89000-06-8">0-2394-89000-06-8</a> =ถูกหลักการกำหนดเลขที่บัตรประชาชนและถูกต้องตามหลักการตรวจสอบ
เพราะอะไรถึงผิดและถูก และมีเงื่อนไขในการชี้วัดอะไรบ้าง ลองอธิบายมาทุกๆเงื่อนไข และทุกๆเหตุผลครับ
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#13
Post
by ajsudkedt » Sun Dec 04, 2016 4:39 am
เลขประชาชนที่มหาดไทยออกให้คนต่างด้าวที่ขึ้นต้นด้วย 0
ตามภาพบัตรประชาชนที่ผมแนบด้านบน
มีหลักการกำหนดตัวเลขยังไงครับ
เผื่อจะได้นำมาคิดสูตรตราวจสอบน่ะครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30736 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Sun Dec 04, 2016 6:41 am
แนบไฟล์มาด้วยจะได้ช่วยตรวจสอบให้ได้ครับ
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#15
Post
by ajsudkedt » Sun Dec 04, 2016 7:14 am
ตามภาพและไฟล์แนบ
แสดงว่าการจัดรูปแบบ Cell
มีผลต่อการตรวจสอบใช่ไหมครับ
เราจะมีสูตรที่ตรวจได้ในรูปแบบ Cell แบบ Custom ไหมครับ
You do not have the required permissions to view the files attached to this post.
ajsudkedt
Gold
Posts: 1096 Joined: Thu Jan 28, 2010 11:08 am
Excel Ver: 2019
#16
Post
by ajsudkedt » Sun Dec 04, 2016 7:16 am
ไฟล์ "ask-2" ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30736 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#17
Post
by snasui » Sun Dec 04, 2016 7:32 am
เมื่อทราบอยู่แล้วว่าเซลล์นั้นต้องจัดรูปแบบให้เป็น Text ก็ควรจัดรูปแบบให้เป็น Text ตั้งแต่ต้น จะได้ไม่ต้องเสียเวลาตรวจสอบครับ
หรือหากจะตรวจสอบด้วยสูตรให้แก้ไขสูตรเพิ่มเติมเป็นด้านล่าง
=If(Len(A2)<>13,"Incorrect value",OldFormula)
สูตรตรวจสอบบัตรประชาชนเคยถามมานานแล้วตามที่ผมยกมาด้านล่าง
ajsudkedt wrote: ได้แล้วครับ Search เจอใน
http://www.bloggang.com/viewblog.php?id ... 3&gblog=15
ตรวจได้เฉพาะ ถูก/ผิด แต่ยังแก้สูตรให้บอกว่า "ซ้ำ" ไม่ได้ครับ
สูตรตามนี้ครับ
=VALUE(RIGHT(A1,1))=MOD(11-MOD(SUMPRODUCT(MID(A1,ROW($A$1:$A$12),1)*{13;12;11;10;9;8;7;6;5;4;3;2}),11),10)
snasui wrote: จาก Link ที่ให้มา
ลองเลื่อนไปอ่านชื่อผู้โพสต์ในความเห็นที่ 3 ครับ
...
Link กระทู้ด้านบน:
http://www.snasui.com/viewtopic.php?f=3&t=6968
สามารถนำสูตรในความเห็นที่ 3 ของบทความนั้นมาใช้หรือปรับใช้ได้เช่นกัน สูตรจะสั้นลงกว่าสูตรที่ใช้อยู่นี้ครับ