CONTAINS ค้นหาในตารางเพื่อตรวจสอบว่าแถวที่มีค่าเฉพาะสำหรับแต่ละคอลัมน์มีอยู่หรือไม่ ส่งกลับค่า Boolean (TRUE หรือ FALSE) เป็นฟังก์ชันตัวกรองสำหรับตรวจสอบว่าค่าที่กำหนดมีอยู่จริงในข้อมูล ใช้สำหรับสร้างความสัมพันธ์เสมือนหรือการจำกัดข้อมูลแบบ Join
=CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]…)
=CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]…)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางใดๆ ที่ส่งกลับโดยนิพจน์ DAX จำเป็นต้องเป็นตารางที่มีข้อมูลที่ต้องการค้นหา | |
| columnName | text | Yes | ชื่อคอลัมน์ที่มีอยู่จริง ไม่สามารถเป็นนิพจน์ได้ หากคอลัมน์อยู่ในตารางที่เกี่ยวข้อง ต้องมีชื่อเต็มรูปแบบ | |
| value | scalar | Yes | นิพจน์ DAX ที่ส่งกลับค่าสเกลาร์เดี่ยว ที่ต้องค้นหาในคอลัมน์ที่ระบุ | |
| value… | scalar | Optional | ค่าคู่กันเพิ่มเติมเมื่อมีหลายคอลัมน์ที่ต้องตรวจสอบพร้อมกัน ใช้ทีละคู่กับ columnName ที่เกี่ยวข้อง |
ใช้ CONTAINS เพื่อตรวจสอบว่าลูกค้าในตารางหนึ่งมีสัญญาในตารางอื่นหรือไม่ โดยไม่ต้องสร้างความสัมพันธ์ทั่วไป
ตรวจสอบว่าการรวมกันของผลิตภัณฑ์และลูกค้าที่เฉพาะเจาะจงมีการขายจริงหรือไม่ ในการสร้างมาตรการที่ขึ้นอยู่กับการมีอยู่ของข้อมูล
กรองแถวเพื่อแสดงเฉพาะชุดข้อมูลที่มีอยู่ในตารางแหล่งข้อมูล เช่น แสดงเฉพาะโครงการที่มีการลงนามจริงกับลูกค้า
Product Exists = CONTAINS( InternetSales, [ProductKey], 214 )Product Exists = CONTAINS(
InternetSales,
[ProductKey],
214
)
TRUE หรือ FALSE
Customer Product Pair = CONTAINS( InternetSales, [ProductKey], 214, [CustomerKey], 11185 )Customer Product Pair = CONTAINS(
InternetSales,
[ProductKey],
214,
[CustomerKey],
11185
)
TRUE หรือ FALSE
Is Active Product = IF( CONTAINS( Products, Products[ProductKey], [ProductKey] ), "Active", "Inactive" )Is Active Product = IF(
CONTAINS(
Products,
Products[ProductKey],
[ProductKey]
),
"Active",
"Inactive"
)
"Active" หรือ "Inactive"
CONTAINS ใช้ในการค้นหาในตารางและต้องระบุชื่อคอลัมน์อย่างชัดเจน, CONTAINSROW ใช้กับตารางอินไลน์และข้อมูลจะต้องตรงกันตามลำดับ
CONTAINS ไม่รองรับ DirectQuery สำหรับคอลัมน์ที่คำนวณหรือกฎการรักษาความปลอดภัยในระดับแถว (RLS) ใช้ได้เฉพาะในมาตรการเท่านั้น
ได้ แต่คอลัมน์ต้องมีชื่อเต็มรูปแบบ (ตัวอย่าง: RelatedTable[ColumnName]) และตารางต้องเชื่อมโยงกับตารางหลักผ่านความสัมพันธ์
CONTAINS จะค้นหา BLANK เหมือนค่าอื่นๆ ถ้ามี BLANK ในคอลัมน์และค่าที่ค้นหาเป็น BLANK จะส่งกลับ TRUE
ใช่ CONTAINS มีประสิทธิภาพดีกว่า เพราะเป็นฟังก์ชันที่เพิ่มประสิทธิภาพโดย DAX สำหรับการค้นหา อย่างไรก็ตาม บางครั้ง TREATAS หรือ INTERSECT อาจเป็นตัวเลือกที่ดีกว่า
CONTAINS ส่งกลับ TRUE หากค่าทั้งหมดสำหรับคอลัมน์ที่อ้างอิงมีอยู่ในคอลัมน์เหล่านั้น เหมาะสำหรับตรวจสอบว่าแถวเฉพาะมีอยู่ในตาราง เป็นประโยชน์สำหรับสร้างความสัมพันธ์เสมือน (Virtual Relationships) และการตรวจสอบการดำเนิน