การกรองและการค้นหาใน Excel ไม่ใช่เรื่องง่าย ฟังก์ชัน Regex จะเปลี่ยนแปลงสิ่งนั้น ตอนนี้คุณสามารถระบุได้อย่างชัดเจนว่าคุณต้องการอะไร—รูปแบบที่ซับซ้อน การจับคู่บางส่วน หรือการแยกข้อมูลที่มีโครงสร้าง—โดยไม่ต้องใช้ความพยายามใดๆ
สารบัญ
Regex คืออะไร?
Regex เป็นรูปแบบประเภทหนึ่งที่ใช้ค้นหาข้อความที่ตรงกันหรือสตริงอักขระ คุณเคยสงสัยไหมว่าเว็บไซต์จะบอกคุณได้อย่างไรว่าเทมเพลตอีเมลที่คุณป้อนในหน้าเข้าสู่ระบบนั้นไม่ถูกต้อง นี่คือตัวอย่างรูปแบบ regex ที่ใช้ลายเซ็นอีเมลในการใช้งาน
นิพจน์ทั่วไปไม่ได้มีเอกลักษณ์เฉพาะใน Excel เท่านั้น แต่ยังมีอยู่ในโปรแกรมแก้ไขข้อความ ภาษาโปรแกรม เครื่องมือบรรทัดคำสั่ง IDE และแม้แต่คู่แข่งของ Excel อย่างGoogle Sheetsอีก ด้วย
Regex อาจดูซับซ้อน และเป็นเช่นนั้นจริงๆ หากคุณต้องการใช้มันอย่างเต็มศักยภาพ แต่คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์เพื่อใช้มันอย่างมีประสิทธิผล ในบางกรณี คุณอาจเรียนรู้แค่วิธีใช้สัญลักษณ์และรูปแบบพื้นฐานบางอย่างเท่านั้น คู่มือนี้จะถูกออกแบบให้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้เพื่อให้คุณสามารถเริ่มต้นใช้งานได้
ต่อไปนี้คือสัญลักษณ์ที่จะใช้ในคู่มือนี้:
|
เครื่องหมาย
|
อธิบาย
|
|
-
|
ระบุช่วงอักขระในวงเล็บ
|
|
-
|
ตรงกับจุดเริ่มต้นของสตริง
|
|
-
|
ตรงกับจุดสิ้นสุดของสตริง
|
|
-
|
ตรงกับอักขระใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่
|
|
-
|
ตรงกับอักขระที่อยู่ข้างหน้าศูนย์ตัวหรือมากกว่า
|
|
-
|
ตรงกับตัวอักษรหรือตัวหนังสือก่อนหน้า
|
|
-
|
การจับคู่ตัวละครเป็นกลุ่มเดียว
|
|
-
|
ตรงกับอักขระใด ๆ ภายในวงเล็บ
|
|
-
|
ตรงกับอักขระใด ๆ ที่ไม่อยู่ในวงเล็บ
|
|
{น}
|
ตรงกับตัวอักขระก่อนหน้า n ตัวพอดี
|
|
น.,}
|
ตรงกับการเกิดขึ้นของอักขระก่อนหน้า n ครั้งขึ้นไป
|
รูปแบบนิพจน์ปกติแบบง่ายที่คุณสามารถสร้างได้โดยใช้สัญลักษณ์เหล่านี้ ได้แก่:
|
รูปแบบ Regex
|
อธิบาย
|
|
[0-9]
|
ตรงกับตัวเลขตั้งแต่ 0 ถึง 9
|
|
[อา-ซา-ซา-ซา-0-9]
|
นี่คือช่วงการจับคู่ที่ตรงกับอักขระตัวเดียวตั้งแต่ตัวพิมพ์เล็ก a ถึง z, ตัวพิมพ์ใหญ่ A ถึง Z และ 0 ถึง 9
|
|
^โปร
|
ตรงกับสตริงใด ๆ ที่เริ่มต้นด้วยpro
|
|
-
|
ตรง กับอักขระอื่นใดนอกเหนือจาก$
|
|
(เด็ก)
|
ตัวอย่างกลุ่มย่อย
|
|
ก{3,}
|
ตรงกับส่วนที่ตามหลังa 3 ครั้งขึ้นไป (เช่นa , aa หรือaaa )
|
ฟังก์ชัน Regex เป็นสูตร Excel ที่กำหนดไว้ล่วงหน้าซึ่งสามารถใช้กำหนดรูปแบบในการค้นหาและจัดการสตริงข้อความได้ ปัจจุบันมีฟังก์ชั่น regex 3 ฟังก์ชั่น เราจะดูวิธีการใช้แยกกันและใช้ร่วมกับฟังก์ชั่นอื่น ๆ
ค้นหารูปแบบ
ฟังก์ชันแรกที่เราจะดูคือ REGEXTEST ฟังก์ชันนี้จะใช้สตริงข้อความที่คุณต้องการใช้ในการค้นหาและรูปแบบ regex จากนั้นใช้รูปแบบหลังเพื่อค้นหาการจับคู่ในรูปแบบแรก ฟังก์ชันจะส่งคืนค่า True หรือ False
รูปแบบของฟังก์ชัน REGEXTEST มีดังนี้:
REGEXTEST(string_to_search, regex_pattern_to_use, [case_senstivity])
พารามิเตอร์สองตัวแรกคือstring_to_searchและregex_pattern_to_useค่อนข้างจะอธิบายตัวเองได้ พารามิเตอร์[case_sensitivity]เป็นทางเลือก - สิ่งใดก็ตามที่อยู่ในวงเล็บเหลี่ยมเมื่อพูดถึงไวยากรณ์ของ Excel เป็นทางเลือก - และจะระบุว่าคุณต้องการให้การค้นหาคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ (0) หรือไม่คำนึงถึงตัวพิมพ์เล็ก/ใหญ่ (1) ค่าเริ่มต้นจะแยกแยะตัวพิมพ์เล็ก/ใหญ่
ตัวอย่างจะใช้ REGEXTEST เพื่อดูว่าผู้ใช้ป้อนที่อยู่อีเมลที่ถูกต้องหรือไม่โดยใช้สูตรต่อไปนี้:
REGEXTEST(B3, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$")
ที่นี่ เรากำลังค้นหาในเซลล์ B3 เพื่อดูว่ามีที่อยู่อีเมลหรือไม่โดยใช้รูปแบบนิพจน์ทั่วไปด้านล่างนี้:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
หากคุณใส่สูตรในเซลล์ C3 และป้อนjohn.doe@example.comในเซลล์ B3 สูตรจะส่งกลับค่า True เนื่องจากตรงกับลายเซ็นอีเมล
ฟังก์ชัน REGEXTEST ใน Excel
ข้อมูลเพิ่มเติมโดยใช้ Regex
ถัดไป มาดูฟังก์ชัน REXEXEXTRACT กัน ฟังก์ชันนี้ส่งคืนสตริงย่อย (ส่วนหนึ่งของสตริง) ที่ตรงกับรูปแบบ regex ที่ให้มา
รูปแบบโครงสร้างของฟังก์ชัน REXEXEXTRACT มีดังนี้:
REGEXEXTRACT(string_to_search, regex_pattern_to_use, [return_mode], [case_senstivity])
ดำเนินการต่อด้วยตัวอย่างอีเมล มาเพิ่มสูตรในเซลล์ B4 เพื่อแยกชื่อผู้ใช้ของส่วนอีเมล
สูตรจะมีลักษณะดังนี้:
=REGEXEXTRACT(B3, "([^@]+)")
ในสูตรนี้ เราจะแยกทุกอย่างก่อน สัญลักษณ์ @ในที่อยู่อีเมลที่ป้อนใน B3
ฟังก์ชัน REGEXEXTRACT ใน Excel
ค้นหาและแทนที่ด้วย Regex
ฟังก์ชัน regex สุดท้ายที่เราจะดูคือ REGEXREPLACE ฟังก์ชันนี้คล้ายกับฟังก์ชัน REPLACE ของ Excel แต่ยังรองรับ RegEx อีกด้วย ใช้สตริงข้อความที่คุณต้องการแก้ไขและตรวจสอบว่าสตริงย่อยใดตรงกับรูปแบบ regex ที่กำหนดหรือไม่ หากพบ ระบบจะแทนที่สตริงดังกล่าวด้วยสตริงแทนที่ที่ให้มา
รูปแบบโครงสร้างของฟังก์ชัน REGEXREPLACE มีดังนี้:
REGEXREPLACE(string_to_modify, regex_pattern_to_use, replacement_string, [number_of_occurrences], [case_senstivity])
นี่คือพารามิเตอร์ที่สำคัญที่ต้องทราบในฟังก์ชั่นนี้:
- string_to_modify : สตริงข้อความที่คุณต้องการแก้ไข
- replacement_string : สตริงที่จะแทนที่สตริงย่อย
- number_of_occurrences : จำนวนอินสแตนซ์ที่คุณต้องการแทนที่
นี่คือตัวอย่างการใช้ฟังก์ชันเพื่อแทนที่ส่วนชื่อผู้ใช้ของอีเมลด้วยสตริงข้อความอื่น:
=REGEXREPLACE(B3, "^[^@]+", "jane.doe")
ค่าของ B3 คือjohn.doe@example.comและหลังจากที่เราใส่สูตรด้านบนในเซลล์ C3 แล้ว จะส่งคืนjane.doe@example.com
ฟังก์ชัน REGEXREPLACE ใน Excel
การรวม Regex เข้ากับฟังก์ชันอื่น ๆ
คุณสามารถรวมฟังก์ชัน regex เข้ากับฟังก์ชันอื่นๆ ใน Excel ได้ ตัวอย่างเช่น คุณสามารถรวมฟังก์ชัน REGEXTEST เข้ากับคำสั่ง IF ของ Excel และแสดงข้อความที่เหมาะสมตามผลลัพธ์
นี่คือตัวอย่างสูตร:
=IF(REGEXTEST(B3, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"), "This is a valid email address!", "The email address is invalid!")
สูตรนี้ใช้คำสั่ง IF เพื่อตรวจสอบว่าที่อยู่อีเมลที่ป้อนในเซลล์ B6 ถูกต้องหรือไม่ จากนั้นจะแสดงนี่คือที่อยู่อีเมลที่ถูกต้อง!หากเป็นจริงหรือที่อยู่อีเมลไม่ถูกต้อง!ถ้าเป็นเท็จ นอกจากนี้ คุณสามารถจับคู่สูตรนี้กับฟังก์ชัน FINDเพื่อค้นหาข้อมูลใน Excel ได้อย่างรวดเร็ว
รวมฟังก์ชัน REGEXTEST และฟังก์ชัน IF ใน Excel
นี่เป็นวิธีที่ดีในการเริ่มต้นใช้ RegEx ใน Excel กรณีการใช้งานและความเป็นไปได้ถูกจำกัดด้วยจินตนาการของคุณเท่านั้น