การตรวจสอบความถูกต้องของข้อมูลใน Excel โดยใช้นิพจน์ทั่วไป (Regex)

  • แบ่งปันสิ่งนี้
Michael Brown

สารบัญ

บทช่วยสอนแสดงวิธีการตรวจสอบข้อมูลใน Excel โดยใช้นิพจน์ทั่วไปด้วยความช่วยเหลือของฟังก์ชัน RegexMatch ที่กำหนดเอง

เมื่อต้องจำกัดการป้อนข้อมูลของผู้ใช้ในแผ่นงาน Excel การตรวจสอบความถูกต้องของข้อมูล เป็นสิ่งที่ขาดไม่ได้ ต้องการอนุญาตเฉพาะตัวเลขหรือวันที่ในเซลล์ที่กำหนดหรือไม่ หรือจำกัดค่าข้อความให้มีความยาวเฉพาะ? หรืออาจไม่อนุญาตเวลานอกช่วงที่กำหนด? ไม่มีปัญหา ทั้งหมดนี้สามารถทำได้ง่ายๆ ด้วยเกณฑ์การตรวจสอบที่กำหนดไว้ล่วงหน้าหรือกำหนดเอง แต่ถ้าฉันต้องการอนุญาตเฉพาะที่อยู่อีเมลหรือสตริงที่ถูกต้องซึ่งตรงกับรูปแบบเฉพาะ อนิจจานั่นเป็นไปไม่ได้ Regex คุณพูด? อืม… อาจได้ผล!

    วิธีการตรวจสอบความถูกต้องของข้อมูลใน Excel ด้วย Regex

    น่าเสียดาย ฟีเจอร์ Excel ในตัวไม่รองรับ regexes และการตรวจสอบความถูกต้องของข้อมูลไม่ใช่ ข้อยกเว้น เพื่อให้สามารถตรวจสอบการป้อนข้อมูลของเซลล์โดยใช้นิพจน์ทั่วไป คุณต้องสร้างฟังก์ชัน Regex แบบกำหนดเองก่อน ภาวะแทรกซ้อนอีกอย่างคือฟังก์ชันที่ผู้ใช้กำหนดเองของ VBA ไม่สามารถให้บริการกับการตรวจสอบความถูกต้องของข้อมูลได้โดยตรง คุณจะต้องมีสื่อกลางในรูปแบบของสูตรที่มีชื่อ

    เมื่อพิจารณาจากข้างต้น ให้เราสรุปขั้นตอนที่ต้องดำเนินการโดยสังเขป ในการตรวจสอบข้อมูลใน Excel โดยใช้ regexes:

    1. สร้างฟังก์ชัน Regex แบบกำหนดเองที่จะตรวจสอบว่าค่าที่ป้อนตรงกับนิพจน์ทั่วไปหรือไม่
    2. กำหนดชื่อสำหรับสูตร Regex ของคุณ
    3. กำหนดค่ากฎการตรวจสอบข้อมูลตามสูตรที่มีชื่อ
    4. คัดลอกการตั้งค่าการตรวจสอบเซลล์ได้มากเท่าที่คุณต้องการ

    ฟังดูเหมือนเป็นแผนใช่ไหม ลองนำไปใช้จริงกันเถอะ!

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

    ตัวอย่างนี้กล่าวถึงกรณีที่พบบ่อยมาก - วิธีอนุญาตเฉพาะค่าของรูปแบบเฉพาะ

    สมมติว่าคุณเก็บรหัส SKU ไว้ในเวิร์กชีตและต้องการให้แน่ใจว่าเฉพาะรหัสที่ตรงกับรูปแบบที่กำหนดเท่านั้นที่จะเข้าไปในรายการ โดยที่ SKU แต่ละรายการประกอบด้วยอักขระ 2 กลุ่มที่คั่นด้วยเครื่องหมายยัติภังค์ กลุ่มแรกประกอบด้วยตัวพิมพ์ใหญ่ 3 ตัว และกลุ่มที่สองมีตัวเลข 3 ตัว คุณสามารถระบุค่าดังกล่าวได้โดยใช้ regex ด้านล่าง

    รูปแบบ : ^[A-Z]{3}-\d{3}$

    โปรดสังเกตว่าจุดเริ่มต้น (^) และจุดสิ้นสุด ($) ของสตริงถูกตรึงไว้ ดังนั้นจึงไม่มีอักขระอื่นใดนอกจากใน สามารถป้อนรูปแบบในเซลล์ได้

    1. เพิ่มฟังก์ชัน Regex Match ที่กำหนดเอง

    เริ่มต้นด้วยการแทรกฟังก์ชัน RegExpMatch ในสมุดงานของคุณ โค้ดนี้เขียนโดยกูรู Excel ของเรา ดังนั้นคุณเพียงแค่ต้องคัดลอกโค้ดจากหน้าที่เชื่อมโยงด้านบนและวางในโปรแกรมแก้ไข VBA ของคุณ

    นี่คือไวยากรณ์ของฟังก์ชันสำหรับการอ้างอิงของคุณ:

    RegExpMatch(text , รูปแบบ, [match_case])

    ที่ไหน:

    • ข้อความ (จำเป็น) - สตริงต้นฉบับ (ในบริบทของเรา - เซลล์ที่ผ่านการตรวจสอบแล้ว)
    • <9 รูปแบบ (จำเป็น) - นิพจน์ทั่วไปที่จะจับคู่
    • Match_case (ไม่บังคับ) - ประเภทการจับคู่ จริงหรือไม่ใส่ - case-อ่อนไหว; FALSE - คำนึงถึงตัวพิมพ์เล็กและใหญ่

    เคล็ดลับ หากคุณเป็นผู้ใช้ Ultimate Suite ของเรา คุณสามารถทำการตรวจสอบความถูกต้องของข้อมูล Regex ใน Excel โดยไม่ต้องเพิ่มรหัส VBA ลงในสมุดงานของคุณ เพียงใช้ประโยชน์จากฟังก์ชัน AblebitsRegexMatch แบบกำหนดเองที่รวมอยู่ใน Regex Tools ของเรา

    2. สร้างสูตรที่มีชื่อ

    ในเวิร์กชีตเป้าหมายของคุณ เลือกเซลล์ A1 (โดยไม่คำนึงถึงเนื้อหาและไม่ว่าเซลล์ใดที่คุณจะตรวจสอบ) กด Ctrl + F3 เพื่อเปิด Name Manager และกำหนดชื่อ สำหรับสูตรนี้:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    หรือคุณสามารถป้อน regex ในบางเซลล์ (A2 ในตัวอย่างนี้) และระบุ $A$2 ให้กับอาร์กิวเมนต์ที่สอง:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    เพื่อให้สูตรทำงานได้อย่างถูกต้อง อย่าลืมใช้การอ้างอิงแบบสัมพัทธ์สำหรับอาร์กิวเมนต์ ข้อความ (A1) และการอ้างอิงแบบสัมบูรณ์สำหรับ รูปแบบ ($A$2)

    เนื่องจากสูตรของเรามีวัตถุประสงค์เพื่อตรวจสอบหมายเลข SKU เราจึงตั้งชื่อตาม: Validate_SKU

    หมายเหตุสำคัญ! เมื่อกำหนดสูตร โปรดตรวจสอบอีกครั้งว่า อาร์กิวเมนต์แรกอ้างถึงเซลล์ที่เลือกในปัจจุบัน มิฉะนั้น สูตรจะไม่ทำงาน ตัวอย่างเช่น ถ้าเลือกเซลล์ A1 บนแผ่นงาน ให้ใส่ A1 ในอาร์กิวเมนต์แรก (ตามคำแนะนำของเรา) หากเลือก B2 ให้ใช้ B2 สำหรับอาร์กิวเมนต์แรก และอีก 1 อาร์กิวเมนต์ ไม่สำคัญว่าคุณจะใช้ข้อมูลอ้างอิงใด ตราบใดที่ข้อมูลนั้นตรงกับเซลล์ที่เลือกในปัจจุบัน

    สำหรับข้อมูลทีละขั้นตอนคำแนะนำ โปรดดูวิธีสร้างสูตรที่มีชื่อใน Excel

    3. ตั้งค่าการตรวจสอบความถูกต้องของข้อมูล

    เลือกเซลล์แรกที่จะตรวจสอบ (A5 ในกรณีของเรา) และสร้างกฎการตรวจสอบข้อมูลที่กำหนดเองตามสูตรที่มีชื่อ สำหรับสิ่งนี้ ให้ทำดังต่อไปนี้:

    1. คลิกแท็บ ข้อมูล > การตรวจสอบความถูกต้องของข้อมูล .
    2. ในช่อง อนุญาต รายการแบบเลื่อนลง เลือก กำหนดเอง
    3. ป้อนสูตรด้านล่างในช่องที่เกี่ยวข้อง

      =Validate_SKU

    4. ยกเลิกการเลือกตัวเลือก ละเว้นช่องว่าง มิฉะนั้น กฎของคุณจะใช้งานไม่ได้

    หรือคุณสามารถพิมพ์ ข้อความแสดงข้อผิดพลาดแบบกำหนดเองที่จะแสดงเมื่อป้อนข้อมูลที่ไม่ถูกต้องในเซลล์

    หากคุณต้องการขั้นตอนโดยละเอียด ไปที่: วิธีตั้งค่าการตรวจสอบความถูกต้องของข้อมูลแบบกำหนดเองใน Excel

    4. คัดลอกการตรวจสอบความถูกต้องของข้อมูลไปยังเซลล์เพิ่มเติม

    หากต้องการคัดลอกการตั้งค่าการตรวจสอบไปยังเซลล์อื่นๆ คุณต้องทำดังนี้:

    1. เลือกเซลล์ที่มีการตรวจสอบความถูกต้องของข้อมูล แล้วกด Ctrl + C เพื่อ คัดลอก
    2. เลือกเซลล์อื่นที่คุณต้องการตรวจสอบ คลิกขวาที่เซลล์เหล่านั้น คลิก วางแบบพิเศษ และเลือกตัวเลือก การตรวจสอบความถูกต้อง
    3. คลิก ตกลง

    ดูข้อมูลเพิ่มเติมได้ในวิธีคัดลอกการตรวจสอบความถูกต้องของข้อมูล

    ตอนนี้ ทุกครั้งที่มีคนพยายามป้อน SKU ที่ไม่ถูกต้องในเซลล์ที่ผ่านการตรวจสอบใดๆ ต่อไปนี้ ข้อความเตือนจะปรากฏขึ้น:

    การตรวจสอบอีเมลด้วย Regex

    ในการดำเนินการตรวจสอบอีเมล คุณต้องเริ่มด้วยการเขียนนิพจน์ทั่วไปที่ตรงกับที่อยู่อีเมล

    รูปแบบ : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    สำหรับคำอธิบายโดยละเอียดของไวยากรณ์ โปรด ดู Regex เพื่อให้ตรงกับที่อยู่อีเมลที่ถูกต้อง

    และตอนนี้ ให้ระบุเกณฑ์การตรวจสอบโดยทำตามขั้นตอนที่คุ้นเคย:

    1. ป้อน regex ข้างต้นใน B2
    2. เลือกเซลล์ A1 และกำหนดชื่อที่ชื่อว่า Validate_Email ที่อ้างถึง:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. สำหรับเซลล์ B5 ให้ใช้การตรวจสอบความถูกต้องของข้อมูลแบบกำหนดเองโดยใช้สูตรด้านล่าง จำเป็นอย่างยิ่งที่จะต้องยกเลิกการเลือกตัวเลือก ละเว้นว่าง

      =Validate_Email

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

    4. คัดลอกกฎไปยังเซลล์ด้านล่าง

    หากที่อยู่อีเมลที่คุณป้อนในเซลล์ที่ตรวจสอบไม่ตรงกับรูปแบบ regex การแจ้งเตือนต่อไปนี้จะ ป๊อปอัป:

    การตรวจสอบความถูกต้องของรหัสผ่านโดยใช้นิพจน์ทั่วไป

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

    รหัสผ่านต้องมีความยาวอย่างน้อย 6 อักขระและมีได้เฉพาะตัวอักษร (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) และตัวเลขเท่านั้น:

    รูปแบบ : ^[A-Za-z0-9]{6,}$

    รหัสผ่านต้องมีความยาวอย่างน้อย 6 อักขระและมีตัวอักษรอย่างน้อยหนึ่งตัวและหนึ่งหลัก:

    รูปแบบ : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    รหัสผ่านต้องมีความยาวอย่างน้อย 6 อักขระและประกอบด้วยอักษรตัวพิมพ์ใหญ่อย่างน้อยหนึ่งตัว ตัวพิมพ์เล็กหนึ่งตัว และตัวเลขหนึ่งหลัก:

    รูปแบบ : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    รหัสผ่านต้องมีอักขระอย่างน้อย 6 ตัว ยาวและรวมตัวอักษรอย่างน้อยหนึ่งตัว ตัวเลขหนึ่งตัว และอักขระพิเศษหนึ่งตัว:

    รูปแบบ : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    เมื่อสร้างรูปแบบแล้ว คุณสามารถไปยังการตั้งค่าการตรวจสอบข้อมูล:

    1. ป้อนรหัสผ่าน regex ใน C2
    2. เลือกเซลล์ A1 และสร้างสูตรที่มีชื่อเรียกว่า Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. สำหรับเซลล์ C5 ให้สร้างกฎการตรวจสอบที่กำหนดเองด้วยสูตรด้านล่าง อย่าลืมยกเลิกการเลือกกล่องกาเครื่องหมาย ละเว้นว่าง

      =Validate_Password

    4. คัดลอกกฎไปยังเซลล์ได้มากเท่าที่คุณต้องการ

    ตอนนี้ คุณสามารถเพิ่มรหัสผ่านใหม่ลงในรายการได้อย่างปลอดภัย หากสตริงอินพุตไม่ตรงกับ regex การแจ้งเตือนต่อไปนี้จะเตือนคุณว่ายอมรับค่าประเภทใดบ้าง:

    การตรวจสอบความถูกต้องของข้อมูล Regex ไม่ทำงาน

    หากการตรวจสอบความถูกต้องของข้อมูล Regex ไม่ทำงานใน Excel ของคุณ เป็นไปได้มากว่าเกิดจากสาเหตุข้อใดข้อหนึ่งต่อไปนี้

    ไม่มีฟังก์ชัน RegExpMatch

    ก่อนที่จะใช้การตรวจสอบความถูกต้องของข้อมูล โปรดแน่ใจว่าได้แทรกโค้ดของฟังก์ชัน RegExpMatch ในสมุดงานของคุณแล้ว

    ไม่ถูกต้องเป็นประจำนิพจน์

    เพื่อให้แน่ใจว่า regex ของคุณทำงานตามที่คาดไว้ คุณสามารถป้อนสูตร RegExpMatch ในบางเซลล์และตรวจสอบผลลัพธ์ สำหรับข้อมูลเพิ่มเติม โปรดดูการจับคู่นิพจน์ปกติของ Excel พร้อมตัวอย่าง

    ในการวิเคราะห์และดีบักนิพจน์ทั่วไปของคุณ คุณสามารถใช้บริการทดสอบ regex ออนไลน์ฟรี เช่น RegEx101 หรือ RegExr

    สูตรที่มีชื่อไม่ถูกต้อง

    สาเหตุทั่วไปของความล้มเหลวในการตรวจสอบข้อมูลคือสูตรที่มีชื่อ Regex ซึ่งอ้างถึงเซลล์ที่ไม่ถูกต้อง ในตัวอย่างทั้งหมด เราแนะนำให้กำหนดสูตรที่อ้างถึง A1:

    =RegExpMatch(A1, regex)

    วิธีนี้ใช้ได้เฉพาะเมื่อเซลล์ A1 ทำงานอยู่ เมื่อกำหนดชื่อและ ใช้การอ้างอิงแบบสัมพัทธ์ (โดยไม่มีเครื่องหมาย $)

    แนวคิดคือการอ้างอิงแบบสัมพัทธ์ที่ระบุในสูตร (A1) จะเปลี่ยนโดยอัตโนมัติตามตำแหน่งสัมพัทธ์ของเซลล์ที่ผ่านการตรวจสอบ กล่าวอีกนัยหนึ่ง เซลล์ A1 ถูกเลือกเพื่อความสะดวกและความสม่ำเสมอ ในความเป็นจริง คุณสามารถเลือกเซลล์ B1 และอ้างอิงถึง B1 เลือกเซลล์ C1 และอ้างอิงถึง C1 และอื่นๆ สิ่งสำคัญคือ เซลล์ที่อ้างอิง ควรเป็น เซลล์ที่ใช้งานอยู่

    หากต้องการตรวจสอบว่าสูตรที่มีชื่อของคุณถูกต้องหรือไม่ ให้เลือกเซลล์ใดก็ได้ในเวิร์กชีตของคุณ เปิด ตัวจัดการชื่อ และดูว่าเซลล์ใดที่สูตรชี้ไป ถ้าอ้างอิงถึงเซลล์ที่เลือกอยู่ แสดงว่าสูตรนั้นถูกต้อง มิฉะนั้น คุณควรเปลี่ยนการอ้างอิงในอาร์กิวเมนต์แรก

    ในภาพหน้าจอด้านล่าง เซลล์ A7 ถูกเลือก หมายความว่าสูตรที่มีชื่อควรมี A7 ในอาร์กิวเมนต์แรก อาร์กิวเมนต์ที่สอง ($A$2) อ้างอิงถึง regex - การอ้างอิงนี้ควรคงที่ ดังนั้นจึงถูกล็อกด้วยเครื่องหมาย $

    ตัวเลือกละเว้นว่างที่เลือกไว้

    เมื่อตั้งค่ากฎการตรวจสอบข้อมูลที่กำหนดเอง สิ่งสำคัญคือต้องยกเลิกการเลือกช่องทำเครื่องหมาย ละเว้นว่าง มิฉะนั้น กฎจะไม่ทำงานเนื่องจากสาเหตุต่อไปนี้:

    หากไม่พบรายการที่ตรงกัน ฟังก์ชัน RegExpMatch จะส่งกลับค่า FALSE เมื่อเลือกตัวเลือก ละเว้นค่าว่าง ค่า FALSE จะเท่ากับค่าว่างและถูกละเว้น

    ทางเลือกอื่นระบุอย่างชัดเจนว่าสูตรควรคืนค่า TRUE:

    =RegExpMatch(…)=TRUE

    นั่นคือวิธีการตรวจสอบความถูกต้องของข้อมูลใน Excel โดยใช้นิพจน์ทั่วไป ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    สมุดงานแบบฝึกหัดสำหรับการดาวน์โหลด

    ตัวอย่างการตรวจสอบความถูกต้องของข้อมูล Regex (ไฟล์ .xlsm)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้