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

INDEX

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

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

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

INDEX คืออะไร

คืนแถวที่ตำแหน่งที่กำหนดในตารางที่เรียงลำดับแล้ว เช่น แถวแรก แถวสุดท้าย หรือเดือนที่ขายดีที่สุด

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

  • ดึงแถวแรกหรือแถวสุดท้าย เช่น เดือนแรกของปี
  • หาเดือนหรือสินค้าที่ขายดีที่สุด

รูปแบบสูตร

=INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
positionจำเป็นตำแหน่ง 1 = แถวแรก, -1 = แถวสุดท้าย, 0 หรือเกินขอบเขตได้ตารางว่าง
relation, orderBy, partitionByจำเป็นเหมือน OFFSET

ลองเลย: ยอดเดือนแรกของปี และเดือนที่ขายดีที่สุด

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

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[ยอดเดือนแรกของปี] = CALCULATE([ยอดขาย], INDEX(1, ALLSELECTED('วันที่'[เดือน], 'วันที่'[ชื่อเดือน]), ORDERBY('วันที่'[เดือน])))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขายไม่มีตัวกรอง
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025เงื่อนไขบน [เดือน] [ชื่อเดือน] เหลือ 1 ชุดค่า
  • ยอดขายเหลือ 24 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
ยอดเดือนแรกของปี และเดือนที่ขายดีที่สุด
ยอดเดือนแรกของปี และเดือนที่ขายดีที่สุด · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
เดือนยอดขายยอดเดือนแรกของปีเดือนที่ขายดีที่สุด
ม.ค.
ก.พ.
มี.ค.
เม.ย.
พ.ค.
มิ.ย.
ก.ค.
ส.ค.
ก.ย.
ต.ค.
พ.ย.
ธ.ค.
ยอดรวม
ธ.ค.เดือนที่ขายดีที่สุด · ม.ค. · 2025
ดูทีละขั้นขั้น 5 / 5

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

EXCEL=INDEX(SORTBY(เดือน, ยอดขาย, -1), 1)

INDEX ของ Excel ใช้ตำแหน่งในช่วงข้อมูล ชื่อเดียวกันแต่ทำงานต่างกัน

DAXเดือนที่ขายดีที่สุด = CALCULATE(SELECTEDVALUE('วันที่'[ชื่อเดือน]), INDEX(1, ALLSELECTED('วันที่'[เดือน], 'วันที่'[ชื่อเดือน]), ORDERBY([ยอดขาย], DESC)))

เรียงเดือนตามยอดขายจากมากไปน้อยแล้วเอาแถวแรก

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

ทุกแถวได้ค่าเดียวกัน เพราะไม่มี PARTITIONBY ทั้ง relation จึงเป็นกลุ่มเดียว ใส่ PARTITIONBY('วันที่'[ปี]) ถ้า relation มีหลายปี
ORDERBY ใส่ Measure ได้เมื่อระบุ relation เอง ค่า [ยอดขาย] คำนวณให้แต่ละเดือนก่อนเรียง
INDEX(-1, …) ได้แถวสุดท้าย เช่น เดือนล่าสุดที่มีในตัวกรอง

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

1. INDEX(-1, …) ได้แถวใด

2. INDEX(0, …) ได้อะไร

3. INDEX ของ DAX ต่างจาก INDEX ของ Excel อย่างไร

ไฟล์ฝึก INDEX

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

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

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

  1. ข้อ 1[เดือนที่ขายดีที่สุด] ชื่อเดือนที่มียอดขายสูงสุดของปีที่เลือก · กรอง ปี = 2025, เดือน = ก.ค.
  2. ข้อ 2[เดือนที่ขายดีที่สุด] ชื่อเดือนที่มียอดขายสูงสุดของปีที่เลือก · กรอง ช่องทาง = Online, ปี = 2025, เดือน = ธ.ค.
  3. ข้อ 3[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025, เดือน = พ.ค.
  4. ข้อ 4[ยอดเดือนแรกของปี] ยอดขายของเดือนแรกของปีที่เลือก · กรอง ช่องทาง = Modern Trade, ปี = 2025, เดือน = ต.ค.
  5. ข้อ 5[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025

ไปต่อ

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

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

ดูหลักสูตร