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

GENERATESERIES

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

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

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

GENERATESERIES คืออะไร

สร้างตารางตัวเลขหนึ่งคอลัมน์ชื่อ Value ตั้งแต่ค่าเริ่มถึงค่าสุดท้ายตามระยะห่าง ใช้ทำ what-if เช่น ลองส่วนลด 0% ถึง 30%

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

  • สร้างตาราง What-if เช่น ส่วนลด 0% ถึง 30%
  • ทดลองหาค่าที่ทำให้เงื่อนไขเป็นจริง เช่น ส่วนลดสูงสุดที่ยังได้กำไร 20%

รูปแบบสูตร

=GENERATESERIES(<startValue>, <endValue>[, <incrementValue>])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
startValueจำเป็นค่าแรก
endValueจำเป็นค่าสุดท้าย (รวมค่านี้ถ้าตรงระยะพอดี)
[incrementValue]ไม่บังคับระยะห่าง ต้องเป็นค่าบวก ไม่ใส่ = 1

ลองเลย: ส่วนลดสูงสุดที่ยังได้อัตรากำไร 20% แยกตามภูมิภาค

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

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

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

EXCEL=SEQUENCE(31, 1, 0, 0.01)

SEQUENCE ของ Excel สร้างตัวเลขลงชีต GENERATESERIES สร้างเป็นตารางในสูตร

DAXส่วนลดสูงสุดที่ยังได้กำไร 20% = MAXX(FILTER(GENERATESERIES(0, 0.3, 0.01), DIVIDE([ยอดก่อนส่วนลด] * (1 - [Value]) - [ต้นทุน], [ยอดก่อนส่วนลด] * (1 - [Value])) >= 0.2), [Value])

ลองส่วนลดทีละ 1% แล้วเอาค่าที่มากที่สุดที่อัตรากำไรยังถึง 20%

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

Power BI สร้างตารางแบบนี้ให้เองจาก Modeling › New parameter (What-if) แล้วใช้ Slicer เลือกค่า
incrementValue ต้องเป็นค่าบวก ถ้าค่าสุดท้ายน้อยกว่าค่าเริ่มได้ตารางว่าง
ส่วนลดในตัวอย่างคิดจากยอดก่อนส่วนลดทั้งหมด ไม่ใช่ส่วนลดที่ให้ไปแล้วในแต่ละคำสั่งซื้อ

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

1. GENERATESERIES(0, 0.3, 0.1) ได้กี่แถว

2. คอลัมน์ของตารางจาก GENERATESERIES ชื่ออะไร

3. GENERATESERIES(1.2, 2.4, 0.4) ได้ค่าใดบ้าง

ไฟล์ฝึก GENERATESERIES

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

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

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

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

ดูหลักสูตร