ที่มา --> 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 มา เป็นต้น)
-----------------------------
ดูเพิ่ม
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หลัก"))
ความคิดเห็น