Gung Note

วันเวลาผ่านไป สิ่งที่เคยเห็น.. สิ่งที่เคยได้ยิน.. และสิ่งที่ได้ประสบ... มันจะคงอยู่ในนี้ตลอดไป.

วันอังคาร, ตุลาคม 31, 2560

CASTBOOK EP3 หนังสือแห่งสัจธรรม ตกงานตอนแก่ ชีวิตผมรอดได้ด้วยสตาร์บัคส์...

วันอังคาร, ตุลาคม 24, 2560

วิธีการตรวจสอบ บัตรประชาชน ถูกต้องหรือไหม ?


 ที่มา   -->  https://nattster.wordpress.com/2006/09/08/id-verification/

Check Digit คืออะไรหนอ?

Check Digit เป็นตัวเลข 1 หลัก ที่เกิดจากการนำเลขหลักอื่นๆ มา บวก ลบ คูณ หาร กัน และ Check Digit นี่หละครับ จะช่วยให้เราตรวจสอบในเบื้องต้นได้ว่า ข้อมูลที่กรอกมาถูกต้องรึเปล่า เวลาเราจะตรวจสอบว่าข้อมูลที่กรอกมาถูกต้องรึเปล่า เราจะคำนวณ Check Digit จากเลขหลักอื่นๆ เพื่อเปรียบเทียบกับ Check Digit ที่เขากรอกมาว่าตรงกันมั้ย ถ้าตรงกันก็แสดงว่าข้อมูลถูกต้องไม่ผิด ไม่มั่ว แต่ถ้าไม่ตรงกัน ก็แปลว่า ข้อมูลที่กรอกมามีข้อมูลซักหลัก หรือ สองหลักที่ผิด เราก็สามารถเตือนให้ผู้ใช้ทราบและกรอกใหม่ อีกครั้งได้

เอ้า มาลองคำนวณ Check Digit ของรหัสประชาชนเรากันดีกว่า

ขอยกตัวอย่างรหัสประชาชนนี้ละกันครับ 1-2015-41462-23-4 ไหน ตอบหน่อยซิ ว่า Check Digit ของรหัสประชาชนนี้คือเลขอะไรคร้าบ……. เอ้า ถามเองตอบเองก็ได้ Check Digit ของรหัสประชาชนนี้คือเลข 4 (เลขตัวสุดท้ายนั่นเอง) เรามาดูกันว่า เลข 4 เกิดจากอะไรหว่า? คำนวณมาได้ไง? มั่วอ๊ะเปล่า?
  • ขั้นตอนที่ 1 – เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน (หลักที่ 13 ไม่ต้องเอามานะคร้าบ)
    1 2 0 1 5 4 1 4 6 2 2 3
  • ขั้นตอนที่ 2 – เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
    รหัสบัตร 1 2 0 1 5 4 1 4 6 2 2 3
    ตัวคูณ 13 12 11 10 9 8 7 6 5 4 3 2

    ผลคูณ 13 24 0 10 45 32 7 24 30 8 6 6
  • ขั้นตอนที่ 3 – เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด จะได้ 13+24+0+10+45+32+7+24+30+8+6+6=205
  • ขั้นตอนที่ 4 – เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ) จะได้ 205 mod 11 = 7
  • ขั้นตอนที่ 5 – เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4 จะได้ 11-7 = 4 (เราจะได้ 4 เป็นเลขในหลัก Check Digit) ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit (เช่น 11 ให้เอา 1 มา, 10 ให้เอา 0 มา เป็นต้น)
โอ้โห….มหัศจรรย์มาก ยอดเยี่ยมกระเทียมดอง เลขที่ได้ตรงกับเลขหลักที่ 13 ด้วยแหละ…ถ้าไม่เชื่อก็เอาเลขบัตรประชาชนตัวเองมาคำนวณดูสิครับ ผมคิดว่าหลายๆ คนคงมีคำถามในใจแล้วหละว่า ทำไมต้องเอามาคูณ 13 ทำไมต้องเอามา บวกกัน ทำไมต้องเอามา mod 11 คำตอบที่ผมให้ได้ก็คือ มันคือวิธีที่ถูกเลือกใช้ในการคำนวณ Check Digit ให้กับรหัสประชาชนครับ แต่ถ้าเราจะคำนวณ Check Digit ให้กับรหัสสินค้า หรือ ISBN ของหนังสือ เราก็ต้องใช้วิธีการคำนวณ ที่แตกต่างกันออกไปครับ

-----------------------------

ดูเพิ่ม

http://www.excel-exercise.com/function/text-functions/left-right-mid/

http://www.excel-exercise.com/function/statistic/mod/

-----------------------------


excel   A5  คือ  cell ที่มใส่ หลายที่บัตรประชาชน

=IF(ISBLANK(A5),"",IF(LEN(A5)=13,
IF(RIGHT(11-MOD(
MID(A5,1,1)*13+
MID(A5,2,1)*12+
MID(A5,3,1)*11+
MID(A5,4,1)*10+
MID(A5,5,1)*9+
MID(A5,6,1)*8+
MID(A5,7,1)*7+
MID(A5,8,1)*6+
MID(A5,9,1)*5+
MID(A5,10,1)*4+
MID(A5,11,1)*3+
MID(A5,12,1)*2,11))=RIGHT(A5),"ถูกต้อง","ผิด " ),"ไม่ครบ13หลัก"))