คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › จัดอันดับ (Ranking) › TOPN

TOPN

DAX · Power BIจัดอันดับ (Ranking)ระดับกลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกัน

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

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

TOPN คืออะไร

คืน n แถวแรกของตารางตามค่าที่ใช้เรียง ใช้เป็นตัวกรองใน CALCULATE เพื่อหายอดของสินค้า 3 อันดับแรก

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

  • หายอดของสินค้าขายดี 3 อันดับแรก
  • คิดสัดส่วนยอดขายของกลุ่มสินค้าอันดับต้น ๆ

รูปแบบสูตร

=TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
N_Valueจำเป็นจำนวนแถวที่ต้องการ
Tableจำเป็นตารางที่เลือกแถว เช่น ALL('สินค้า'[ชื่อสินค้า])
OrderBy_Expressionจำเป็นค่าที่ใช้เรียง คำนวณทีละแถว
[Order]ไม่บังคับDESC (ค่าเริ่มต้น มากก่อน) หรือ ASC

ลองเลย: ยอดขายของ 3 สินค้าขายดีในแต่ละภาค

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

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[สัดส่วน 3 สินค้าแรก] = DIVIDE([ยอดขาย 3 สินค้าแรก], [ยอดขาย])
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้า[ชื่อสินค้า] = "นม UHT รสจืด 180 มล. (ลัง 48)", "น้ำปลาแท้ 700 มล. (ลัง 12)", "มันฝรั่งทอดกรอบ รสดั้งเดิม 75 ก. (กล่อง 24)"
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 36 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
ยอดขายของ 3 สินค้าขายดีในแต่ละภาค
ยอดขายของ 3 สินค้าขายดีในแต่ละภาค · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคยอดขายยอดขาย 3 สินค้าแรกสัดส่วน 3 สินค้าแรก
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
709,083ยอดขาย 3 สินค้าแรก · กลาง · 2025
ดูทีละขั้นขั้น 5 / 5

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

EXCEL=SUM(TAKE(SORT(C2:C11, , -1), 3))

Excel 365 เรียงแล้วตัดด้วย SORT และ TAKE DAX ใช้ TOPN ได้ตารางไว้กรองต่อ

DAXยอดขาย 3 สินค้าแรก = CALCULATE([ยอดขาย], TOPN(3, ALL('สินค้า'[ชื่อสินค้า]), [ยอดขาย]))

3 อันดับแรกหาใหม่ในแต่ละภาค

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

ถ้าสินค้าอันดับที่ 3 มียอดเท่ากับอันดับที่ 4 TOPN คืนทั้งสองแถว จึงได้มากกว่า 3 แถวได้
TOPN ไม่เรียงผลลัพธ์ให้ ถ้าต้องการแสดงอันดับใน visual ใช้ RANKX หรือ Top N ใน Filters pane
N_Value เป็น 0 หรือติดลบได้ตารางว่าง

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

1. TOPN(3, ALL('สินค้า'[ชื่อสินค้า]), [ยอดขาย]) ให้ผลเป็นอะไร

2. ถ้าอันดับ 3 และ 4 ยอดเท่ากัน TOPN(3, …) คืนกี่แถว

3. ไม่ใส่ Order ใน TOPN เรียงแบบใด

ไฟล์ฝึก TOPN

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

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

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

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

ไปต่อ

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

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

ดูหลักสูตร