Thep Excel

DAX · Text

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

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

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

ความนิยม5/10
ความยาก3/10
ประโยชน์5/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
FindText text ข้อความที่ต้องการค้นหา
WithinText text ข้อความหลักที่ต้องการค้นหาภายใน
[StartNum]ไม่บังคับ number 1 ตำแหน่งเริ่มต้นในการค้นหา (เริ่มนับที่ 1)
[NotFoundValue]ไม่บังคับ number error ค่าที่ต้องการให้คืนเมื่อไม่พบ FindText (ถ้าไม่ระบุจะเกิด error)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

How it works

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

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

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

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

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

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

Examples

ตัวอย่างที่ 1: หาตำแหน่ง @ ในอีเมลตำแหน่ง @ = FIND("@", Users[Email])

FIND คืนตำแหน่งแบบเริ่มนับที่ 1 และแยกตัวพิมพ์ใหญ่/เล็ก

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

ผลลัพธ์คืนเลขตำแหน่งเริ่มต้นของ @ (เช่น 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 เพื่อดึงข้อความหลัง @

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

ผลลัพธ์ได้ข้อความหลัง @ เช่น example.com
ตัวอย่างที่ 3: ค้นหาจากตำแหน่งที่กำหนดและกำหนดค่าหากไม่พบตำแหน่ง – (ถัดไป) = FIND("-", Product[Code], 3, 0)

เหมาะเมื่อรหัสมีหลายตัวคั่นและคุณต้องการเริ่มค้นหาหลังจากตำแหน่งหนึ่ง

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

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

FAQs

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

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

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

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ FIND จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้FINDText
Text (9)
EXACT

EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case

LEFT

LEFT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดเริ่มต้นของข้อความ ใช้ได้กับ Calculated Column โดยจะประมวลผลภาษาต่างๆ (Unicode) อย่างเดียวกัน

LEN (DAX)

LEN นับจำนวนอักขระของสตริง รวมช่องว่างด้วย ใช้สำหรับตรวจสอบความยาวข้อมูล การทำความสะอาด และงานเงื่อนไขตามความยาวข้อความ

LOWER

LOWER แปลงข้อความให้เป็นตัวพิมพ์เล็กทั้งหมด มีประโยชน์มากสำหรับการทำความสะอาดข้อมูลและแก้ปัญหาคีย์ไม่ตรงกันเพราะเหตุคำต่างชั้นอักษร

MID

MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH

REPLACE

REPLACE แทนที่อักขระจำนวนหนึ่งในสตริง โดยเริ่มจากตำแหน่งที่ระบุ เหมาะกับการแก้ไขข้อความเฉพาะตำแหน่ง เช่น เปลี่ยนคำนำหน้า แทนที่ตัวเลขบางหลัก หรือซ่อนบางส่วนของข้อมูล

RIGHT

RIGHT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดสิ้นสุดของข้อความ (ด้านขวา) ตามจำนวนที่ระบุ

SEARCH

SEARCH คืนค่าตำแหน่งเริ่มต้นของข้อความที่ค้นหา (ค้นหาแบบไม่สนตัวพิมพ์) หากไม่พบจะเกิดข้อผิดพลาด สามารถใช้กับ IFERROR หรือ COALESCE เพื่อจัดการกรณีไม่พบ

SUBSTITUTE

SUBSTITUTE ค้นหาและแทนที่ข้อความในสตริง สามารถแทนที่ทุกครั้งหรือเพียงครั้งที่ n เหมาะกับการปรับรูปแบบและทำความสะอาดข้อมูลโดยตรวจสอบเนื้อหา ไม่ใช่ตำแหน่ง

Information (2)
CONTAINSSTRING

CONTAINSSTRING ตรวจสอบว่าข้อความหนึ่งมีข้อความอื่นเป็นส่วนหนึ่งหรือไม่ แล้วคืนค่า TRUE หรือ FALSE ตัวเลือกนี้ไม่สนใจตัวพิมพ์ใหญ่เล็ก

CONTAINSSTRINGEXACT

CONTAINSSTRINGEXACT ใช้สำหรับการวิเคราะห์ข้อมูล DAX

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่