บทความนี้จะอธิบายถึงไวยากรณ์ของสูตรและการใช้ฟังก์ชัน 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เพื่อข้ามจํานวนอักขระที่ระบุ การใช้ FIND เป็นตัวอย่าง สมมติว่าคุณใช้งานสตริงข้อความ "AYF0093 YoungMensApparel". เมื่อต้องการค้นหาหมายเลขของ "Y" แรกในส่วนที่เป็นอธิบายของสตริงข้อความ ให้ตั้งค่า start_num เท่ากับ 8 เพื่อให้ส่วนเลขล <4>ของข้อความจะไม่ถูกค้นหา 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 |