แปลงวันที่ให้เป็นตัวเลข 0-6 แทนวันในสัปดาห์ (0=อาทิตย์ โดยค่าเริ่มต้น)
=Date.DayOfWeek(dateTime as any, optional firstDayOfWeek as nullable number) as nullable number
=Date.DayOfWeek(dateTime as any, optional firstDayOfWeek as nullable number) as nullable number
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| dateTime | date, datetime, or datetimezone | Yes | วันที่ที่ต้องการหาลำดับวันในสัปดาห์ | |
| firstDayOfWeek | number (Day constant) | Optional | Day.Sunday | วันที่จะระบุเป็นวันแรกของสัปดาห์ (Day.Sunday, Day.Monday, เป็นต้น) ถ้าไม่ระบุจะใช้ค่าเริ่มต้น Day.Sunday |
Date.DayOfWeek(#date(2025, 1, 6))=Date.DayOfWeek(#date(2025, 1, 6))
1 (วันจันทร์)
Date.DayOfWeek(#date(2025, 1, 6), Day.Monday)=Date.DayOfWeek(#date(2025, 1, 6), Day.Monday)
0 (วันจันทร์)
let OrderDate = #date(2025, 1, 15), DayNumber = Date.DayOfWeek(OrderDate, Day.Monday), DayNames = {"จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย…let
OrderDate = #date(2025, 1, 15),
DayNumber = Date.DayOfWeek(OrderDate, Day.Monday),
DayNames = {"จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"},
DayName = DayNames{DayNumber}
in
DayName
"พุธ"
let Sales = Table.FromRows( {{#date(2025, 1, 6), 1200}, {#date(2025, 1, 7), 1500}}, {"Date", "Amount"} ), WithDayOfWeek = Table.AddColumn( Sales, "DayOfWeek", e…let
Sales = Table.FromRows(
{{#date(2025, 1, 6), 1200}, {#date(2025, 1, 7), 1500}},
{"Date", "Amount"}
),
WithDayOfWeek = Table.AddColumn(
Sales,
"DayOfWeek",
each Date.DayOfWeek([Date], Day.Monday)
)
in
WithDayOfWeek
ตารางที่มีคอลัมน์ DayOfWeek เพิ่มเข้ามา (ค่า: 0 สำหรับจันทร์ 1 สำหรับอังคาร)
let Sales = Table.FromRows( {{#date(2025, 1, 4), 500}, {#date(2025, 1, 5), 1200}, {#date(2025, 1, 6), 800}}, {"Date", "Amount"} ), WeekendOnly = Table.SelectRow…let
Sales = Table.FromRows(
{{#date(2025, 1, 4), 500}, {#date(2025, 1, 5), 1200}, {#date(2025, 1, 6), 800}},
{"Date", "Amount"}
),
WeekendOnly = Table.SelectRows(
Sales,
each Date.DayOfWeek([Date], Day.Monday) >= 5
)
in
WeekendOnly
ตารางที่มีเฉพาะข้อมูลจาก 5-6 มกราคม (เสาร์-อาทิตย์)
ขึ้นอยู่กับค่า firstDayOfWeek ที่คุณระบุ หากใช้ Day.Sunday (ค่าเริ่มต้น) จะเป็น 0=อาทิตย์ 1=จันทร์ … 6=เสาร์ หากใช้ Day.Monday จะเป็น 0=จันทร์ 1=อังคาร … 6=อาทิตย์
ค่าเริ่มต้นคือ Day.Sunday (ดังนั้นอาทิตย์ = 0) ลักษณะนี้อาจแตกต่างจากค่าเริ่มต้นของระบบปฏิบัติการหรือประเทศ
ได้ฟังก์ชันนี้ยอมรับ date, datetime, และ datetimezone ดังนั้นใช้กับ datetime ได้เลย เวลาไม่มีผลกับผลลัพธ์
Date.DayOfWeek คืนตัวเลข (0-6) ส่วน Date.DayOfWeekName คืนชื่อวัน (“Monday”, “Tuesday” เป็นต้น) เลือกใช้ตามที่ต้องการแสดง
ใช้เมื่อคุณต้องการให้ศุกร์เป็นวันแรก อาจมีในบริบทการจัดสัปดาห์ของบางพื้นที่หรือธุรกิจ
ฟังก์ชัน Date.DayOfWeek ใน Power Query M คืนค่าตัวเลขระหว่าง 0 ถึง 6 ที่แทนวันในสัปดาห์ของวันที่ที่กำหนด ตัวเลขนี้ขึ้นอยู่กับพารามิเตอร์ firstDayOfWeek ที่ระบุว่าวันไหนคือวันแรกของสัปดาห์
ที่เจ๋งคือคุณสามารถเปลี่ยนวันแรกของสัปดาห์ได้ ตัวอย่างเช่น ถ้าคุณบอกให้ Date.DayOfWeek ใช้ Day.Monday เป็นจุดเริ่มต้น จันทร์จะได้ค่า 0 แทนที่จะเป็น 1 วิธีนี้สมควรถ้าคุณกำลังทำงานกับโปรแกรมหรือประเทศที่ใช้จันทร์เป็นวันแรก
ส่วนตัวผมชอบใช้ Date.DayOfWeek กับ Table.AddColumn เมื่อต้องการเพิ่มคอลัมน์ที่แสดงลำดับวันของแต่ละแถว จากนั้นใช้ค่านี้ในการกรองหรือจัดเรียงข้อมูลตามวันที่ต้องการ เช่น การหาปริมาณขายเฉพาะวันจันทร์ วันเสาร์ เป็นต้น