---
title: GENERATESERIES – สร้างลำดับตัวเลขอัตโนมัติเป็นตาราง
url: https://www.thepexcel.com/functions/dax/table-manipulation/generateseries-dax/
type: function-explainer
program: DAX
syntax: "GENERATESERIES(<StartValue>, <EndValue>[, <IncrementValue>])"
date: 2025-12-13
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 4
  usefulness: 6
---

# GENERATESERIES – สร้างลำดับตัวเลขอัตโนมัติเป็นตาราง

> GENERATESERIES สร้างตารางคอลัมน์เดียวที่เป็นลำดับตัวเลขจาก StartValue ถึง EndValue ด้วย increment ที

## คำอธิบาย

GENERATESERIES สร้างตารางคอลัมน์เดียวที่เป็นลำดับตัวเลขจาก StartValue ถึง EndValue ด้วย increment ที่กำหนดได้ เหมาะกับตารางช่วย parameter table หรือสร้างชุดตัวเลขสำหรับ what-if analysis

## Syntax

```excel
GENERATESERIES(&lt;StartValue&gt;, &lt;EndValue&gt;[, &lt;IncrementValue&gt;])
```

**Variant**

```excel
GENERATESERIES(&lt;StartValue&gt;, &lt;EndValue&gt;)
```

สร้างลำดับตัวเลขโดยใช้ขั้นเพิ่มค่าตั้งต้น

**Variant**

```excel
GENERATESERIES(&lt;StartValue&gt;, &lt;EndValue&gt;, &lt;IncrementValue&gt;)
```

กำหนดขั้นเพิ่มของลำดับตัวเลข

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| StartValue | Yes | number |  | ค่าเริ่มต้นของลำดับ (จำนวนทั้งหมด) |
| EndValue | Yes | number |  | ค่าสิ้นสุดของลำดับ (ต้องมากกว่า StartValue) |
| IncrementValue | No | number | 1 | ขั้นเพิ่มค่าของลำดับ (ต้องเป็นบวก default = 1) |

## เคสการใช้งาน

### สร้างตารางตัวเลขสำหรับ parameter

เช่น ทำตาราง 1–100 เพื่อใช้เลือกค่าในรายงาน

_เหมาะกับ:_ numeric-parameter

### สร้างตารางช่วงคะแนน/ระดับ

เช่น สร้างค่า 0–1 แบบ step 0.1 เพื่อทำ bin หรือ threshold

_เหมาะกับ:_ bins-thresholds

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สร้างตาราง 1 ถึง 10 (เพิ่มทีละ 1)

```excel
Numbers 1-10 =
GENERATESERIES(1, 10)
```

**ผลลัพธ์:** `ตารางที่มีคอลัมน์ Value: 1,2,3,4,5,6,7,8,9,10`

GENERATESERIES คืนค่าเป็นตารางเดียวคอลัมน์ชื่อ Value ที่เป็นลำดับตัวเลขตามช่วงที่กำหนด

### 2. ตัวอย่างที่ 2: สร้าง parameter table สำหรับ discount (ทีละ 5%)

```excel
Discount Parameter =
GENERATESERIES(0, 50, 5)
```

**ผลลัพธ์:** `ตารางตัวเลข 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50`

ใช้สร้าง parameter table ที่แสดงช่วง discount 0%-50% เพื่อให้ user เลือกค่า discount ผ่าน slicer

### 3. ตัวอย่างที่ 3: สร้าง rating scale 0.5 ถึง 5 (ทีละ 0.5)

```excel
Rating Scale =
GENERATESERIES(0.5, 5, 0.5)
```

**ผลลัพธ์:** `ตาราง 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5`

สร้างตารางช่วย rating scale สำหรับ what-if analysis ด้วยการใช้ increment = 0.5

### 4. ตัวอย่างที่ 4: ใช้กับ ADDCOLUMNS เพื่อสร้าง lookup table สมบูรณ์

```excel
Discount Table =
ADDCOLUMNS(
    GENERATESERIES(0, 50, 5),
    "Discount Label", 
    FORMAT([Value], "0%"),
    "Price Factor", 
    (100 - [Value]) / 100
)
```

**ผลลัพธ์:** `ตารางที่มี 3 คอลัมน์: Value (0-50), Discount Label (0%, 5%, ...), Price Factor (1.00, 0.95, ...)`

ใช้ GENERATESERIES เป็นพื้นฐาน แล้วใช้ ADDCOLUMNS เพิ่มคอลัมน์ label และ formula เพื่อให้ได้ lookup table สมบูรณ์

## หมายเหตุเพิ่มเติม

- ใช้ GENERATESERIES เป็น parameter table สำหรับ what-if analysis ง่ายและรวดเร็ว

- สำหรับ lookup table ที่ซับซ้อน ให้ใช้ ADDCOLUMNS ร่วมกับ GENERATESERIES เพื่อเพิ่มคอลัมน์ formula/label

- เวลาสร้าง discount scale หรือ rating scale ให้ใช้ increment ตามความเหมาะสม เช่น 0.1, 0.25, 0.5, 1 เป็นต้น

- ถ้า parameter table มีตัวเลือกหลายคอลัมน์ ให้ดู DATATABLE เพื่อสร้างตารางด้วยข้อมูลคงที่ (hardcoded)

## คำถามที่พบบ่อย

**Q: คอลัมน์ของ GENERATESERIES ชื่ออะไร?**

คอลัมน์จะชื่อ Value โดยอัตโนมัติ ใช้ [Value] หรือ GENERATESERIES(...)[Value] เพื่ออ้างอิง

**Q: GENERATESERIES ใช้สร้างวันที่ได้ไหม?**

ไม่ โดยตรง GENERATESERIES สร้างเป็นตัวเลขเท่านั้น หากต้องการลำดับวันที่ ให้ใช้ CALENDAR หรือ CALENDARAUTO แทน หรือสร้างตัวเลขด้วย GENERATESERIES แล้วแปลงเป็นวันที่ด้วย DATE/DATEADD

**Q: EndValue < StartValue จะเกิดอะไร?**

ฟังก์ชันจะคืนค่ากลับมาเป็น empty table (ตารางว่าง) ไม่มีข้อผิดพลาด

**Q: IncrementValue สามารถเป็นลบได้ไหม?**

ไม่ IncrementValue ต้องเป็นจำนวนบวกเท่านั้น หากต้องการลำดับลดลง ให้สลับค่า StartValue และ EndValue แล้วใช้ Increment บวก

**Q: ใช้ GENERATESERIES ใน DirectQuery ได้ไหม?**

ไม่ GENERATESERIES ไม่รองรับ DirectQuery mode สำหรับ calculated columns หรือ RLS rules ต้องใช้กับ Import mode

## ฟังก์ชันที่เกี่ยวข้อง

- datatable
- addcolumns
- format
- generate
- generateall
- calendar
- calendarauto
- dateadd

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft DAX Reference: GENERATESERIES](https://learn.microsoft.com/en-us/dax/generateseries-function-dax) _(official)_
- [DAX Guide: GENERATESERIES](https://dax.guide/generateseries/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/dax/table-manipulation/generateseries-dax/](https://www.thepexcel.com/functions/dax/table-manipulation/generateseries-dax/)_
