คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ความสัมพันธ์ › TREATAS

TREATAS

DAX · Power BIความสัมพันธ์ระดับกลางแบบ 5 · มีเฉพาะใน DAX

อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: TREATAS (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

TREATAS คืออะไร

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

ใช้เมื่อไหร่

  • กรองด้วยตารางที่ไม่ได้เชื่อม เช่น ตารางเป้า
  • กรองด้วยรายการค่าที่พิมพ์เอง เช่น {"Online", "Food Service"}

รูปแบบสูตร

=TREATAS(tableExpression, <column>[, <column>[, <column>[,…]]])

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableExpressionจำเป็นตารางของค่าที่จะใช้กรอง เช่น VALUES('เป้าภูมิภาค'[ภูมิภาค]) หรือ {"Online", "Food Service"}
columnจำเป็นคอลัมน์ในโมเดลที่จะรับค่าเป็นตัวกรอง จำนวนต้องเท่ากับคอลัมน์ของตาราง

ลองเลย: กรองด้วยรายการช่องทาง และด้วยตารางเป้าที่ไม่ได้เชื่อม

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[ยอดภาคที่มีเป้า] = CALCULATE([ยอดขาย], KEEPFILTERS(TREATAS(VALUES('เป้าภูมิภาค'[ภูมิภาค]), 'พนักงานขาย'[ภูมิภาค])))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขาย[ช่องทาง] = "Food Service", "Online"เหลือ 36 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
กรองด้วยรายการช่องทาง และด้วยตารางเป้าที่ไม่ได้เชื่อม
กรองด้วยรายการช่องทาง และด้วยตารางเป้าที่ไม่ได้เชื่อม · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคยอดขายยอดช่องทางใหม่ยอดภาคที่มีเป้า
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
554,198ยอดช่องทางใหม่ · กลาง · 2025
ดูทีละขั้นขั้น 5 / 5

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[ช่องทาง], "Online") + SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[ช่องทาง], "Food Service")

Excel บวก SUMIFS ของแต่ละค่า

DAXยอดช่องทางใหม่ = CALCULATE([ยอดขาย], TREATAS({"Online", "Food Service"}, 'ยอดขาย'[ช่องทาง]))

ค่าที่ไม่มีในคอลัมน์ปลายทางจะถูกข้าม

ข้อผิดพลาดและเคล็ดลับ

ภาคใต้ไม่มีในตารางเป้า ยอดภาคที่มีเป้าของแถวภาคใต้จึงว่าง ส่วนแถวยอดรวมได้ยอดของ 4 ภาค
ไม่มี KEEPFILTERS ตัวกรองจาก TREATAS จะแทนที่ตัวกรองภาคของแถว ทุกแถวจะได้ยอด 4 ภาคเท่ากันหมด
ถ้าตารางมีความสัมพันธ์หลายเส้นอยู่แล้ว Microsoft แนะนำ USERELATIONSHIP แทน TREATAS

แบบทดสอบ 3 ข้อ

1. TREATAS({"Online", "Tiktok"}, 'ยอดขาย'[ช่องทาง]) เมื่อไม่มีช่องทาง Tiktok ได้อะไร

2. TREATAS เหมาะกับสถานการณ์ใด

3. ไม่ครอบ KEEPFILTERS ตัวกรองจาก TREATAS บนคอลัมน์ภาคทำอะไรกับตัวกรองของแถว

ไฟล์ฝึก TREATAS

9Expert-DAX-TREATAS-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1[ยอดช่องทางใหม่] ยอดขายของช่องทาง Online และ Food Service · กรอง ภูมิภาค = ใต้, ปี = 2024
  2. ข้อ 2[ยอดช่องทางใหม่] ยอดขายของช่องทาง Online และ Food Service · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = Online, ปี = 2025
  3. ข้อ 3[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ภูมิภาค = เหนือ, ปี = 2025
  4. ข้อ 4[ยอดภาคที่มีเป้า] ยอดขายเฉพาะภาคที่อยู่ในตารางเป้า · กรอง ภูมิภาค = ตะวันออก, ช่องทาง = Modern Trade, ปี = 2024
  5. ข้อ 5[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ปี = 2025

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร