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

ADDCOLUMNS

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

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

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

ADDCOLUMNS คืออะไร

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

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

  • เพิ่มคอลัมน์ยอดขายให้รายการเดือนหรือสินค้าก่อนหาค่ามากสุด
  • เตรียมตารางชั่วคราวให้ TOPN หรือ FILTER

รูปแบบสูตร

=ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางตั้งต้น เช่น VALUES('วันที่'[ชื่อเดือน])
nameจำเป็นชื่อคอลัมน์ใหม่ในเครื่องหมายคำพูด นิยมขึ้นต้นด้วย @
expressionจำเป็นนิพจน์ที่คำนวณในแต่ละแถว

ลองเลย: ยอดของเดือนที่ขายดีและขายน้อยที่สุด แยกตามภูมิภาค

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

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

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

EXCEL=MAX(SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[เดือน], SEQUENCE(12)))

Excel คำนวณยอดรายเดือนเป็นช่วงแล้วหาค่ามากสุด

DAXยอดเดือนสูงสุด = MAXX(ADDCOLUMNS(VALUES('วันที่'[ชื่อเดือน]), "@ยอด", [ยอดขาย]), [@ยอด])

[@ยอด] อ้างคอลัมน์ที่เพิ่ม ไม่ใช่ Measure

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

ต่างจาก SUMMARIZECOLUMNS ตรงที่ ADDCOLUMNS ไม่ตัดแถวที่ค่าว่าง แต่ MINX ข้ามค่าว่างให้เอง
ตั้งชื่อคอลัมน์ใหม่ขึ้นต้นด้วย @ ให้แยกออกจาก Measure ได้ชัด เวลาอ้างใช้ [@ยอด] โดยไม่มีชื่อตาราง
[ยอดขาย] ในแต่ละแถวของ VALUES('วันที่'[ชื่อเดือน]) เปลี่ยนแถวเป็นตัวกรองเดือน (context transition)

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

1. [@ยอด] ใน MAXX(ADDCOLUMNS(…, "@ยอด", [ยอดขาย]), [@ยอด]) คืออะไร

2. ADDCOLUMNS คืนอะไร

3. [ยอดขาย] ในแต่ละแถวของ VALUES('วันที่'[ชื่อเดือน]) ได้ยอดของอะไร

ไฟล์ฝึก ADDCOLUMNS

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

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

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

  1. ข้อ 1[ยอดเดือนสูงสุด] ยอดขายของเดือนที่ขายได้มากที่สุด · กรอง ภูมิภาค = ใต้, ปี = 2024
  2. ข้อ 2[ยอดเดือนสูงสุด] ยอดขายของเดือนที่ขายได้มากที่สุด · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = 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 วัน)

ดูหลักสูตร