บทความนี้จะอธิบายถึงไวยากรณ์ของสูตรและการใช้ฟังก์ชัน SEARCH และ SEARCHB ใน Microsoft Excel
คำอธิบาย
ฟังก์ชัน SEARCH และ SEARCHB จะค้นหาสตริงข้อความหนึ่งภายในสตริงข้อความที่สอง และส่งกลับตัวเลขที่เป็นตำแหน่งเริ่มต้นของสตริงข้อความแรกจากอักขระแรกของสตริงข้อความที่สอง ตัวอย่างเช่น เมื่อต้องการค้นหาตำแหน่งของตัวอักษร "n" ในคำว่า "printer" คุณสามารถใช้ฟังก์ชันดังต่อไปนี้
=SEARCH("n","printer")
ฟังก์ชันนี้ส่งกลับค่า 4 เนื่องจาก "n" เป็นตัวอักษรตัวที่ 4 ในคำว่า "printer"
คุณยังสามารถค้นหาคำต่างๆ ที่อยู่ภายในคำอื่นๆ ได้อีกด้วย ตัวอย่างเช่น ฟังก์ชัน
=SEARCH("base","database")
ส่งกลับค่า 5 เนื่องจากคำว่า "base" ปรากฏที่ตัวอักษรตัวที่ 5 ของคำว่า "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 เพื่อระบุจำนวนอักขระที่ต้องการข้ามไป โดยใช้ฟังก์ชัน 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 |