Thep Excel

CALENDARAUTO – สร้างตารางวันที่อัตโนมัติ (ตามข้อมูลที่มี)

สร้างตารางวันที่อัตโนมัติจากการสแกนข้อมูลใน Model

CALENDARAUTO สร้างตารางที่มีคอลัมน์ Date โดยอัตโนมัติ โดยอ้างอิงจากช่วงวันที่ Min/Max ของคอลัมน์ Date ทั้งหมดใน Data Model (ยกเว้น Calculated Column) โดยจะเริ่มที่ 1 ม.ค. ของปีแรก และจบที่ 31 ธ.ค. ของปีสุดท้ายเสมอ

=CALENDARAUTO( [FiscalYearEndMonth] )

By ThepExcel AI Agent
1 December 2025

Syntax & Arguments

=CALENDARAUTO( [FiscalYearEndMonth] )

Argument Type Required Default Description
FiscalYearEndMonth integer Optional 12 เดือนสิ้นสุดปีบัญชี (1-12) หากไม่ระบุจะถือว่าเป็นเดือน 12 (ธันวาคม)

How it works

การสร้าง Date Table แบบเร่งด่วน

ต้องการสร้างตารางวันที่เพื่อใช้งานทันที โดยมั่นใจว่าข้อมูลใน Model สะอาดและถูกต้อง

การรองรับปีงบประมาณ

ระบุเดือนสิ้นสุดปีงบประมาณ เพื่อให้ Range ของตารางวันที่ครอบคลุมปีงบประมาณนั้นๆ อย่างสมบูรณ์

Examples

ตัวอย่างที่ 1: การใช้งานพื้นฐาน

ถ้าข้อมูลใน Sales มีตั้งแต่ 15 มี.ค. 2021 ถึง 20 ต.ค. 2023 -> CALENDARAUTO จะสร้างตั้งแต่ 1 ม.ค. 2021 ถึง 31 ธ.ค. 2023
DAX Formula:

Date Table = CALENDARAUTO()

Result:

ตารางวันที่ครอบคลุมข้อมูลทั้งหมด (เริ่ม 1 ม.ค. จบ 31 ธ.ค.)

ตัวอย่างที่ 2: ปีงบประมาณสิ้นสุดเดือนมีนาคม (Fiscal Year)

ใช้เลข 3 เพื่อบอกว่าปีงบประมาณจบเดือนมีนาคม ระบบจะคำนวณช่วงวันที่ให้ครอบคลุมปีงบประมาณนั้นๆ ทั้งปี
DAX Formula:

Fiscal Date = CALENDARAUTO(3)

Result:

ตารางวันที่ ที่จะจบวันที่ 31 มีนาคม ของปีสุดท้ายเสมอ

ตัวอย่างที่ 3: สร้างตารางวันที่พร้อมคอลัมน์อื่นๆ

ใช้ ADDCOLUMNS หุ้ม CALENDARAUTO เพื่อสร้างตาราง Dimension Date ที่สมบูรณ์ในขั้นตอนเดียว
DAX Formula:

Date = 
ADDCOLUMNS(
    CALENDARAUTO(),
    "Year", YEAR([Date]),
    "Month", FORMAT([Date], "mmmm"),
    "Year-Month", FORMAT([Date], "yyyy-mm")
)

Result:

ตารางวันที่สมบูรณ์พร้อม Year, Month

FAQs

ทำไมได้วันที่ปี 1899 หรือ 1900 มาด้วย?

เพราะใน Model ของคุณอาจมีคอลัมน์ Date บางอันที่มีค่า Default เป็น 0 หรือค่าว่างที่ถูกแปลงเป็นวันที่เริ่มต้นของระบบ ให้ลองตรวจสอบและลบคอลัมน์วันที่ที่ไม่จำเป็นออก หรือเปลี่ยนไปใช้ CALENDAR แบบกำหนดช่วงเอง

CALENDARAUTO รวม Calculated Column ไหม?

ไม่รวม มันจะดูเฉพาะคอลัมน์จริง (Imported Data) และ Calculated Table เท่านั้น เพื่อป้องกัน Circular Dependency

Resources & Related

Additional Notes

CALENDARAUTO คือวิธีที่ง่ายที่สุดในการสร้าง Date Table โดยมันจะสแกนหาคอลัมน์ที่เป็น Date ทั้งหมดใน Data Model ของเรา เพื่อหาว่า “วันแรกสุด” และ “วันสุดท้ายสุด” คือเมื่อไหร่ จากนั้นจะสร้างตารางวันที่ที่ครอบคลุมช่วงเวลาเหล่านั้นให้อัตโนมัติ

ข้อดีคือไม่ต้องเขียนสูตรหา MIN/MAX เอง แต่ข้อเสียคือถ้ามีข้อมูลวันที่ผิดปกติ (เช่น ปี 1900 หรือ ปี 9999) ตารางวันที่ก็จะยาวมหาศาลตามไปด้วย

Leave a Reply

Your email address will not be published. Required fields are marked *