คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ฟังก์ชันตาราง (Table) › SELECTCOLUMNS

SELECTCOLUMNS

DAX · Power BIฟังก์ชันตาราง (Table)ระดับกลางแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

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

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

SELECTCOLUMNS คืออะไร

สร้างตารางใหม่ที่มีเฉพาะคอลัมน์ที่ตั้งชื่อ จำนวนแถวเท่าตารางต้นทาง ใช้คำนวณค่าของแต่ละแถวแล้วส่งต่อให้ฟังก์ชันอื่น

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

  • สร้างคอลัมน์คำนวณชั่วคราวแล้วกรองหรือหาค่ามากสุด
  • เปลี่ยนชื่อคอลัมน์ก่อน UNION หรือ TREATAS

รูปแบบสูตร

=SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>], …)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
Tableจำเป็นตารางต้นทาง
Nameจำเป็นชื่อคอลัมน์ใหม่ในเครื่องหมายคำพูด
Expressionจำเป็นค่าของแต่ละแถว เช่น คอลัมน์ หรือสูตร

ลองเลย: ยอดต่อคำสั่งซื้อจากตารางที่สร้างเอง แยกตามภูมิภาค

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

[ยอดต่อคำสั่งซื้อสูงสุด] = MAXX(SELECTCOLUMNS('ยอดขาย', "ยอดสุทธิ", 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด])), [ยอดสุทธิ])
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 96 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
ยอดต่อคำสั่งซื้อจากตารางที่สร้างเอง แยกตามภูมิภาค
ยอดต่อคำสั่งซื้อจากตารางที่สร้างเอง แยกตามภูมิภาค · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคยอดต่อคำสั่งซื้อสูงสุดคำสั่งซื้อเกิน 20,000
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
25คำสั่งซื้อเกิน 20,000 · กลาง · 2025
ดูทีละขั้นขั้น 5 / 5

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

EXCEL=CHOOSECOLS(ยอดขาย, 1, 12)

Excel ใช้ CHOOSECOLS เลือกคอลัมน์ หรือ LET สร้างคอลัมน์คำนวณ

DAXคำสั่งซื้อเกิน 20,000 = COUNTROWS(FILTER(SELECTCOLUMNS('ยอดขาย', "ยอดสุทธิ", 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด])), [ยอดสุทธิ] > 20000))

สร้างคอลัมน์ ยอดสุทธิ แล้วกรองด้วยชื่อนั้น

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

SELECTCOLUMNS ทำงานเหมือน ADDCOLUMNS แต่เริ่มจากตารางว่าง จึงเหลือเฉพาะคอลัมน์ที่ตั้งชื่อ (Microsoft Learn)
จำนวนแถวเท่าตารางต้นทางเสมอ ไม่ตัดแถวซ้ำ ถ้าต้องการค่าไม่ซ้ำครอบด้วย DISTINCT
นิยมใช้เปลี่ยนชื่อคอลัมน์ก่อน UNION หรือเตรียมตารางคอลัมน์เดียวให้ TREATAS

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

1. SELECTCOLUMNS ต่างจาก ADDCOLUMNS อย่างไร

2. SELECTCOLUMNS('ยอดขาย', …) ได้กี่แถว

3. หลังสร้างคอลัมน์ "ยอดสุทธิ" แล้ว อ้างในสูตรต่อไปอย่างไร

ไฟล์ฝึก SELECTCOLUMNS

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

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

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

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

ไปต่อ

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

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

ดูหลักสูตร