บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน SEARCH ใน Microsoft Excel
คำอธิบาย
ฟังก์ชัน SEARCH จะค้นหาสตริงข้อความหนึ่งภายในสตริงข้อความที่สอง และส่งกลับตัวเลขที่เป็นตําแหน่งเริ่มต้นของสตริงข้อความแรกจากอักขระแรกของสตริงข้อความที่สอง ตัวอย่างเช่น เมื่อต้องการค้นหาตําแหน่งของตัวอักษร "n" ในคําว่า "printer" คุณสามารถใช้ฟังก์ชันต่อไปนี้:
=SEARCH("n","printer")
ฟังก์ชันนี้ส่งกลับค่า 4 เนื่องจาก "n" เป็นตัวอักษรตัวที่ 4 ในคำว่า "printer"
คุณยังสามารถค้นหาคําต่างๆ ที่อยู่ภายในคําอื่นๆ ได้อีกด้วย ตัวอย่างเช่น ฟังก์ชัน
=SEARCH("base","database")
ส่งกลับ ค่า 5 เนื่องจากคําว่า "BASE" เริ่มต้นที่อักขระตัวที่ห้าของคําว่า "database" คุณสามารถใช้ SEARCH เพื่อกําหนดตําแหน่งของอักขระหรือสตริงข้อความภายในสตริงข้อความอื่น แล้วใช้ MID เพื่อส่งกลับข้อความ หรือใช้ REPLACE เพื่อเปลี่ยนข้อความ ฟังก์ชันเหล่านี้แสดงใน ตัวอย่าง 1 ในบทความนี้
ไวยากรณ์
SEARCH(find_text,within_text,[start_num])
ฟังก์ชัน SEARCH มีอาร์กิวเมนต์ดังนี้
- find_text จําเป็น ข้อความที่คุณต้องการจะค้นหา
- within_text จําเป็น ข้อความที่คุณต้องการค้นหาค่าของอาร์กิวเมนต์ find_text
- start_num ไม่บังคับ หมายเลขอักขระในอาร์กิวเมนต์ within_text ที่คุณต้องการเริ่มการค้นหา
ข้อสังเกต
- ฟังก์ชัน SEARCH ไม่ได้สนใจตัวพิมพ์ใหญ่-เล็ก ถ้าคุณต้องการทําการค้นหาแบบตรงตามตัวพิมพ์ใหญ่-เล็ก คุณสามารถใช้ค้นหาได้
- คุณสามารถใช้อักขระตัวแทน คือ เครื่องหมายคําถาม (?) และเครื่องหมายดอกจัน (*) ในอาร์กิวเมนต์ find_text ได้ เครื่องหมายคําถามตรงกับอักขระตัวเดียว เครื่องหมายดอกจันใช้แทนอักขระหลายตัวติดกัน ถ้าคุณต้องการค้นหาเครื่องหมายคําถามหรือดอกจันจริงๆ ให้พิมพ์ เครื่องหมายตัวหนอน (~) ไว้หน้าอักขระ
- ถ้าไม่พบค่าของ find_text ฟังก์ชันจะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
- ถ้าอาร์กิวเมนต์ start_num ถูกละไว้ จะถือว่ามีค่าเป็น 1
- ถ้า start_num มีค่าไม่มากกว่า 0 (ศูนย์) หรือมากกว่าความยาวของอาร์กิวเมนต์ within_text จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
- ใช้ start_num เพื่อข้ามอักขระตามจํานวนที่ระบุ ใช้ฟังก์ชัน SEARCH เป็นตัวอย่าง สมมติว่าคุณกําลังทํางานอยู่กับสตริงข้อความ "AYF0093 YoungMensApparel". ในการค้นหาตําแหน่งของ "Y" ตัวแรกในส่วนที่อธิบายของสตริงข้อความ ให้ตั้งค่า start_num ให้เท่ากับ 8 เพื่อไม่ให้ค้นหาส่วนที่มีหมายเลขลําดับประจําสินค้าของข้อความ (ในกรณีนี้คือ "AYF0093") ฟังก์ชัน SEARCH จะเริ่มดําเนินการค้นหาที่ตําแหน่งอักขระที่แปด ค้นหาอักขระที่ระบุในอาร์กิวเมนต์ find_text ที่ตําแหน่งถัดไป แล้วส่งกลับตัวเลข 9 ฟังก์ชัน SEARCH จะส่งกลับจํานวนอักขระจากจุดเริ่มต้นของอาร์กิวเมนต์ within_text เสมอ โดยจะนับอักขระที่คุณข้ามถ้าอาร์กิวเมนต์ start_num มีค่ามากกว่า 1
ตัวอย่าง
คัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้ และวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ สำหรับสูตรที่จะแสดงผลลัพธ์ ให้เลือกสูตร กด F2 แล้วกด Enter ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้
| ข้อมูล | ||
|---|---|---|
| คำสั่ง | ||
| Profit Margin | ||
| ระยะขอบ | ||
| The "boss" is here | ||
| สูตร | คำอธิบาย | ผลลัพธ์ |
| =SEARCH("e",A2,6) | ตำแหน่งของ "e" ตัวแรกในสตริงในเซลล์ A2 เริ่มต้นที่ตำแหน่งที่หก | 7 |
| =SEARCH(A4,A3) | ตำแหน่งของ "Margin" (สตริงที่ต้องการจะค้นหา คือ เซลล์ A4) ใน "Profit Margin" (เซลล์ที่ต้องการจะค้นหาคือ A3) | 8 |
| =REPLACE(A3,SEARCH(A4,A3),6,"Amount") | แทนที่ "Margin" ด้วย "Amount" โดยครั้งแรกจะค้นหาตำแหน่งของ "Margin" ในเซลล์ A3 จากนั้นแทนที่ตัวอักขระนั้นและตัวอักขระอีก 5 ตัวถัดไปด้วยสตริง "Amount" | Profit Amount |
| =MID(A3,SEARCH(" ",A3)+1,4) | ส่งกลับตัวอักขระสี่ตัวแรกที่อยู่หลังจากอักขระช่องว่างแรกใน "Profit Margin" (เซลล์ A3) | Marg |
| =SEARCH("""",A5) | ตำแหน่งของเครื่องหมายอัญประกาศตัวแรก (") ในเซลล์ A5 | 5 |
| =MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1) | ส่งกลับเฉพาะข้อความที่อยู่ภายในเครื่องหมายอัญประกาศในเซลล์ A5 | boss |
สำคัญ
- ฟังก์ชัน SEARCHB ไม่ได้รับการสนับสนุน
- ในเวิร์กบุ๊กที่ตั้งค่าเป็น ความเข้ากันได้เวอร์ชัน 2 การค้นหาได้ปรับปรุงลักษณะการทํางานกับคู่ตัวแทน โดยนับเป็นอักขระเดียวแทนที่จะเป็นสองตัว ตัวเลือกชุดรูปแบบ (มักใช้กับอีโมจิ) จะยังคงถูกนับเป็นอักขระแยกต่างหาก อ่านเพิ่มเติมที่นี่: มาตรฐาน Unicode