Thep Excel

FIND – หาตำแหน่งข้อความ (แบบแยกตัวพิมพ์ใหญ่/เล็ก)

FIND คืนค่าตำแหน่งเริ่มต้นของ FindText ภายใน WithinText (เริ่มนับที่ 1) โดยค้นหาแบบแยกตัวพิมพ์ใหญ่/เล็ก และสามารถระบุ StartNum/NotFoundValue เพื่อควบคุมจุดเริ่มค้นหาและผลลัพธ์เมื่อไม่พบได้

=FIND(<FindText>, <WithinText>[, <StartNum>[, <NotFoundValue>]])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

=FIND(<FindText>, <WithinText>[, <StartNum>[, <NotFoundValue>]])

Argument Type Required Default Description
FindText text Yes ข้อความที่ต้องการค้นหา
WithinText text Yes ข้อความหลักที่ต้องการค้นหาภายใน
StartNum number Optional 1 ตำแหน่งเริ่มต้นในการค้นหา (เริ่มนับที่ 1)
NotFoundValue number Optional error ค่าที่ต้องการให้คืนเมื่อไม่พบ FindText (ถ้าไม่ระบุจะเกิด error)

How it works

หาตำแหน่งตัวคั่นเพื่อแยกข้อความ

เช่น หา @ ในอีเมล หรือ – ในรหัสสินค้า

ค้นหาแบบควบคุมกรณีไม่พบ

คืน 0/BLANK แทน error เมื่อไม่พบข้อความ

ทำความสะอาด/จัดรูปแบบข้อมูลข้อความ

ใช้ร่วมกับ LEFT/MID/RIGHT เพื่อดึงบางส่วนของสตริง

Examples

ตัวอย่างที่ 1: หาตำแหน่ง @ ในอีเมล
ตำแหน่ง @ = FIND("@", Users[Email])
FIND คืนตำแหน่งแบบเริ่มนับที่ 1 และแยกตัวพิมพ์ใหญ่/เล็ก
DAX Formula:

ตำแหน่ง @ = FIND("@", Users[Email])

Result:

คืนเลขตำแหน่งเริ่มต้นของ @ (เช่น 5)

ตัวอย่างที่ 2: ดึงโดเมนจากอีเมล
โดเมน = VAR atPos = FIND("@", Users[Email], 1, 0) RETURN IF( atPos = 0, BLANK(), RIGHT(Users[Email], LEN(Users[Email]) - atPos) )
ใช้ NotFoundValue = 0 เพื่อป้องกัน error แล้วใช้ RIGHT+LEN เพื่อดึงข้อความหลัง @
DAX Formula:

โดเมน =
VAR atPos = FIND("@", Users[Email], 1, 0)
RETURN
IF(
    atPos = 0,
    BLANK(),
    RIGHT(Users[Email], LEN(Users[Email]) - atPos)
)

Result:

ได้ข้อความหลัง @ เช่น example.com

ตัวอย่างที่ 3: ค้นหาจากตำแหน่งที่กำหนดและกำหนดค่าหากไม่พบ
ตำแหน่ง - (ถัดไป) = FIND("-", Product[Code], 3, 0)
เหมาะเมื่อรหัสมีหลายตัวคั่นและคุณต้องการเริ่มค้นหาหลังจากตำแหน่งหนึ่ง
DAX Formula:

=ตำแหน่ง - (ถัดไป) = FIND("-", Product[Code], 3, 0)

Result:

คืนตำแหน่งของ - ที่พบหลังตำแหน่งเริ่มต้น หรือคืน 0 ถ้าไม่พบ

FAQs

FIND ต่างจาก SEARCH อย่างไร?

FIND แยกตัวพิมพ์ใหญ่/เล็ก ส่วน SEARCH ไม่แยก และมักยืดหยุ่นกว่าในการค้นหา

ถ้าไม่พบข้อความจะเกิดอะไรขึ้น?

ถ้าไม่ระบุ NotFoundValue จะเกิด error แต่ถ้าระบุ NotFoundValue (เช่น 0) จะคืนค่านั้นแทน ทำให้เขียนสูตรให้ปลอดภัยได้

Resources & Related

Additional Notes

FIND ใช้หาตำแหน่งเริ่มต้นของข้อความย่อย (substring) ภายในข้อความหลัก และคืนค่าเป็นเลขลำดับตำแหน่ง (เริ่มนับที่ 1) โดย FIND จะ แยกตัวพิมพ์ใหญ่/เล็ก และอาจไวต่อสำเนียง/เครื่องหมายกำกับบางภาษา

ถ้าต้องการค้นหาแบบไม่แยกตัวพิมพ์ใหญ่/เล็ก ให้ดู SEARCH แทน และถ้ากังวลเรื่อง “ไม่พบข้อความ” ให้กำหนด NotFoundValue เพื่อหลีกเลี่ยง error

Leave a Reply

Your email address will not be published. Required fields are marked *