ขณะทำงานใน Excel บางครั้งเราต้องค้นหารูปแบบเฉพาะด้วย Regular Expressions (Regex) แต่ Excel ไม่รองรับ Regex โดยตรง ทำให้เกิดความยุ่งยาก วันนี้จะแชร์วิธีนับ Regex ด้วย COUNTIF ใน Excel
นับ Regex ด้วย COUNTIF ใน Excel: ขั้นตอนโดยละเอียด
ต่อไปนี้คือขั้นตอนโดยละเอียดสำหรับการนับ Regex ด้วย COUNTIF ใน Excel
ขั้นตอนที่ 1: เตรียมชุดข้อมูลสำหรับ Regex Match
สมมติเรามีชุดข้อมูล รายชื่อติดต่อ ต้องการตรวจสอบว่ามีเบอร์โทรศัพท์หรือไม่

ขั้นตอนที่ 2: สร้าง Custom Helper Function ด้วย VBA
ในส่วนนี้จะใช้ VBA สร้างฟังก์ชันช่วยเหลือชื่อ RegExMatch ทำตามขั้นตอน:
- กด ALT+F11 เพื่อเปิด Microsoft Visual Basic for Applications
- เลือก Module จากเมนู Insert

- วางโค้ดต่อไปนี้ในโมดูล แล้วบันทึก:
Public Function RegExMatch(input_reg_range As Range, reg_pattern As String, Optional reg_match As Boolean = True) As Variant
Dim WX() As Variant
Dim Input_Row, Input_Col, cnt_Rows, cnt_Cols As Long
On Error GoTo ErrHandl
RegExMatch = WX
Set Wregex = CreateObject("VBScript.RegExp")
Wregex.pattern = reg_pattern
Wregex.Global = True
Wregex.MultiLine = True
If True = reg_match Then
Wregex.ignorecase = False
Else
Wregex.ignorecase = True
End If
cnt_Rows = input_reg_range.Rows.Count
cnt_Cols = input_reg_range.Columns.Count
ReDim WX(1 To cnt_Rows, 1 To cnt_Cols)
For Input_Row = 1 To cnt_Rows
For Input_Col = 1 To cnt_Cols
WX(Input_Row, Input_Col) = Wregex.Test(input_reg_range.Cells(Input_Row, Input_Col).Value)
Next
Next
RegExMatch = WX
Exit Function
ErrHandl:
RegExMatch = CVErr(xlErrValue)
End Function

- ใส่รูปแบบ Regex ต่อไปนี้ในชีท (เพราะ Excel ไม่รองรับ Regex โดยตรง):
(\(\d{3}\)|\d{3})[-\.\s]?\d{3}[-\.\s]?\d{4}\b

อ่านเพิ่มเติม: วิธีค้นหา RegEx Patterns ใน Excel
ขั้นตอนที่ 3: ใช้สูตรค้นหา Regex และนับ
เมื่อสร้างฟังก์ชัน RegExMatch แล้ว ตอนนี้จะนำไปใช้ค้นหาค่าที่ตรงกับรูปแบบ
- เลือก เซลล์ (C7) ใส่สูตรด้านล่าง แล้วลากลง:
ฟังก์ชัน RegExMatch จะตรวจสอบว่าส่วนใดของสตริงตรงกับรูปแบบที่กำหนด

- กด ENTER เพื่อดูผลลัพธ์

- ลาก Fill Handle ลงไปเติมคอลัมน์

- นับเซลล์ที่มีเบอร์โทรศัพท์ด้วยสูตรใน เซลล์ C15:
ฟังก์ชัน COUNTIF นับเซลล์ที่มีเงื่อนไข TRUE จากช่วง C7:C13

- กด ENTER เพื่อได้ผลลัพธ์
- นับ Regex ด้วย COUNTIF ใน Excel สำเร็จแล้ว

อ่านเพิ่มเติม: วิธีทำ Pattern Matching ใน Excel
ดาวน์โหลดสมุดงานฝึกหัด
ดาวน์โหลดไฟล์ฝึกหัดเพื่อทดลองทำตามบทความ
สรุป
บทความนี้ครอบคลุมวิธีนับ Regex ด้วย COUNTIF ใน Excel ลองดาวน์โหลดไฟล์ฝึกหัดมาลองทำเอง หวังว่าจะมีประโยชน์ กรุณาแชร์ประสบการณ์ในส่วนความคิดเห็น
บทความเกี่ยวข้อง
- วิธีใช้ REGEX โดยไม่ใช้ VBA ใน Excel
- วิธีใช้ REGEX จับคู่รูปแบบใน Excel
- วิธีกรองข้อมูลด้วย RegEx ใน Excel
- วิธี Find & Replace ด้วย Regex ใน Excel
- วิธีค้นหาและแทนที่ RegEx Patterns ใน Excel
- Data Validation ด้วย RegEx ใน Excel
<< กลับไปยัง RegEx in Excel | String Manipulation | Learn Excel
รับแบบฝึกหัด Excel ขั้นสูงพร้อมเฉลยฟรี!