Thep Excel

CONTAINS – ตรวจสอบว่าค่าเฉพาะมีอยู่ในตารางหรือไม่

CONTAINS ค้นหาในตารางเพื่อตรวจสอบว่าแถวที่มีค่าเฉพาะสำหรับแต่ละคอลัมน์มีอยู่หรือไม่ ส่งกลับค่า Boolean (TRUE หรือ FALSE) เป็นฟังก์ชันตัวกรองสำหรับตรวจสอบว่าค่าที่กำหนดมีอยู่จริงในข้อมูล ใช้สำหรับสร้างความสัมพันธ์เสมือนหรือการจำกัดข้อมูลแบบ Join

=CONTAINS(<table>, <columnName>, <value>[, <columnName>, <value>]…)

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
6/10

Syntax & Arguments

=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 ที่เกี่ยวข้อง

How it works

สร้างความสัมพันธ์เสมือน (Virtual Relationships)

ใช้ CONTAINS เพื่อตรวจสอบว่าลูกค้าในตารางหนึ่งมีสัญญาในตารางอื่นหรือไม่ โดยไม่ต้องสร้างความสัมพันธ์ทั่วไป

ตรวจสอบการมีอยู่ของแถว

ตรวจสอบว่าการรวมกันของผลิตภัณฑ์และลูกค้าที่เฉพาะเจาะจงมีการขายจริงหรือไม่ ในการสร้างมาตรการที่ขึ้นอยู่กับการมีอยู่ของข้อมูล

ตัวกรองข้อมูลขั้นสูง

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

Examples

ตัวอย่างที่ 1: ตรวจสอบว่ามีการขายสำหรับผลิตภัณฑ์เฉพาะหรือไม่
Product Exists = CONTAINS( InternetSales, [ProductKey], 214 )
ฟังก์ชันนี้ค้นหาในตาราง InternetSales เพื่อตรวจสอบว่ามีแถวใดที่มี ProductKey เท่ากับ 214 หรือไม่ ถ้าหาพบ ส่งกลับ TRUE
DAX Formula:

Product Exists = CONTAINS(
    InternetSales,
    [ProductKey],
    214
)

Result:

TRUE หรือ FALSE

ตัวอย่างที่ 2: ตรวจสอบคู่ของผลิตภัณฑ์และลูกค้า
Customer Product Pair = CONTAINS( InternetSales, [ProductKey], 214, [CustomerKey], 11185 )
ตรวจสอบว่ามีการขายสำหรับผลิตภัณฑ์ 214 ให้กับลูกค้า 11185 หรือไม่ ทั้งเงื่อนไขต้องเป็นจริงเพื่อส่งกลับ TRUE
DAX Formula:

Customer Product Pair = CONTAINS(
    InternetSales,
    [ProductKey],
    214,
    [CustomerKey],
    11185
)

Result:

TRUE หรือ FALSE

ตัวอย่างที่ 3: ใช้กับตารางที่เกี่ยวข้อง
Is Active Product = IF( CONTAINS( Products, Products[ProductKey], [ProductKey] ), "Active", "Inactive" )
ส่งกลับข้อความ "Active" หากผลิตภัณฑ์ปัจจุบันมีอยู่ในตาราง Products, "Inactive" ในกรณีอื่น
DAX Formula:

Is Active Product = IF(
    CONTAINS(
        Products,
        Products[ProductKey],
        [ProductKey]
    ),
    "Active",
    "Inactive"
)

Result:

"Active" หรือ "Inactive"

FAQs

ความแตกต่างระหว่าง CONTAINS กับ CONTAINSROW คืออะไร?

CONTAINS ใช้ในการค้นหาในตารางและต้องระบุชื่อคอลัมน์อย่างชัดเจน, CONTAINSROW ใช้กับตารางอินไลน์และข้อมูลจะต้องตรงกันตามลำดับ

CONTAINS รองรับ DirectQuery หรือไม่?

CONTAINS ไม่รองรับ DirectQuery สำหรับคอลัมน์ที่คำนวณหรือกฎการรักษาความปลอดภัยในระดับแถว (RLS) ใช้ได้เฉพาะในมาตรการเท่านั้น

สามารถใช้ CONTAINS กับคอลัมน์จากตารางที่เกี่ยวข้องได้หรือไม่?

ได้ แต่คอลัมน์ต้องมีชื่อเต็มรูปแบบ (ตัวอย่าง: RelatedTable[ColumnName]) และตารางต้องเชื่อมโยงกับตารางหลักผ่านความสัมพันธ์

ถ้าค่าคือ BLANK จะเกิดอะไรขึ้น?

CONTAINS จะค้นหา BLANK เหมือนค่าอื่นๆ ถ้ามี BLANK ในคอลัมน์และค่าที่ค้นหาเป็น BLANK จะส่งกลับ TRUE

CONTAINS มีประสิทธิภาพดีกว่า COUNTROWS + FILTER หรือไม่?

ใช่ CONTAINS มีประสิทธิภาพดีกว่า เพราะเป็นฟังก์ชันที่เพิ่มประสิทธิภาพโดย DAX สำหรับการค้นหา อย่างไรก็ตาม บางครั้ง TREATAS หรือ INTERSECT อาจเป็นตัวเลือกที่ดีกว่า

Resources & Related

Additional Notes

CONTAINS ส่งกลับ TRUE หากค่าทั้งหมดสำหรับคอลัมน์ที่อ้างอิงมีอยู่ในคอลัมน์เหล่านั้น เหมาะสำหรับตรวจสอบว่าแถวเฉพาะมีอยู่ในตาราง เป็นประโยชน์สำหรับสร้างความสัมพันธ์เสมือน (Virtual Relationships) และการตรวจสอบการดำเนิน

Leave a Reply

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