Enumeration type ที่แทนค่าวันในสัปดาห์ (0-6) สำหรับใช้กับฟังก์ชันหรือการเปรียบเทียบในการจัดการข้อมูลตามวัน
=Day.Sunday | Day.Monday | Day.Tuesday | Day.Wednesday | Day.Thursday | Day.Friday | Day.Saturday
=Day.Sunday | Day.Monday | Day.Tuesday | Day.Wednesday | Day.Thursday | Day.Friday | Day.Saturday
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Day.Sunday | Day enumeration | Optional | แทนค่า 0 (วันอาทิตย์) | |
| Day.Monday | Day enumeration | Optional | แทนค่า 1 (วันจันทร์) | |
| Day.Tuesday | Day enumeration | Optional | แทนค่า 2 (วันอังคาร) | |
| Day.Wednesday | Day enumeration | Optional | แทนค่า 3 (วันพุธ) | |
| Day.Thursday | Day enumeration | Optional | แทนค่า 4 (วันพฤหัสบดี) | |
| Day.Friday | Day enumeration | Optional | แทนค่า 5 (วันศุกร์) | |
| Day.Saturday | Day enumeration | Optional | แทนค่า 6 (วันเสาร์) |
Date.DayOfWeek(#date(2025, 1, 15), Day.Sunday)=Date.DayOfWeek(#date(2025, 1, 15), Day.Sunday)
3
Date.DayOfWeek(#date(2025, 1, 15), Day.Monday)=Date.DayOfWeek(#date(2025, 1, 15), Day.Monday)
2
Date.StartOfWeek(#datetime(2025, 1, 15, 8, 10, 32), Day.Monday)=Date.StartOfWeek(#datetime(2025, 1, 15, 8, 10, 32), Day.Monday)
#datetime(2025, 1, 13, 0, 0, 0)
Date.DayOfWeek(#date(2025, 1, 17)) = Day.Friday=Date.DayOfWeek(#date(2025, 1, 17)) = Day.Friday
true
Day.Type คือ enumeration ที่ Power Query สร้างให้เพื่อให้โค้ด M อ่านเข้าใจง่าย แทนที่ต้องจำว่าเลข 0 = Sunday, 1 = Monday… ผมเขียน Day.Sunday, Day.Monday ได้เลย ค่าที่เก็บไว้ยังคงเป็นตัวเลขอยู่นั่นแหละ แต่อ่านแล้วชัดเจนกว่าเยอะ
ผมใช้ Day.Type กับฟังก์ชันที่เกี่ยวข้องกับการจัดการสัปดาห์เป็นหลัก เช่น Date.DayOfWeek(), Date.StartOfWeek(), Date.EndOfWeek() เมื่อมีพารามิเตอร์ firstDayOfWeek อยู่ ก็ส่ง Day.Monday หรือวันไหนเข้าไปได้เลย
ส่วนตัวผมพบว่าฟังก์ชันจะใช้ default setting ของระบบ ซึ่งมักจะเป็น Sunday หรือตามการตั้งค่า Culture ของเครื่องคุณ ถ้าต้องการให้ผลลัพธ์ Consistent ทุกเครื่องทุกที่ ผมแนะนำให้ระบุ Day.Type ไว้เสมอ
Day.Type คือ enumeration type ในPower Query ที่ใช้แทนค่าวันในสัปดาห์ได้ครบ 7 วัน ตั้งแต่ Sunday (0) ไปถึง Saturday (6) และเมื่อใช้กับฟังก์ชันต่างๆ มันจะถูกแปลงเป็นตัวเลขอัตโนมัติ
ที่เจ๋งคือ Day.Type ช่วยให้โค้ด M อ่านง่ายขึ้นมาก แทนที่จะเขียนตัวเลข 0-6 โดยตรง คุณเขียน Day.Monday หรือ Day.Friday ซึ่งชัดเจนว่ากำลังหมายถึงวันอะไร
ส่วนตัวผมใช้ Day.Type เมื่อต้อง Filter หรือ Group ข้อมูลตามวันในสัปดาห์ เช่น หาวันหยุดสุดสัปดาห์หรือจัดกำหนดการตามวันทำงาน มันทำให้ Logic ชัดเจนและง่ายต่อการแก้ไขในอนาคต 😎