Thep Excel

Date.DayOfWeek – คืนค่าตัวเลขลำดับวันในสัปดาห์

แปลงวันที่ให้เป็นตัวเลข 0-6 แทนวันในสัปดาห์ (0=อาทิตย์ โดยค่าเริ่มต้น)

=Date.DayOfWeek(dateTime as any, optional firstDayOfWeek as nullable number) as nullable number

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
7/10

Difficulty
3/10

Usefulness
7/10

Syntax & Arguments

=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

Examples

หาลำดับวันพื้นฐาน (วันอาทิตย์เป็นวันแรก)
Date.DayOfWeek(#date(2025, 1, 6))
วันที่ 6 มกราคม 2025 เป็นวันจันทร์ และเมื่อวันอาทิตย์ = 0 ดังนั้นจันทร์ = 1
Power Query Formula:

=Date.DayOfWeek(#date(2025, 1, 6))

Result:

1 (วันจันทร์)

ใช้จันทร์เป็นวันแรกของสัปดาห์
Date.DayOfWeek(#date(2025, 1, 6), Day.Monday)
เมื่อ firstDayOfWeek = Day.Monday จันทร์ได้ค่า 0 แทนที่จะเป็น 1
Power Query Formula:

=Date.DayOfWeek(#date(2025, 1, 6), Day.Monday)

Result:

0 (วันจันทร์)

ใช้ในตัวอย่าง let…in สมบูรณ์
let OrderDate = #date(2025, 1, 15), DayNumber = Date.DayOfWeek(OrderDate, Day.Monday), DayNames = {"จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย…
วันที่ 15 มกราคม 2025 เป็นวันพุธ (index 2 เมื่อจันทร์ = 0)
Power Query Formula:

let
    OrderDate = #date(2025, 1, 15),
    DayNumber = Date.DayOfWeek(OrderDate, Day.Monday),
    DayNames = {"จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"},
    DayName = DayNames{DayNumber}
in
    DayName

Result:

"พุธ"

เพิ่มคอลัมน์วันในตาราง
let Sales = Table.FromRows( {{#date(2025, 1, 6), 1200}, {#date(2025, 1, 7), 1500}}, {"Date", "Amount"} ), WithDayOfWeek = Table.AddColumn( Sales, "DayOfWeek", e…
สร้างตารางแล้วเพิ่มคอลัมน์ DayOfWeek โดยใช้ Date.DayOfWeek
Power Query Formula:

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

Result:

ตารางที่มีคอลัมน์ 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…
ค่า >= 5 หมายถึง เสาร์ (5) และอาทิตย์ (6) เมื่อจันทร์ = 0
Power Query Formula:

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

Result:

ตารางที่มีเฉพาะข้อมูลจาก 5-6 มกราคม (เสาร์-อาทิตย์)

FAQs

ค่าตัวเลข 0-6 หมายถึงอะไรบ้าง?

ขึ้นอยู่กับค่า firstDayOfWeek ที่คุณระบุ หากใช้ Day.Sunday (ค่าเริ่มต้น) จะเป็น 0=อาทิตย์ 1=จันทร์ … 6=เสาร์ หากใช้ Day.Monday จะเป็น 0=จันทร์ 1=อังคาร … 6=อาทิตย์

ถ้าไม่ระบุ firstDayOfWeek ค่าเริ่มต้นจะเป็นอะไร?

ค่าเริ่มต้นคือ Day.Sunday (ดังนั้นอาทิตย์ = 0) ลักษณะนี้อาจแตกต่างจากค่าเริ่มต้นของระบบปฏิบัติการหรือประเทศ

ใช้ Date.DayOfWeek กับ DateTime ได้ไหม?

ได้ฟังก์ชันนี้ยอมรับ date, datetime, และ datetimezone ดังนั้นใช้กับ datetime ได้เลย เวลาไม่มีผลกับผลลัพธ์

ต่างกับ Date.DayOfWeekName อย่างไร?

Date.DayOfWeek คืนตัวเลข (0-6) ส่วน Date.DayOfWeekName คืนชื่อวัน (“Monday”, “Tuesday” เป็นต้น) เลือกใช้ตามที่ต้องการแสดง

ใช้ Day.Friday มากเมื่อไหร่?

ใช้เมื่อคุณต้องการให้ศุกร์เป็นวันแรก อาจมีในบริบทการจัดสัปดาห์ของบางพื้นที่หรือธุรกิจ

Resources & Related

Additional Notes

ฟังก์ชัน Date.DayOfWeek ใน Power Query M คืนค่าตัวเลขระหว่าง 0 ถึง 6 ที่แทนวันในสัปดาห์ของวันที่ที่กำหนด ตัวเลขนี้ขึ้นอยู่กับพารามิเตอร์ firstDayOfWeek ที่ระบุว่าวันไหนคือวันแรกของสัปดาห์

ที่เจ๋งคือคุณสามารถเปลี่ยนวันแรกของสัปดาห์ได้ ตัวอย่างเช่น ถ้าคุณบอกให้ Date.DayOfWeek ใช้ Day.Monday เป็นจุดเริ่มต้น จันทร์จะได้ค่า 0 แทนที่จะเป็น 1 วิธีนี้สมควรถ้าคุณกำลังทำงานกับโปรแกรมหรือประเทศที่ใช้จันทร์เป็นวันแรก

ส่วนตัวผมชอบใช้ Date.DayOfWeek กับ Table.AddColumn เมื่อต้องการเพิ่มคอลัมน์ที่แสดงลำดับวันของแต่ละแถว จากนั้นใช้ค่านี้ในการกรองหรือจัดเรียงข้อมูลตามวันที่ต้องการ เช่น การหาปริมาณขายเฉพาะวันจันทร์ วันเสาร์ เป็นต้น

Leave a Reply

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