Thep Excel

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

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

fx
=GENERATESERIES(<StartValue>, <EndValue>[, <IncrementValue>])

ความนิยม6/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
StartValue number ค่าเริ่มต้นของลำดับ (จำนวนทั้งหมด)
EndValue number ค่าสิ้นสุดของลำดับ (ต้องมากกว่า StartValue)
[IncrementValue]ไม่บังคับ number 1 ขั้นเพิ่มค่าของลำดับ (ต้องเป็นบวก default = 1)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

GENERATESERIES เป็นฟังก์ชันที่สร้างตารางตัวเลขแบบลำดับเรียบง่าย ส่วนตัวผมชอบใช้เพื่อสร้าง parameter table สำหรับ slicer ตัวเลข หรือสร้างชุดค่า discount/commission range สำหรับการวิเคราะห์ what-if

สิ่งที่เจ๋งคือ มันง่ายมากในการใช้ แต่มีความจำเป็นสูงมาก โดยเฉพาะเวลาต้องสร้าง lookup table ตัวเลขที่ติดต่อกัน แทนที่จะไปพิมพ์ตัวเลขด้วยมือ

ส่วนตัวผม ถ้าต้องการเพิ่มความซับซ้อน เช่น เพิ่มคำอธิบาย หรือ label ให้แต่ละตัวเลข ก็ใช้ ADDCOLUMNS ช่วยได้ครับ 😎 วิธีนี้ทำให้ parameter table ของเราเป็นตารางสมบูรณ์ที่พร้อมใช้เลย

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: สร้างตาราง 1 ถึง 10 (เพิ่มทีละ 1)Numbers 1-10 = GENERATESERIES(1, 10)

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

fx
Numbers 1-10 =
GENERATESERIES(1, 10)

ผลลัพธ์ตารางที่มีคอลัมน์ Value: 1,2,3,4,5,6,7,8,9,10
ตัวอย่างที่ 2: สร้าง parameter table สำหรับ discount (ทีละ 5%)Discount Parameter = GENERATESERIES(0, 50, 5)

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

fx
Discount Parameter =
GENERATESERIES(0, 50, 5)

ผลลัพธ์ตารางตัวเลข 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50
ตัวอย่างที่ 3: สร้าง rating scale 0.5 ถึง 5 (ทีละ 0.5)Rating Scale = GENERATESERIES(0.5, 5, 0.5)

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

fx
Rating Scale =
GENERATESERIES(0.5, 5, 0.5)

ผลลัพธ์ตาราง 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5
ตัวอย่างที่ 4: ใช้กับ ADDCOLUMNS เพื่อสร้าง lookup table สมบูรณ์Discount Table = ADDCOLUMNS( GENERATESERIES(0, 50, 5), "Discount Label", FORMAT([Value], "0%"), "Price Factor", (100 – [Value]) / 100 )

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

fx
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, …)

FAQs

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

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

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

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

EndValue < StartValue จะเกิดอะไร?+

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

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

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

ใช้ GENERATESERIES ใน DirectQuery ได้ไหม?+

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ GENERATESERIES จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้GENERATESERIESTable manipulation
Table manipulation (5)
ADDCOLUMNS

ADDCOLUMNS เป็นฟังก์ชัน table transformation ที่ใช้สำหรับเพิ่มคอลัมน์ใหม่ (Calculated Columns) เข้าไปในตารางที่มีอยู่เดิม โดยคำนวณค่าในแต่ละแถวผ่าน Row Context และส่งคืนตารางเดิมพร้อมคอลัมน์ใหม่ต่อท้าย

DATATABLE

DATATABLE สร้างตารางแบบ hardcode ด้วยข้อมูลคงที่ โดยระบุชื่อคอลัมน์ ชนิดข้อมูล และค่าของแต่ละแถว เหมาะสำหรับตารางอ้างอิงเล็กๆ เช่น lookup table หรือข้อมูลตัวอย่าง

GENERATE

GENERATE วนทีละแถวใน Table1 แล้วประเมิน Table2 ในบริบทของแถวนั้น (row context) จากนั้นรวมผลทั้งหมดเป็นตารางเดียว ถ้า Table2 ว่างเปล่าในรอบไหน แถวนั้นจาก Table1 จะถูกตัดออก (ต่างจาก GENERATEALL)

GENERATEALL

GENERATEALL วนแถวของตาราง 1 แล้วสร้าง Cartesian product กับผลลัพธ์ของตาราง 2 โดยคงแถวที่ไม่มีข้อมูลย่อย ต่างจาก GENERATE ตรงที่ไม่ตัดแถวหลักออก

SELECTCOLUMNS

สร้างตารางใหม่โดยเลือกเฉพาะคอลัมน์ที่ต้องการจากตารางต้นฉบับและเพิ่มคอลัมน์ที่คำนวณได้ ต่างจาก ADDCOLUMNS ตรงที่ SELECTCOLUMNS เริ่มจากตารางว่างแล้วเพิ่มเฉพาะคอลัมน์ที่ระบุ ทำให้สามารถปรับโครงสร้างตารางและเลือกข้อมูลที่จำเป็นได้อย่างยืดหยุ่น

Date and Time (1)
CALENDAR

CALENDAR ใช้สำหรับสร้างตารางวันที่ครบถ้วนตั้งแต่วันเริ่มต้นถึงวันสิ้นสุดโดยไม่มีช่องว่าง เหมาะสำหรับสร้างตารางวันที่โครงสร้างพื้นฐาน (Date Dimension) ที่ใช้ร่วมกับ Time Intelligence Function

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่