คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

SEARCH

ข้อความระดับกลางทุกเวอร์ชัน

อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด

SEARCH คืออะไร

หาว่าข้อความที่ต้องการอยู่ตัวอักษรที่เท่าไร ไม่สนตัวพิมพ์เล็กใหญ่ รองรับ wildcard และใช้ตรวจว่าข้อความมีคำนั้นไหม

ใช้เมื่อไหร่

  • หาคำในข้อความที่พิมพ์มาไม่เหมือนกัน เช่น INV, inv หรือ Inv
  • ดึงเลขที่เอกสารที่อยู่คนละตำแหน่งในข้อความ เช่น ข้อความแจ้งโอนเงิน
  • คัดแถวที่มีคำที่ต้องการ เช่น ข้อความที่ร้านค้าขอใบเสร็จ

รูปแบบสูตร

=SEARCH(find_text, within_text, [start_num])

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
find_textจำเป็นข้อความที่ต้องการหา ไม่สนตัวพิมพ์เล็กใหญ่ ใช้ ? และ * ได้
within_textจำเป็นข้อความหรือช่องที่ต้องการค้นหา
[start_num]ไม่บังคับตัวอักษรที่เริ่มค้น ถ้าไม่ใส่ = 1 (เริ่มจากตัวแรก)

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

ร้านค้าพิมพ์เลขที่บิลมาเป็น INV, inv หรือ Inv เทียบตำแหน่งที่ SEARCH (C) กับ FIND (D) หาเจอ

C6
=SEARCH("INV",B6)
ข้อความที่หา และข้อความที่ค้น หา "INV" ใน B6 = "มินิมาร์ทบ้านสวน·ค่าสินค้า·inv-2025-0415" ยาว 40 ตัว (· คือช่องว่าง 1 ช่อง)
แถวABCDEF
4วันที่ข้อความแจ้งโอนใช้ SEARCHใช้ FIND
51/12/2025โอนชำระ INV-2025-0412 ร้านเจริญพาณิชย์99
62/12/2025มินิมาร์ทบ้านสวน ค่าสินค้า inv-2025-041528#VALUE!
73/12/2025ร้านป้าแดง จ่ายบิล Inv-2025-0419 ขอใบเสร็จด้วย20#VALUE!
84/12/2025ค่าสินค้าเดือน พ.ย. ไม่มีเลขที่บิล#VALUE!#VALUE!
95/12/2025ชำระ INV-2025-0433 และ INV-2025-043466
108/12/2025โอนแล้ว inv-2025-0440 ได้รับยอดหรือยัง?9#VALUE!
119/12/2025INV-2025-0452 ส่งใบเสร็จทางอีเมลได้ไหม?11
1210/12/2025มัดจำสินค้าล็อตใหม่ ร้านลุงชัย#VALUE!#VALUE!
13
14
15
16
17
18
19
B6
ช่องกรอกและผลลัพธ์
แถวที่ SEARCH เจอ I5
แถวที่ FIND เจอ I6
ขั้นตอนการคำนวณ (3)
คลิกช่องสีเขียวมะนาวในตารางเพื่อดูสูตรของแถวนั้น · คลิกตัวเลขเพื่อแก้ค่า · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 ไม่สนตัวพิมพ์” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • C ใช้ SEARCH ไม่สนตัวพิมพ์เล็กใหญ่ จึงเจอทั้ง INV, inv และ Inv ส่วน D ใช้ FIND เจอเฉพาะ INV ตัวพิมพ์ใหญ่
  • ตำแหน่งนับทุกตัวอักษร รวมช่องว่าง สระ และวรรณยุกต์ เช่น โอนชำระ มี 7 ตัว INV ในแถว 5 จึงเริ่มที่ตัวที่ 9
  • แถว 8 และแถว 12 ไม่มีคำว่า INV จึงได้ #VALUE! ทั้งสองฟังก์ชัน ดูวิธีจัดการในตัวอย่าง 2 และ 3

ตัวอย่างทั้งหมด 4 แบบ

  1. 1หาคำโดยไม่สนตัวพิมพ์เล็กใหญ่ · ร้านค้าพิมพ์เลขที่บิลมาเป็น INV, inv หรือ Inv เทียบตำแหน่งที่ SEARCH (C) กับ FIND (D) หาเจอ
  2. 2ดึงเลขที่ใบแจ้งหนี้ออกจากข้อความแจ้งโอน · SEARCH หาตำแหน่งเริ่มของ INV- แล้ว MID ตัดจากตรงนั้น 13 ตัว ได้เลขที่ใบแจ้งหนี้ ไม่ว่าจะอยู่ตรงไหนของข้อความ
  3. 3ตรวจว่าข้อความมีคำที่ต้องการไหม · คัดข้อความที่ร้านค้าขอใบเสร็จ: SEARCH หาคำใน I4 แล้ว ISNUMBER เปลี่ยนผลเป็น TRUE หรือ FALSE ให้อ่านง่ายและนับต่อได้
  4. 4wildcard ? กับ * และการหาเครื่องหมาย ? จริง · ? แทนตัวอักษรใดก็ได้ 1 ตัว * แทนกี่ตัวก็ได้ ถ้าต้องการหาเครื่องหมาย ? หรือ * จริง ให้ใส่ ~ นำหน้า

ข้อผิดพลาดที่พบบ่อย

#VALUE!สาเหตุ: ไม่พบ find_text ในข้อความแก้: ครอบด้วย IFERROR หรือใช้ ISNUMBER(SEARCH(…)) ให้ได้ TRUE/FALSE
ได้ 1 ทุกแถวสาเหตุ: หา ? หรือ * โดยไม่ใส่ ~ จึงกลายเป็น wildcardแก้: ใส่ ~ นำหน้า เช่น =SEARCH("~?",B5)
#VALUE! ทั้งที่มีคำนั้นสาเหตุ: start_num เป็น 0 ติดลบ หรือเกินความยาวข้อความ หรือคำที่หาอยู่ก่อนตำแหน่ง start_num เช่น หา inv ตัวที่ 2 ในข้อความที่มี inv ตัวเดียวแก้: ใส่ start_num ตั้งแต่ 1 ถึง LEN(ข้อความ) ตรวจว่าหลังตำแหน่งนั้นยังมีคำที่หาอยู่ หรือครอบด้วย IFERROR
ได้ TRUE ทุกแถวสาเหตุ: ช่องคำที่หาว่าง SEARCH จึงได้ 1 ทุกแถว เพราะข้อความว่างถือว่าเจอที่ตัวแรกเสมอแก้: ตรวจช่องคำที่หาก่อน เช่น =IF($I$4="",FALSE,ISNUMBER(SEARCH($I$4,B5)))
เจอคำที่ไม่ได้ตั้งใจสาเหตุ: คำที่หาซ้อนอยู่ในคำอื่น เช่น น้ำ อยู่ใน น้ำยาล้างจานแก้: หาให้เจาะจงขึ้น เช่น ใส่ตัวคั่นด้วย INV- แทน INV

เคล็ดลับจากห้องเรียน

ถ้าตัวพิมพ์เล็กใหญ่ต้องตรงกันด้วย ใช้ FIND แทน SEARCH
นับแถวที่มีคำนี้ในช่วง: =COUNTIF(B5:B12,"*ใบเสร็จ*") หรือ =SUMPRODUCT(--ISNUMBER(SEARCH("ใบเสร็จ",B5:B12)))
SEARCH คืนตำแหน่งแรกที่เจอ ถ้ามีหลายจุด ใช้ start_num หาจุดถัดไป

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
SEARCH

SEARCH ใช้ได้ทุกเวอร์ชันที่ยังใช้กันอยู่ จึงไม่ต้องมีสูตรทางเลือก

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
SEARCHหาตำแหน่ง ไม่สนตัวพิมพ์ และใช้ wildcard ได้=SEARCH("INV-",B5)
FINDหาตำแหน่ง แบบตัวพิมพ์เล็กใหญ่ต้องตรง=FIND("INV-",B5)
ISNUMBER + SEARCHได้ TRUE หรือ FALSE ว่ามีคำนี้ไหม=ISNUMBER(SEARCH("ใบเสร็จ",B5))
COUNTIF + *นับว่ามีกี่แถวที่มีคำนี้=COUNTIF(B5:B12,"*ใบเสร็จ*")

ใน Power BI ใช้อะไร

SEARCH มีใน DAX ถ้าแค่ต้องรู้ว่ามีคำนั้นหรือไม่ใช้ CONTAINSSTRING ได้ TRUE/FALSE

ไฟล์ฝึก SEARCH

9Expert-SEARCH-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 26 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 ไม่สนตัวพิมพ์2 ดึงเลขที่บิล3 มีคำนี้ไหม4 Wildcardแบบฝึกหัดเฉลยสรุปย่อ

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1ตำแหน่งของ inv ในข้อความแถว 7
  2. ข้อ 2เลขที่ใบแจ้งหนี้ 13 ตัว (เริ่มที่ inv) ในข้อความแถว 8
  3. ข้อ 3ข้อความแถว 9 มีคำว่า inv ไหม ถ้ามีแสดง มี ถ้าไม่มีแสดง ไม่มี
  4. ข้อ 4ตำแหน่งของ inv ตัวที่สองในข้อความแถว 10
  5. ข้อ 5ตำแหน่งของเครื่องหมาย ? ในข้อความแถว 11 (เครื่องหมาย ? จริง ไม่ใช่ wildcard)

วิดีโอประกอบ

คลิปเรื่อง SEARCH จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. =SEARCH("inv","ชำระ INV-2025-0412") ได้เท่าไร

2. ต้องการหาเครื่องหมาย ? ในข้อความ เขียน find_text อย่างไร

3. ถ้าหาไม่พบ SEARCH ให้ผลอะไร

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม