Thep Excel

CONTAINSSTRING – ฟังก์ชันค้นหาข้อความใน DAX

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

=CONTAINSSTRING(<within_text>, <find_text>)

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=CONTAINSSTRING(<within_text>, <find_text>)

Argument Type Required Default Description
within_text Text/String Yes ข้อความที่ต้องการค้นหาภายใน (สามารถเป็นคอลัมน์ข้อมูลหรือข้อความค่าคงที่)
find_text Text/String Yes ข้อความที่ต้องการค้นหา รองรับ ? (ตัวอักษรเดียว) และ * (หลายตัวอักษร) ใช้ ~? และ ~* เพื่อจับตัวพิมพ์หลายเหลี่ยมตามตัวอักษร

Examples

ตัวอย่างพื้นฐาน: ตรวจสอบคำในคอลัมน์คำอธิบายสินค้า
Has Organic = CONTAINSSTRING( Products[Description], "organic" )
สร้างคอลัมน์ที่ตรวจสอบว่าคำอธิบายสินค้าแต่ละชิ้นมีคำว่า "organic" เป็นส่วนหนึ่งหรือไม่ ค่าตอบสนองจะเป็น TRUE หรือ FALSE ตัวอักษรตัวพิมพ์ใหญ่เล็กไม่ส่งผลต่อผลลัพธ์
DAX Formula:

Has Organic = CONTAINSSTRING( Products[Description], "organic" )

Result:

TRUE (สินค้ามีคำว่า "organic") หรือ FALSE (ไม่มี)

ตัวอย่างการกรอง: หาคำว่า "discount" ในความคิดเห็นลูกค้า
Discount Mentions = CALCULATE( [Total Sales], FILTER( Feedback, CONTAINSSTRING( Feedback[Comment], "discount" ) ) )
รวมยอดขายเฉพาะลูกค้าที่ความคิดเห็นของพวกเขามีคำว่า "discount" ใช้ FILTER เพื่อตรวจสอบเงื่อนไขในแต่ละแถว แล้ว CALCULATE จะ aggregate ผลลัพธ์
DAX Formula:

Discount Mentions = 
CALCULATE(
    [Total Sales],
    FILTER(
        Feedback,
        CONTAINSSTRING( Feedback[Comment], "discount" )
    )
)

Result:

ยอดขายรวมจากเฉพาะลูกค้าที่พูดถึงส่วนลดในความคิดเห็น

ตัวอย่างขั้นสูง: ใช้ Wildcard เพื่อค้นหาสินค้า SKU ที่เริ่มต้นด้วย "PROD"
Premium Products Count = CALCULATE( COUNTROWS( Products ), CONTAINSSTRING( Products[SKU], "PROD*" ) )
ใช้ wildcard * เพื่อจับ SKU ที่เริ่มต้นด้วย "PROD" แล้วตามด้วยตัวอักษรหรือตัวเลขใดๆ COUNTROWS นับจำนวนผลลัพธ์
DAX Formula:

Premium Products Count = 
CALCULATE(
    COUNTROWS( Products ),
    CONTAINSSTRING( Products[SKU], "PROD*" )
)

Result:

จำนวนสินค้า SKU ที่เริ่มต้นด้วย "PROD" (เช่น PROD001 PROD002)

FAQs

CONTAINSSTRING แตกต่างจาก CONTAINSSTRINGEXACT อย่างไร?

CONTAINSSTRING ไม่สนใจตัวพิมพ์ใหญ่เล็ก (case-insensitive) ส่วน CONTAINSSTRINGEXACT จะสนใจตัวพิมพ์และเป็นการค้นหาแบบแน่นอน “Red” ≠ “red” ใน CONTAINSSTRINGEXACT แต่เท่ากันใน CONTAINSSTRING

ใช้ Wildcard ได้อย่างไร?

ใช้ ? สำหรับตัวอักษรเดียว (เช่น “r?d” จับ “red” “rad”) และ * สำหรับหลายตัวอักษร (เช่น “r*d” จับ “red” “road” “rained”) ถ้าต้องการค้นหา ? หรือ * อักษรตัวจริง ให้ใช้ ~? และ ~*

ฟังก์ชันนี้ใช้ในบริบท Row Context หรือ Filter Context?

CONTAINSSTRING ทำงานในทั้งสองบริบท ถ้าใช้ในคอลัมน์ที่คำนวณแล้ว มันจะประเมินแต่ละแถว (row context) ถ้าใช้ใน CALCULATE ให้ modifier filter context

จะใช้กับช่อง NULL ได้ไหม?

ถ้า within_text หรือ find_text เป็น NULL ผลลัพธ์จะเป็น NULL ต้องใช้ IF หรือ IFERROR เพื่อจัดการค่า NULL เช่น IFERROR( CONTAINSSTRING( …), FALSE )

Resources & Related

Additional Notes

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

ที่เจ๋งของฟังก์ชันนี้คือมันไม่สนใจตัวพิมพ์ใหญ่เล็ก ตัวอักษรอื่นๆ หรือความกว้างของตัวอักษร ดังนั้น “RED” “red” “rED” ทั้งหมดถูกมองว่าเหมือนกัน นอกจากนี้ยังรองรับ wildcard อีกด้วย ใช้ ? เพื่อจับตัวอักษรตัวเดียว และ * เพื่อจับหลายตัวอักษร

ส่วนตัวผม CONTAINSSTRING เหมาะที่สุดสำหรับการกรองข้อมูลแบบ dynamic ใช้กับ CALCULATE หรือ FILTER เพื่อสร้างการวิเคราะห์ที่ตอบสนองต่อข้อเสนอแนะลูกค้าหรือคุณลักษณะสินค้า

Leave a Reply

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