Google Sheet—สร้างฟังก์ชันตรวจสอบหมายเลขบัตรประชาชน [Apps Script]

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

  1. ตัวเลขบนบัตรประชาชนมีทั้งหมด 13 หลัก ให้นำเลขใน 12 หลักแรก มาคูณกับเลขประจำตำแหน่ง
  2. เอาผลคูณทั้ง 12 หลักมารวมกัน แล้วหารด้วย 11
  3. เอาเศษที่ได้จากการหารในข้อ 2 มาลบด้วย 11 ก็จะได้เลข Check Digit โดยใช้แค่เลขหลักหน่วย
  4. จากนั้นนำเลขที่ได้ในข้อ 3 ไปเทียบก็หลักสุดท้ายของเลขบัตรประชาชน หากตัวเลขตรงกันแสดงว่าถูกต้อง

ตัวอย่าง 1–2345–67890–12–1

  1. นำตัวเลขหลักที่ 1 ถึง 12 ไปคูณเลขประจำตำแหน่ง แล้วนำมารวมกัน : (1×13)+(2×12)+(3×11)+(4×10)+(5×9)+(6×8)+(7×7)+(8×6)+(9×5)+(0x4)+(1×3)+(2×2) = 352 [เลขประจำตำแหน่งได้แก่ 13 บวก 1 ลบด้วยตำแหน่งที่]
  2. ผลรวมจากข้อ 1 หารด้วย 11 : 352 / 11 ได้เศษจากการหารคือ 0
  3. นำ 11 ตั้งแล้วลบด้วยเศษที่ได้จากการหารในข้อ 2 : 11 – 0 = 11 แล้วเอาเฉพาะเลขหลักหน่วย ดังนั้น Check Digit คือ 1
  4. ดังนั้นเลขบัตรประชาชน : 1–2345–67890–12–1 ที่มีเลขตำแหน่งสุดท้ายเท่ากับ Check Digit นั่นคือเลขบัตรที่ถูกต้อง

— เมื่อได้หลักในการคำนวณแล้วก็ต้องมาเขียน Apps Script เพื่อสร้างฟังก์ชั่นการตรวจสอบเลขบัตรประชาชนไว้ใช้งานกันครับ 💻 Copy code จาก Link ด้านล่างไปใช้งานได้เลยครับ

https://github.com/ChaiyachetU/thai-id-card-check/blob/master/Code.gs

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


ท้ายสุด เราก็ได้รู้วิธีการตรวจสอบเลขบัตรประขาชนเบื้องต้นน่ะครับ เพราะรหัสประชาชนที่ผู้ใช้กรอกอาจมี Check Digit ที่ถูกต้อง แต่อาจเป็นรหัสประชาชนที่ไม่มีอยู่จริงก็ได้ [ลองทดสอบด้วยการใส่เลขแปลกๆ ดูครับ] ก็หวังว่าในช่วงเวลาที่ต้องผ่านพ้นวิกฤติ 🦠Covid-19 ไปด้วยกัน เพื่อนๆ จะได้ประโยชน์จากบทความนี้น่ะครับ Happy Life…🧼👏

อ้างอิง
https://github.com/jukbot/thai-citizen-id-validator


โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBack
🔗 https://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาที
🔗 http://bit.ly/36q8A12