บทความนี้จะอธิบายถึงไวยากรณ์ของสูตรและการใช้ฟังก์ชัน FIND และ FINDB ใน Microsoft Excel
คำอธิบาย
FIND และ FINDB จะค้นหาสตริงข้อความหนึ่งภายในสตริงข้อความที่สอง และส่งกลับตัวเลขที่เป็นตำแหน่งเริ่มต้นของสตริงข้อความแรกจากอักขระแรกของสตริงข้อความที่สอง
:
-
ฟังก์ชันเหล่านี้อาจไม่พร้อมใช้งานในบางภาษา
-
FIND มีไว้สําหรับใช้กับภาษาที่ใช้ชุดอักขระแบบไบต์เดี่ยว (SBCS) ในขณะที่ FINDB มีวัตถุประสงค์เพื่อใช้กับภาษาที่ใช้ชุดอักขระแบบไบต์คู่ (DBCS) การตั้งค่าภาษาเริ่มต้นบนคอมพิวเตอร์ของคุณจะมีผลต่อค่าที่ส่งกลับด้วยวิธีต่อไปนี้
-
ไม่ว่าการตั้งค่าภาษาเริ่มต้นจะเป็นเช่นไร FIND จะนับจำนวนอักขระแต่ละตัวเป็น 1 เสมอ ทั้งอักขระแบบไบต์เดี่ยวและอักขระแบบไบต์คู่
-
FINDB จะนับอักขระแบบไบต์คู่แต่ละตัวเป็น 2 เมื่อคุณเปิดใช้งานการแก้ไขภาษาที่สนับสนุน DBCS แล้วตั้งค่าเป็นภาษาเริ่มต้น มิฉะนั้น FINDB จะนับอักขระแต่ละตัวเป็น 1
ภาษาที่สนับสนุน DBCS นั้นได้แก่ ญี่ปุ่น จีน (ประยุกต์) จีน (ดั้งเดิม) และเกาหลี
ไวยากรณ์
FIND(find_text, within_text, [start_num])
FINDB(find_text, within_text, [start_num])
ไวยากรณ์ฟังก์ชัน FIND และ FINDB มีอาร์กิวเมนต์ดังนี้
-
Find_text จำเป็น ข้อความที่คุณต้องการค้นหา
-
Within_text จำเป็น ข้อความที่มีข้อความที่คุณต้องการค้นหา
-
Start_num ไม่จำเป็น ระบุอักขระที่จะเริ่มต้นการค้นหา อักขระแรกใน within_text คืออักขระหมายเลข 1 ถ้าคุณละ start_num จะถือว่าเป็น 1
ข้อสังเกต
-
FIND และ FINDB ต้องตรงตามตัวพิมพ์ใหญ่-เล็ก และไม่อนุญาตให้ใช้อักขระตัวแทน ถ้าคุณไม่ต้องการทําการค้นหาแบบตรงตามตัวพิมพ์ใหญ่-เล็กหรือใช้อักขระตัวแทน คุณสามารถใช้ SEARCH และ SEARCHB ได้
-
ถ้า find_text เป็น "" (ว่าง) ฟังก์ชัน FIND จะส่งกลับค่าตำแหน่งของอักขระตัวแรกในสตริงการค้นหา (นั่นคืออักขระจะมีหมายเลข start_num หรือ 1)
-
Find_text ไม่สามารถมีอักขระตัวแทนใดๆ ได้
-
ถ้า find_text ไม่มีอยู่ใน within_text ฟังก์ชัน FIND และ FINDB จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
ถ้า start_num น้อยกว่าหรือเท่ากับศูนย์ ฟังก์ชัน FIND และ FINDB จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
ถ้า start_num มากกว่าความยาวของ within_text ฟังก์ชัน FIND และ FINDB จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
ใช้ start_num เพื่อข้ามจํานวนอักขระที่ระบุ สมมติว่าคุณกําลังทํางานกับสตริงข้อความ "AYF0093 โดยใช้ FIND เป็นตัวอย่าง YoungMensApparel" เมื่อต้องการค้นหาหมายเลขของ "Y" ตัวแรกในส่วนคําอธิบายของสตริงข้อความ ให้ตั้งค่า start_num เท่ากับ 8 เพื่อไม่ให้มีการค้นหาส่วนเลขลําดับของข้อความ FIND เริ่มต้นด้วยอักขระ 8 ค้นหา find_text ที่อักขระถัดไป แล้วส่งกลับตัวเลข 9 FIND จะส่งกลับจํานวนอักขระจากจุดเริ่มต้นของ within_text เสมอ โดยนับอักขระที่คุณข้ามถ้า start_num มากกว่า 1
ตัวอย่าง
คัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้ และวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ สำหรับสูตรที่จะแสดงผลลัพธ์ ให้เลือกสูตร กด F2 แล้วกด Enter ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้
ข้อมูล |
||
---|---|---|
Miriam McGovern |
||
สูตร |
คำอธิบาย |
ผลลัพธ์ |
=FIND("M",A2) |
ตำแหน่งของอักขระ "m" ตัวแรกในเซลล์ A2 |
1 |
=FIND("m",A2) |
ตําแหน่งของ "m" ตัวแรกในเซลล์ A2 |
6 |
=FIND("M",A2,3) |
ตำแหน่งของอักขระ "M" ตัวแรกในเซลล์ A2 โดยเริ่มต้นจากอักขระตัวที่สาม |
8 |
ตัวอย่าง 2
ข้อมูล |
||
---|---|---|
Ceramic Insulators #124-TD45-87 |
||
Copper Coils #12-671-6772 |
||
Variable Resistors #116010 |
||
สูตร |
คำอธิบาย (ผลลัพธ์) |
ผลลัพธ์ |
=MID(A2,1,FIND(" #",A2,1)-1) |
แยกข้อความตั้งแต่ตำแหน่งที่ 1 จนถึงตำแหน่ง "#" ในเซลล์ A2 (Ceramic Insulators) |
Ceramic Insulators |
=MID(A3,1,FIND(" #",A3,1)-1) |
แยกข้อความตั้งแต่ตำแหน่งที่ 1 จนถึงตำแหน่ง "#" ในเซลล์ A3 (Copper Coils) |
Copper Coils |
=MID(A4,1,FIND(" #",A4,1)-1) |
แยกข้อความตั้งแต่ตำแหน่งที่ 1 จนถึงตำแหน่ง "#" ในเซลล์ A4 (Variable Resistors) |
Variable Resistors |