ตัวอย่าง RegEx ของ Excel: การใช้นิพจน์ทั่วไปในสูตร

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

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

เมื่อแรกเห็น Excel มีทุกสิ่งที่คุณต้องการสำหรับสตริงข้อความ กิจวัตร อืม… แล้ว Regular Expression ล่ะ? อ๊ะ ไม่มีฟังก์ชัน Regex ในตัวใน Excel แต่ไม่มีใครบอกว่าเราไม่สามารถสร้างนิพจน์ของเราเองได้ :)

    นิพจน์ทั่วไปคืออะไร

    นิพจน์ทั่วไป (หรือที่เรียกว่า regex หรือ regexp ) เป็นลำดับอักขระที่เข้ารหัสเป็นพิเศษซึ่งกำหนดรูปแบบการค้นหา เมื่อใช้รูปแบบดังกล่าว คุณสามารถค้นหาชุดอักขระที่ตรงกันในสตริงหรือตรวจสอบข้อมูลที่ป้อนเข้า หากคุณคุ้นเคยกับสัญลักษณ์ไวด์การ์ด คุณอาจคิดว่า regexes เป็นไวด์การ์ดเวอร์ชันขั้นสูง

    นิพจน์ทั่วไปมีไวยากรณ์ของตัวเองซึ่งประกอบด้วยอักขระพิเศษ ตัวดำเนินการ และโครงสร้าง ตัวอย่างเช่น [0-5] จับคู่ตัวเลขหลักเดียวตั้งแต่ 0 ถึง 5

    นิพจน์ทั่วไปใช้ในภาษาโปรแกรมต่างๆ รวมถึง JavaScript และ VBA อย่างหลังมีออบเจกต์ RegExp พิเศษ ซึ่งเราจะใช้เพื่อสร้างฟังก์ชันที่กำหนดเองของเรา

    Excel รองรับ regex หรือไม่

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

    =IF(RegExpMatch(A5, $A$2), "Yes", "No")

    สำหรับตัวอย่างสูตรเพิ่มเติม โปรดดู:

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

    ฟังก์ชัน Excel Regex Extract

    ฟังก์ชัน RegExpExtract จะค้นหาสตริงย่อยที่ตรงกับนิพจน์ทั่วไปและแยกข้อมูลที่ตรงกันทั้งหมดหรือ การจับคู่เฉพาะ

    RegExpExtract(ข้อความ รูปแบบ [instance_num], [match_case])

    ที่ไหน:

    • ข้อความ (จำเป็น) - สตริงข้อความที่จะค้นหา in.
    • รูปแบบ (จำเป็น) - นิพจน์ทั่วไปที่จะจับคู่
    • Instance_num (ไม่บังคับ) - หมายเลขซีเรียลที่ระบุอินสแตนซ์ใด สารสกัด. หากละเว้น จะคืนค่าการจับคู่ที่พบทั้งหมด (ค่าเริ่มต้น)
    • Match_case (ไม่บังคับ) - กำหนดว่าจะจับคู่ (จริงหรือละเว้น) หรือละเว้น (FALSE) ตัวพิมพ์ข้อความ

    คุณสามารถรับโค้ดของฟังก์ชันได้ที่นี่

    ตัวอย่าง: วิธีแยกสตริงโดยใช้นิพจน์ทั่วไป

    ยกตัวอย่างของเราเพิ่มเติมอีกเล็กน้อย เรามาแยกหมายเลขใบแจ้งหนี้กัน สำหรับสิ่งนี้ เราจะใช้ regex ง่ายๆ ที่จับคู่ตัวเลข 7 หลักใดก็ได้:

    รูปแบบ : \b\d{7}\b

    ใส่ รูปแบบใน A2 และคุณจะทำงานให้เสร็จได้ด้วยสูตรที่กะทัดรัดและสง่างามนี้:

    =RegExpExtract(A5, $A$2)

    หากรูปแบบตรงกัน สูตรจะแยกหมายเลขใบแจ้งหนี้ หากไม่พบรูปแบบที่ตรงกัน - ไม่มีอะไรถูกส่งกลับ

    สำหรับตัวอย่างเพิ่มเติม โปรดดู: วิธีแยกสตริงใน Excelโดยใช้ regex

    ฟังก์ชันแทนที่ Regex ของ Excel

    ฟังก์ชัน RegExpReplace จะแทนที่ค่าที่ตรงกับ regex ด้วยข้อความที่คุณระบุ

    RegExpReplace(ข้อความ รูปแบบ การแทนที่ , [instance_num], [match_case])

    ที่ไหน:

    • ข้อความ (จำเป็น) - สตริงข้อความที่จะค้นหา
    • รูปแบบ (จำเป็น) - นิพจน์ทั่วไปที่จะจับคู่
    • การแทนที่ (จำเป็น) - ข้อความที่จะแทนที่สตริงย่อยที่ตรงกันด้วย
    • Instance_num (ไม่บังคับ) - อินสแตนซ์ที่จะแทนที่ ค่าเริ่มต้นคือ "ตรงกันทั้งหมด"
    • Match_case (ไม่บังคับ) - ควบคุมว่าจะจับคู่ (จริงหรือเว้นไว้) หรือละเว้น (FALSE) ตัวพิมพ์ข้อความ

    โค้ดของฟังก์ชันมีอยู่ที่นี่

    ตัวอย่าง: วิธีแทนที่หรือลบสตริงโดยใช้ regexes

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

    ในตารางตัวอย่างของเรา หมายเลขบัตรทั้งหมดมี 16 หลัก ซึ่งเขียนเป็น 4 กลุ่มโดยคั่นด้วยช่องว่าง ในการค้นหา เราจำลองรูปแบบโดยใช้นิพจน์ทั่วไปนี้:

    รูปแบบ : \b\d{4} \d{4} \d{4} \d{4}\ b

    สำหรับการแทนที่ จะใช้สตริงต่อไปนี้:

    การแทนที่ : XXXX XXXX XXXXXXXX

    และนี่คือสูตรที่สมบูรณ์สำหรับ แทนที่ หมายเลขบัตรเครดิตด้วยข้อมูลที่ละเอียดอ่อน:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")

    ด้วย regex และข้อความแทนที่ในเซลล์ที่แยกกัน ( A2 และ B2) สูตรทำงานได้ดีเท่าๆ กัน:

    ใน Excel การ "ลบ" เป็นกรณีเฉพาะของ "การแทนที่" หากต้องการ ลบ หมายเลขบัตรเครดิต เพียงใช้สตริงว่าง ("") สำหรับอาร์กิวเมนต์ replacement :

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")

    <3

    เคล็ดลับ ในการรับบรรทัดว่างในผลลัพธ์ คุณสามารถใช้ฟังก์ชัน RegExpReplace อื่นดังที่แสดงในตัวอย่างนี้ วิธีลบบรรทัดว่างโดยใช้ regex

    สำหรับข้อมูลเพิ่มเติม โปรดดู:

    • วิธีแทนที่สตริงใน Excel โดยใช้ regex
    • วิธีลบสตริงโดยใช้ regex
    • วิธีตัดช่องว่างโดยใช้ regexs

    เครื่องมือ Regex เพื่อจับคู่ แยก แทนที่และลบสตริงย่อย

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

    ไม่เหมือนกับฟังก์ชัน VBA ที่กล่าวถึงข้างต้น ฟังก์ชันของ Ultimate Suite นั้นใช้ .NET ซึ่งมีข้อดีหลักสองประการ:

    1. คุณสามารถใช้นิพจน์ทั่วไปในสมุดงาน .xlsx ปกติโดยไม่ต้องเพิ่มโค้ด VBA ใดๆ และไม่ต้องบันทึกเป็นไฟล์ที่เปิดใช้งานมาโคร
    2. กลไก .NET Regex รองรับคลาสสิกที่มีคุณลักษณะครบถ้วนนิพจน์ทั่วไป ซึ่งช่วยให้คุณสร้างรูปแบบที่ซับซ้อนมากขึ้น

    วิธีใช้ Regex ใน Excel

    เมื่อติดตั้ง Ultimate Suite แล้ว การใช้นิพจน์ทั่วไปใน Excel นั้นง่ายเหมือนสองขั้นตอนนี้ :

    1. บนแท็บ Ablebits Data ในกลุ่ม Text ให้คลิก Regex Tools .

    2. ในบานหน้าต่าง Regex Tools ให้ทำดังต่อไปนี้:
      • เลือกแหล่งข้อมูล
      • ป้อนรูปแบบ regex ของคุณ
      • เลือกตัวเลือกที่ต้องการ: จับคู่ , ดึงข้อมูล , ลบออก หรือ แทนที่ .
      • เพื่อให้ได้ผลลัพธ์เป็น สูตรและไม่ใช่ค่า ให้เลือกช่องทำเครื่องหมาย แทรกเป็นสูตร
      • กดปุ่มดำเนินการ

      ตัวอย่างเช่น หากต้องการลบหมายเลขบัตรเครดิตออกจากเซลล์ A2:A6 เรากำหนดการตั้งค่าเหล่านี้:

    ใน 3 ครั้ง ฟังก์ชัน AblebitsRegex จะถูกแทรกในคอลัมน์ใหม่ทางด้านขวาของต้นฉบับของคุณ ข้อมูล. ในกรณีของเรา สูตรคือ:

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")

    เมื่อมีสูตรแล้ว คุณสามารถแก้ไข คัดลอก หรือย้ายได้เหมือนสูตรทั่วไป

    วิธีแทรกสูตร Regex โดยตรงในเซลล์

    ฟังก์ชัน AblebitsRegex ยังสามารถแทรกลงในเซลล์ได้โดยตรงโดยไม่ต้องใช้อินเทอร์เฟซของ Add-in โดยมีวิธีการดังนี้:

    1. คลิกปุ่ม fx บนแถบสูตรหรือ แทรกฟังก์ชัน บนแท็บ สูตร
    2. ในกล่องโต้ตอบ แทรกฟังก์ชัน เลือกกล่องโต้ตอบ AblebitsUDFs หมวดหมู่ เลือกฟังก์ชันที่สนใจ แล้วคลิก ตกลง

    3. กำหนดอาร์กิวเมนต์ของฟังก์ชันตามปกติ แล้วคลิก ตกลง เสร็จแล้ว!

    สำหรับข้อมูลเพิ่มเติม โปรดดูเครื่องมือ Regex สำหรับ Excel

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

    ดาวน์โหลดได้

    Excel Regex - ตัวอย่างสูตร (ไฟล์ .xlsm)

    Ultimate Suite - รุ่นทดลอง (ไฟล์ .exe)

    หรือ .NET) หรือติดตั้งเครื่องมือของบุคคลที่สามที่สนับสนุน regexes

    ข้อมูลสรุปเกี่ยวกับ Regex ของ Excel

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

    ด้านล่างนี้เรามีข้อมูลอ้างอิงโดยย่อเกี่ยวกับรูปแบบ RegEx หลักที่จะช่วยให้คุณเข้าใจพื้นฐาน นอกจากนี้ยังอาจใช้เป็นข้อมูลสรุปเมื่อศึกษาตัวอย่างเพิ่มเติม

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

    อักขระ

    สิ่งเหล่านี้ เป็นรูปแบบที่ใช้บ่อยที่สุดในการจับคู่อักขระบางตัว

    <14
    รูปแบบ คำอธิบาย ตัวอย่าง ตรงกัน
    . อักขระตัวแทน: จับคู่อักขระเดี่ยวใดๆ ยกเว้นตัวแบ่งบรรทัด .ot จุด , hot , pot , @ot
    \d อักขระหลัก: หลักเดียวใดๆ จาก 0 ถึง 9 \d ใน a1b จับคู่ 1
    \D อักขระใดๆ ที่ไม่ใช่ตัวเลข \D ใน a1b ให้จับคู่ a และ b<2
    \s อักขระช่องว่าง: เว้นวรรค แท็บ ขึ้นบรรทัดใหม่ และขึ้นบรรทัดใหม่ .\s. ใน 3 เซนต์ ตรงกับ 3 ค
    \S ใดๆอักขระที่ไม่ใช่ช่องว่าง \S+ ใน 30 cents ตรงกับ 30 และ cents
    \w อักขระของคำ: ตัวอักษร ASCII ใดๆ ตัวเลขหรือขีดล่าง \w+ ใน 5_cats*** , จับคู่ 5_cats
    \W อักขระใดๆ ที่ไม่ใช่อักขระพยัญชนะผสมตัวเลขหรือเครื่องหมายขีดล่าง \W+ ใน 5_cats*** จับคู่ ***
    \t แท็บ
    \n ขึ้นบรรทัดใหม่ \n\d+ ในสองบรรทัด สตริงด้านล่าง จับคู่แมว 10

    5 ตัว

    สุนัข 10 ตัว

    \ หลีกความหมายพิเศษของอักขระ ดังนั้นคุณจึงสามารถ ค้นหา \.

    \w+\.

    หลีกจุดเพื่อให้คุณสามารถหาตัวอักษร "." อักขระในสตริง

    นาย , นาง , ศ.

    คลาสอักขระ

    เมื่อใช้รูปแบบเหล่านี้ คุณสามารถจับคู่องค์ประกอบของชุดอักขระต่างๆ ได้

    รูปแบบ คำอธิบาย ตัวอย่าง จับคู่
    [ตัวอักษร] จับคู่อักขระตัวเดียวในวงเล็บ d[oi]g<15 สุนัข และ ขุด
    [^ตัวอักษร] จับคู่อักขระตัวเดียวใดๆ ที่ไม่อยู่ในวงเล็บ d[^oi]g ตรงกัน dag, dug , d1g

    ไม่ตรงกับ dog และ dig

    [จาก–ถึง] จับคู่อักขระใดๆ ในช่วงระหว่างวงเล็บเหลี่ยม [0-9]

    [a-z]

    [A-Z]

    เลขหลักเดียวใดๆ ตั้งแต่ 0 ถึง 9

    อักษรตัวพิมพ์เล็กใดๆ

    อักษรตัวพิมพ์ใหญ่ใดๆ ก็ตาม

    ตัวระบุ

    ตัวระบุปริมาณเป็นนิพจน์พิเศษที่ระบุจำนวนอักขระที่จะจับคู่ quantifier ใช้กับอักขระก่อนหน้าเสมอ

    รูปแบบ คำอธิบาย ตัวอย่าง ตรงกัน
    * ไม่มีเหตุการณ์หรือมากกว่า 1a* 1, 1a , 1aa, 1aaa ฯลฯ
    + หนึ่งเหตุการณ์ขึ้นไป po+ ใน หม้อ จับคู่ po

    ใน ไม่ดี จับคู่ poo

    ? ไม่มีหรือหนึ่งครั้ง roa?d ถนน คัน
    *? ศูนย์ หรือมากกว่า แต่น้อยกว่าที่เป็นไปได้ 1a*? ใน 1a , 1aa และ 1aaa ตรงกัน 1a
    +? หนึ่งรายการขึ้นไป แต่น้อยกว่าที่เป็นไปได้ po+? ใน หม้อ และ แย่ จับคู่ po
    ?? ศูนย์หรือหนึ่งรายการ แต่น้อยที่สุดเท่าที่จะเป็นไปได้ roa?? ใน road และ rod ให้จับคู่ ro
    {n} ตรงกับรูปแบบก่อนหน้า n ครั้ง \d{3} ตรงทั้งหมด 3 หลัก
    {น ,} จับคู่รูปแบบก่อนหน้า n ครั้งขึ้นไป \d{3,} 3 หลักขึ้นไป
    {n,m} ตรงกับนำหน้ารูปแบบระหว่าง n และ m ครั้ง \d{3,5} ตั้งแต่ 3 ถึง 5 หลัก

    การจัดกลุ่ม

    โครงสร้างการจัดกลุ่มใช้เพื่อจับสตริงย่อยจากสตริงต้นทาง ดังนั้นคุณจึงสามารถดำเนินการบางอย่างกับมันได้

    ไวยากรณ์ คำอธิบาย ตัวอย่าง การจับคู่
    (รูปแบบ) การจับกลุ่ม: จับสตริงย่อยที่ตรงกันและกำหนดเป็นเลขลำดับ (\d+) ใน แมว 5 ตัวและสุนัข 10 ตัว จับ 5 (กลุ่ม 1) และ 10 (กลุ่ม 2)
    (?:pattern) กลุ่มที่ไม่จับภาพ: จับคู่กลุ่มแต่ไม่ได้จับภาพ (\d+)(?: สุนัข) ใน แมว 5 ตัวและสุนัข 10 ตัว จับ 10
    \1 เนื้อหาของกลุ่ม 1 (\d+)\+(\d+)=\2\+\1 จับคู่ 5+10=10+5 และจับ 5 และ 10 ซึ่งอยู่ในกลุ่มจับภาพ
    \2 เนื้อหาของกลุ่ม 2

    จุดยึด

    จุดยึดระบุตำแหน่งในสตริงอินพุตที่ต้องการค้นหา การแข่งขัน

    จุดยึด คำอธิบาย ตัวอย่าง การแข่งขัน
    ^ จุดเริ่มต้นของสตริง

    หมายเหตุ: [^ในวงเล็บเหลี่ยม] หมายถึง "ไม่ใช่"

    ^\d+ ตัวเลขจำนวนเท่าใดก็ได้ที่ เริ่มต้นสตริง

    ใน แมว 5 ตัวและสุนัข 10 ตัว จับคู่ 5

    $ จุดสิ้นสุดของสตริง \d+$ จำนวนหลักใดๆ ที่ต่อท้ายสตริง

    ใน 10Y

    (?<=) การมองในแง่บวก (?<=Y)X ตรงกับนิพจน์ X เมื่อนำหน้าด้วย Y (เช่น หากมี Y อยู่หลัง X)
    (? มองเชิงลบ (? จับคู่นิพจน์ X เมื่อไม่ได้นำหน้าด้วย Y

    ตอนนี้คุณทราบข้อมูลสำคัญแล้ว มาดูส่วนที่น่าสนใจที่สุดกันโดยใช้ regexes บนข้อมูลจริงเพื่อแยกวิเคราะห์สตริงและค้นหาข้อมูลที่จำเป็น หากคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับไวยากรณ์ คู่มือ Microsoft เกี่ยวกับ Regular Expression Language อาจเป็นประโยชน์

    ฟังก์ชัน RegEx ที่กำหนดเองสำหรับ Excel

    ตามที่กล่าวไว้แล้ว Microsoft Excel ไม่มีฟังก์ชัน RegEx ในตัว หากต้องการเปิดใช้งาน Regular Expression เราได้สร้างฟังก์ชัน VBA แบบกำหนดเอง 3 ฟังก์ชัน (หรือเรียกอีกอย่างว่าฟังก์ชันที่ผู้ใช้กำหนดเอง) คุณสามารถคัดลอกโค้ดจากหน้าที่เชื่อมโยงด้านล่างหรือจากตัวอย่างของเรา สมุดงาน แล้ววางในไฟล์ Excel ของคุณเอง

    ฟังก์ชัน VBA RegExp ทำงานอย่างไร

    ส่วนนี้จะอธิบายถึงกลไกภายในและอาจรวมถึง ให้ผู้ที่ต้องการทราบว่าเกิดอะไรขึ้นที่แบ็กเอนด์

    หากต้องการเริ่มใช้นิพจน์ทั่วไปใน VBA คุณต้องเปิดใช้งานไลบรารีอ้างอิงวัตถุ RegEx หรือใช้ฟังก์ชัน CreateObject เพื่อช่วยให้คุณไม่ต้องยุ่งยากในการตั้งค่าการอ้างอิงในตัวแก้ไข VBA เราจึงเลือกวิธีหลัง

    วัตถุ RegExp มีคุณสมบัติ 4 ประการ:

    • รูปแบบ - คือ รูปแบบ เพื่อจับคู่ในสตริงอินพุต
    • ทั่วโลก - ควบคุมว่าจะค้นหาการจับคู่ทั้งหมดในสตริงอินพุตหรือเฉพาะรายการแรก ในฟังก์ชันของเรา ตั้งค่าเป็น True เพื่อรับ ตรงกันทั้งหมด
    • หลายบรรทัด - กำหนดว่าจะจับคู่รูปแบบข้ามตัวแบ่งบรรทัดในสตริงหลายบรรทัดหรือเฉพาะ ในบรรทัดแรก ในรหัสของเรา มันถูกตั้งค่าเป็น True เพื่อค้นหา ในทุกบรรทัด
    • IgnoreCase - กำหนดว่านิพจน์ทั่วไปคำนึงถึงตัวพิมพ์เล็กและใหญ่ (ค่าเริ่มต้น) หรือตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ไม่รู้สึก (ตั้งค่าเป็น True) ในกรณีของเรา ขึ้นอยู่กับว่าคุณกำหนดค่าพารามิเตอร์ตัวเลือก match_case อย่างไร ตามค่าเริ่มต้น ฟังก์ชันทั้งหมดจะ คำนึงถึงตัวพิมพ์เล็กและใหญ่ .

    ข้อจำกัดของ VBA RegExp

    Excel VBA ใช้รูปแบบ regex ที่จำเป็น แต่ขาดคุณสมบัติขั้นสูงหลายอย่าง พร้อมใช้งานใน .NET, Perl, Java และเครื่องมือ regex อื่นๆ ตัวอย่างเช่น VBA RegExp ไม่รองรับตัวแก้ไขแบบอินไลน์ เช่น (?i) สำหรับการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ หรือ (?m) สำหรับโหมดหลายบรรทัด, lookbehinds, คลาส POSIX เป็นต้น

    Excel Regex ฟังก์ชันจับคู่

    ฟังก์ชัน RegExpMatch ค้นหาสตริงอินพุตสำหรับข้อความที่ตรงกับนิพจน์ทั่วไป และส่งกลับค่า TRUE หากพบค่าที่ตรงกัน หากพบค่าที่ตรงกัน FALSE

    RegExpMatch(text, pattern, [ match_case])

    ตำแหน่ง:

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

    โค้ดของฟังก์ชันอยู่ที่นี่

    ตัวอย่าง: วิธีใช้นิพจน์ทั่วไปเพื่อจับคู่สตริง

    ในชุดข้อมูลด้านล่าง สมมติว่าคุณต้องการ เพื่อระบุรายการที่มีรหัส SKU

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

    รูปแบบ : \b[A-Z]{2}-\d{4}\b

    โดยที่ [A-Z]{2} หมายถึงอักษรตัวพิมพ์ใหญ่ 2 ตัวจาก A ถึง Z และ \d{4 } หมายถึงตัวเลข 4 หลักใดๆ จาก 0 ถึง 9 ขอบเขตของคำ \b ระบุว่า SKU เป็นคำที่แยกต่างหากและไม่ได้เป็นส่วนหนึ่งของสตริงที่ใหญ่กว่า

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

    สมมติว่าสตริงต้นฉบับอยู่ใน A5 สูตรจะเป็นดังนี้:

    =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")

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

    =RegExpMatch(A5, $A$2)

    หากต้องการแสดงป้ายข้อความของคุณเองแทน TRUE และ FALSE ให้ซ้อน RegExpMatch ในฟังก์ชัน IF และ ระบุข้อความที่ต้องการใน value_if_true และ value_if_false บวก 5 ให้ 15 จับคู่ 15

    \b ขอบเขตของคำ \bjoy\b จับคู่ joy เป็นคำแยกต่างหาก แต่ไม่อยู่ใน enjoyable . \B ไม่ใช่ขอบเขตของคำ \Bjoy\B ตรงกับ joy ใน enjoyable แต่ไม่ใช่คำที่แยกกัน

    โครงสร้างการสลับ (OR)

    ตัวดำเนินการการสลับเปิดใช้งานตรรกะ OR ดังนั้นคุณจึงสามารถจับคู่องค์ประกอบนี้หรือองค์ประกอบนั้น

    สร้าง คำอธิบาย ตัวอย่าง ตรงกัน

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