ตัวอย่างที่ 1: การใช้งานพื้นฐาน
Date Table = CALENDARAUTO()
ตารางวันที่ครอบคลุมข้อมูลทั้งหมด (เริ่ม 1 ม.ค. จบ 31 ธ.ค.)
สร้างตารางวันที่อัตโนมัติจากการสแกนข้อมูลใน Model
CALENDARAUTO สร้างตารางที่มีคอลัมน์ Date โดยอัตโนมัติ โดยอ้างอิงจากช่วงวันที่ Min/Max ของคอลัมน์ Date ทั้งหมดใน Data Model (ยกเว้น Calculated Column) โดยจะเริ่มที่ 1 ม.ค. ของปีแรก และจบที่ 31 ธ.ค. ของปีสุดท้ายเสมอ
=CALENDARAUTO( [FiscalYearEndMonth] )
=CALENDARAUTO( [FiscalYearEndMonth] )
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| FiscalYearEndMonth | integer | Optional | 12 | เดือนสิ้นสุดปีบัญชี (1-12) หากไม่ระบุจะถือว่าเป็นเดือน 12 (ธันวาคม) |
ต้องการสร้างตารางวันที่เพื่อใช้งานทันที โดยมั่นใจว่าข้อมูลใน Model สะอาดและถูกต้อง
ระบุเดือนสิ้นสุดปีงบประมาณ เพื่อให้ Range ของตารางวันที่ครอบคลุมปีงบประมาณนั้นๆ อย่างสมบูรณ์
Date Table = CALENDARAUTO()
ตารางวันที่ครอบคลุมข้อมูลทั้งหมด (เริ่ม 1 ม.ค. จบ 31 ธ.ค.)
Fiscal Date = CALENDARAUTO(3)
ตารางวันที่ ที่จะจบวันที่ 31 มีนาคม ของปีสุดท้ายเสมอ
Date =
ADDCOLUMNS(
CALENDARAUTO(),
"Year", YEAR([Date]),
"Month", FORMAT([Date], "mmmm"),
"Year-Month", FORMAT([Date], "yyyy-mm")
)
ตารางวันที่สมบูรณ์พร้อม Year, Month
เพราะใน Model ของคุณอาจมีคอลัมน์ Date บางอันที่มีค่า Default เป็น 0 หรือค่าว่างที่ถูกแปลงเป็นวันที่เริ่มต้นของระบบ ให้ลองตรวจสอบและลบคอลัมน์วันที่ที่ไม่จำเป็นออก หรือเปลี่ยนไปใช้ CALENDAR แบบกำหนดช่วงเอง
ไม่รวม มันจะดูเฉพาะคอลัมน์จริง (Imported Data) และ Calculated Table เท่านั้น เพื่อป้องกัน Circular Dependency
CALENDARAUTO คือวิธีที่ง่ายที่สุดในการสร้าง Date Table โดยมันจะสแกนหาคอลัมน์ที่เป็น Date ทั้งหมดใน Data Model ของเรา เพื่อหาว่า “วันแรกสุด” และ “วันสุดท้ายสุด” คือเมื่อไหร่ จากนั้นจะสร้างตารางวันที่ที่ครอบคลุมช่วงเวลาเหล่านั้นให้อัตโนมัติ
ข้อดีคือไม่ต้องเขียนสูตรหา MIN/MAX เอง แต่ข้อเสียคือถ้ามีข้อมูลวันที่ผิดปกติ (เช่น ปี 1900 หรือ ปี 9999) ตารางวันที่ก็จะยาวมหาศาลตามไปด้วย