Thep Excel

WEEKDAY – หาวันในสัปดาห์จากวันที่

WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได้ตามต้องการ เหมาะสำหรับการแยกวันทำงาน วันหยุด หรือวิเคราะห์พฤติกรรมตามวัน

=WEEKDAY(<Date>, [<ReturnType>])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
2/10

Usefulness
6/10

Syntax & Arguments

=WEEKDAY(<Date>, [<ReturnType>])

Argument Type Required Default Description
Date datetime Yes วันที่หรือเวลาที่ต้องการหาค่าวันในสัปดาห์ สามารถเป็นคอลัมน์วันที่ หรือ TODAY() หรือ DATE() function
ReturnType integer Optional 1 กำหนดรูปแบบการนับวัน (ใช้เลขใด 1-7 หรือ 0-6 และวันไหนเริ่มสัปดาห์) – ค่าตั้งต้นคือ 1

How it works

แยกวันทำงาน/วันหยุด

เช่น ใช้ WEEKDAY แล้วตรวจว่าค่าอยู่ในช่วงวันเสาร์-อาทิตย์หรือไม่

วิเคราะห์ยอดขายตามวันในสัปดาห์

สร้างเลขวันในสัปดาห์เพื่อใช้จัดกลุ่มและทำกราฟ

Examples

ตัวอย่างที่ 1: หาวันในสัปดาห์ โดยอาทิตย์=1
Weekday Sun Start = WEEKDAY('DimDate'[Date])
ใช้ค่าตั้งต้น ReturnType 1 ให้อาทิตย์เป็นวันแรกของสัปดาห์ เหมาะกับรายงานตะวันตก
DAX Formula:

Weekday Sun Start =
WEEKDAY('DimDate'[Date])

Result:

1=อาทิตย์, 2=จันทร์, ..., 7=เสาร์

ตัวอย่างที่ 2: หาวันในสัปดาห์ โดยจันทร์=1
Weekday Mon Start = WEEKDAY('DimDate'[Date], 2)
ใช้ ReturnType 2 ให้จันทร์เป็นวันแรก ซึ่งตรงกับปฏิทินส่วนใหญ่ของโลก
DAX Formula:

Weekday Mon Start =
WEEKDAY('DimDate'[Date], 2)

Result:

1=จันทร์, 2=อังคาร, ..., 7=อาทิตย์

ตัวอย่างที่ 3: แยกวันทำงาน/วันหยุด
Is Weekend = IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)
เมื่อใช้ ReturnType 2 วันเสาร์ (6) และอาทิตย์ (7) จะมีค่า >= 6 ทำให้ตรวจสอบวันหยุดง่ายขึ้น
DAX Formula:

Is Weekend =
IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)

Result:

TRUE สำหรับเสาร์/อาทิตย์, FALSE สำหรับวันจันทร์-ศุกร์

ตัวอย่างที่ 4: ใช้ใน Calculated Column
Day Name = VAR wd = WEEKDAY('DimDate'[Date], 2) RETURN SWITCH(wd, 1, "Monday", 2, "Tuesday", 3, "Wednesday", 4, "Thursday", 5, "Friday", 6, "Saturday", 7, "Sund…
ใช้ VAR เก็บค่า WEEKDAY ไว้ แล้ว SWITCH เพื่อแปลงเป็นชื่อวันที่อ่านง่าย
DAX Formula:

Day Name =
VAR wd = WEEKDAY('DimDate'[Date], 2)
RETURN
  SWITCH(wd,
    1, "Monday",
    2, "Tuesday",
    3, "Wednesday",
    4, "Thursday",
    5, "Friday",
    6, "Saturday",
    7, "Sunday",
    "Unknown")

Result:

วันตามชื่อ เช่น "Monday", "Tuesday" เป็นต้น

FAQs

ReturnType 1, 2, 3 ต่างกันอย่างไร?

ReturnType 1 (ค่าตั้งต้น): อาทิตย์=1, เสาร์=7 | ReturnType 2: จันทร์=1, อาทิตย์=7 | ReturnType 3: จันทร์=0, อาทิตย์=6 ส่วนตัวผมชอบใช้ ReturnType 2 มากที่สุด เพราะตรงกับปฏิทินธรรมชาติของคนเอเชีย

WEEKDAY vs WEEKNUM ต่างกันอย่างไร?

WEEKDAY คืนค่า 1-7 แทนวันในสัปดาห์ (จันทร์, อังคาร…) ส่วน WEEKNUM คืนค่า 1-52/53 แทนสัปดาห์ที่เท่าไหร่ของปีนั้น ตัวอย่างเช่น “วันนี้คือจันทร์ (WEEKDAY=1) ของสัปดาห์ที่ 10 ของปี (WEEKNUM=10)”

ทำไมต้องใช้ ReturnType? ไม่ใช้ค่าตั้งต้นไม่ได้หรือ?

ใช้ได้ แต่การเลือก ReturnType ที่เหมาะสมจะทำให้เขียน logic ง่ายขึ้น เช่นถ้าใช้ ReturnType 1 อาทิตย์=1 แต่โลกส่วนใหญ่นับสัปดาห์เริ่มจันทร์ จึงอาจทำให้สับสน ผมแนะนำให้เลือก ReturnType ที่ตรงกับโดเมนของงาน (ประเทศ, ธรรมชาติการทำงาน)

WEEKDAY เป็น scalar function หรือ table function?

WEEKDAY เป็น scalar function ที่คืนค่าเดียว (เลข 1-7) ใช้ได้ใน Calculated Columns, Measures, Calculated Tables ผมมักใช้ใน Calculated Column มากที่สุด เพราะสะดวกในการสร้างคอลัมน์ helper เพื่อวิเคราะห์ต่อไป

Resources & Related

Additional Notes

WEEKDAY เป็นฟังก์ชันที่แปลงวันที่ให้เป็นหมายเลขวันในสัปดาห์ สามารถเลือก ReturnType เพื่อกำหนดว่าสัปดาห์จะเริ่มที่วันไหน (อาทิตย์ หรือจันทร์) ทำให้ได้ค่าเลขที่ตรงกับการใช้งานจริงของคุณ

ที่เจ๋งคือ ReturnType มีหลายตัวเลือก ตั้งแต่ 1-17 ซึ่งให้ความยืดหยุ่นในการกำหนดวันเริ่มต้นสัปดาห์ เช่น ถ้าองค์กรคุณใช้เริ่มจันทร์ ก็ใช้ ReturnType 2 แล้วจันทร์จะเป็น 1 แทน ทำให้การเขียน logic วันหยุดหรือวันทำงานง่ายขึ้น

ส่วนตัวผมแนะนำให้รู้ค่าความหมายของแต่ละ ReturnType ก่อน เพราะถ้ากำหนดผิด ค่าเลขก็จะไม่ตรงกับการตีความในรายงาน ส่วนใหญ่ผมใช้ ReturnType 2 (จันทร์=1 ถึง อาทิตย์=7) เพราะสอดคล้องกับปฏิทินทั่วไป

Leave a Reply

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