บทความนี้จะอธิบายถึงไวยากรณ์ของสูตรและการใช้ฟังก์ชัน SEARCH และ SEARCHB ใน Microsoft Excel
คำอธิบาย
ฟังก์ชัน SEARCH และ SEARCHB จะค้นหาสตริงข้อความหนึ่งภายในสตริงข้อความที่สอง และส่งกลับหมายเลขของตําแหน่งเริ่มต้นของสตริงข้อความแรกจากอักขระแรกของสตริงข้อความที่สอง ตัวอย่างเช่น เมื่อต้องการค้นหาตําแหน่งของตัวอักษร "n" ในคําว่า "printer" คุณสามารถใช้ฟังก์ชันต่อไปนี้:
=SEARCH("n","printer")
ฟังก์ชันนี้ส่งกลับค่า 4 เนื่องจาก "n" เป็นตัวอักษรตัวที่ 4 ในคำว่า "printer"
คุณยังสามารถค้นหาคําภายในคําอื่นๆ ได้ ตัวอย่างเช่น ฟังก์ชัน
=SEARCH("base","database")
ส่งกลับ ค่า 5 เนื่องจากคําว่า "base" เริ่มต้นที่อักขระตัวที่ห้าของคําว่า "database" คุณสามารถใช้ฟังก์ชัน SEARCH และ SEARCHB เพื่อกําหนดตําแหน่งของอักขระหรือสตริงข้อความภายในสตริงข้อความอื่น แล้วใช้ฟังก์ชัน MID และ MIDB เพื่อส่งกลับข้อความ หรือใช้ฟังก์ชัน REPLACE และ REPLACEB เพื่อเปลี่ยนข้อความ ฟังก์ชันเหล่านี้แสดงในตัวอย่างที่ 1 ในบทความนี้
สิ่งสำคัญ:
-
ฟังก์ชันเหล่านี้อาจไม่พร้อมใช้งานในบางภาษา
-
SEARCHB จะนับ 2 ไบต์ต่ออักขระเมื่อภาษา DBCS ถูกตั้งค่าเป็นภาษาเริ่มต้นเท่านั้น มิฉะนั้น SEARCHB จะทํางานเหมือนกับ SEARCH โดยนับ 1 ไบต์ต่ออักขระ
ภาษาที่สนับสนุน DBCS นั้นได้แก่ ญี่ปุ่น จีน (ประยุกต์) จีน (ดั้งเดิม) และเกาหลี
ไวยากรณ์
SEARCH(find_text,within_text,[start_num])
SEARCHB(find_text,within_text,[start_num])
ฟังก์ชัน SEARCH และ SEARCHB มีอาร์กิวเมนต์ดังนี้
-
find_text จำเป็น ข้อความที่คุณต้องการค้นหา
-
within_text จำเป็น ข้อความที่คุณต้องการค้นหาค่าของอาร์กิวเมนต์ find_text
-
start_num ไม่จำเป็น หมายเลขอักขระในอาร์กิวเมนต์ within_text ที่คุณต้องการเริ่มการค้นหา
ข้อสังเกต
-
ฟังก์ชัน SEARCH และ SEARCHB ไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก ถ้าคุณต้องการทําการค้นหาแบบตรงตามตัวพิมพ์ใหญ่-เล็ก คุณสามารถใช้ FIND และ FINDB ได้
-
คุณสามารถใช้อักขระตัวแทน เครื่องหมายคําถาม (?) และเครื่องหมายดอกจัน (*) ในอาร์กิวเมนต์ find_text เครื่องหมายคําถามจะตรงกับอักขระตัวเดียว เครื่องหมายดอกจันใช้แทนอักขระหลายตัวตามลําดับ ถ้าคุณต้องการค้นหาเครื่องหมายคําถามหรือดอกจันจริงๆ ให้พิมพ์เครื่องหมายตัวหนอน (~) ไว้หน้าอักขระ
-
ถ้าไม่พบค่าของ find_text จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
ถ้าอาร์กิวเมนต์ start_num ถูกละไว้ จะถือว่ามีค่าเป็น 1
-
ถ้า start_num มีค่าไม่มากกว่า 0 (ศูนย์) หรือมากกว่าความยาวของอาร์กิวเมนต์ within_text จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
ใช้ start_num เพื่อข้ามจํานวนอักขระที่ระบุ สมมติว่าคุณกําลังทํางานกับสตริงข้อความ "AYF0093 โดยใช้ฟังก์ชัน SEARCH เป็นตัวอย่าง 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 |