CONTAINSSTRING ตรวจสอบว่าข้อความหนึ่งมีข้อความอื่นเป็นส่วนหนึ่งหรือไม่ แล้วคืนค่า TRUE หรือ FALSE ตัวเลือกนี้ไม่สนใจตัวพิมพ์ใหญ่เล็ก
=CONTAINSSTRING(<within_text>, <find_text>)
=CONTAINSSTRING(<within_text>, <find_text>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| within_text | Text/String | Yes | ข้อความที่ต้องการค้นหาภายใน (สามารถเป็นคอลัมน์ข้อมูลหรือข้อความค่าคงที่) | |
| find_text | Text/String | Yes | ข้อความที่ต้องการค้นหา รองรับ ? (ตัวอักษรเดียว) และ * (หลายตัวอักษร) ใช้ ~? และ ~* เพื่อจับตัวพิมพ์หลายเหลี่ยมตามตัวอักษร |
Has Organic = CONTAINSSTRING( Products[Description], "organic" )Has Organic = CONTAINSSTRING( Products[Description], "organic" )
TRUE (สินค้ามีคำว่า "organic") หรือ FALSE (ไม่มี)
Discount Mentions = CALCULATE( [Total Sales], FILTER( Feedback, CONTAINSSTRING( Feedback[Comment], "discount" ) ) )Discount Mentions =
CALCULATE(
[Total Sales],
FILTER(
Feedback,
CONTAINSSTRING( Feedback[Comment], "discount" )
)
)
ยอดขายรวมจากเฉพาะลูกค้าที่พูดถึงส่วนลดในความคิดเห็น
Premium Products Count = CALCULATE( COUNTROWS( Products ), CONTAINSSTRING( Products[SKU], "PROD*" ) )Premium Products Count =
CALCULATE(
COUNTROWS( Products ),
CONTAINSSTRING( Products[SKU], "PROD*" )
)
จำนวนสินค้า SKU ที่เริ่มต้นด้วย "PROD" (เช่น PROD001 PROD002)
CONTAINSSTRING ไม่สนใจตัวพิมพ์ใหญ่เล็ก (case-insensitive) ส่วน CONTAINSSTRINGEXACT จะสนใจตัวพิมพ์และเป็นการค้นหาแบบแน่นอน “Red” ≠ “red” ใน CONTAINSSTRINGEXACT แต่เท่ากันใน CONTAINSSTRING
ใช้ ? สำหรับตัวอักษรเดียว (เช่น “r?d” จับ “red” “rad”) และ * สำหรับหลายตัวอักษร (เช่น “r*d” จับ “red” “road” “rained”) ถ้าต้องการค้นหา ? หรือ * อักษรตัวจริง ให้ใช้ ~? และ ~*
CONTAINSSTRING ทำงานในทั้งสองบริบท ถ้าใช้ในคอลัมน์ที่คำนวณแล้ว มันจะประเมินแต่ละแถว (row context) ถ้าใช้ใน CALCULATE ให้ modifier filter context
ถ้า within_text หรือ find_text เป็น NULL ผลลัพธ์จะเป็น NULL ต้องใช้ IF หรือ IFERROR เพื่อจัดการค่า NULL เช่น IFERROR( CONTAINSSTRING( …), FALSE )
ในโลกแห่งข้อมูล บางครั้งเราต้องการรู้ว่าข้อความหนึ่งซ่อนข้อความอีกข้อความอยู่ข้างในหรือเปล่า เช่น กำหนดลูกค้าที่มีคำว่า “ส่วนลด” ในความคิดเห็น หรือหาสินค้าที่มีคำว่า “organic” ในรายละเอียด นั่นคือจุดมุ่งหมายของ CONTAINSSTRING
ที่เจ๋งของฟังก์ชันนี้คือมันไม่สนใจตัวพิมพ์ใหญ่เล็ก ตัวอักษรอื่นๆ หรือความกว้างของตัวอักษร ดังนั้น “RED” “red” “rED” ทั้งหมดถูกมองว่าเหมือนกัน นอกจากนี้ยังรองรับ wildcard อีกด้วย ใช้ ? เพื่อจับตัวอักษรตัวเดียว และ * เพื่อจับหลายตัวอักษร
ส่วนตัวผม CONTAINSSTRING เหมาะที่สุดสำหรับการกรองข้อมูลแบบ dynamic ใช้กับ CALCULATE หรือ FILTER เพื่อสร้างการวิเคราะห์ที่ตอบสนองต่อข้อเสนอแนะลูกค้าหรือคุณลักษณะสินค้า