Thep Excel

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

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

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

ความนิยม6/10
ความยาก2/10
ประโยชน์6/10

อัปเดต 13 December 2025

Syntax & Arguments

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: หาวันในสัปดาห์ โดยอาทิตย์=1Weekday Sun Start = WEEKDAY('DimDate'[Date])

ใช้ค่าตั้งต้น ReturnType 1 ให้อาทิตย์เป็นวันแรกของสัปดาห์ เหมาะกับรายงานตะวันตก

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

ผลลัพธ์1=อาทิตย์, 2=จันทร์, …, 7=เสาร์
ตัวอย่างที่ 2: หาวันในสัปดาห์ โดยจันทร์=1Weekday Mon Start = WEEKDAY('DimDate'[Date], 2)

ใช้ ReturnType 2 ให้จันทร์เป็นวันแรก ซึ่งตรงกับปฏิทินส่วนใหญ่ของโลก

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

ผลลัพธ์1=จันทร์, 2=อังคาร, …, 7=อาทิตย์
ตัวอย่างที่ 3: แยกวันทำงาน/วันหยุดIs Weekend = IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)

เมื่อใช้ ReturnType 2 วันเสาร์ (6) และอาทิตย์ (7) จะมีค่า >= 6 ทำให้ตรวจสอบวันหยุดง่ายขึ้น

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

ผลลัพธ์TRUE สำหรับเสาร์/อาทิตย์, FALSE สำหรับวันจันทร์-ศุกร์
ตัวอย่างที่ 4: ใช้ใน Calculated ColumnDay 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 เพื่อแปลงเป็นชื่อวันที่อ่านง่าย

fx
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")

ผลลัพธ์วันตามชื่อ เช่น "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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ WEEKDAY จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้WEEKDAYDate and Time
Date and Time (5)
DATE

DATE สร้างค่าวันที่จากตัวเลข Year/Month/Day แล้วคืนค่าเป็นชนิด datetime เหมาะกับการประกอบวันที่จากคอลัมน์แยกส่วนหรือสร้างวันที่อ้างอิง เช่น วันแรกของเดือน วันตัดยอด

DATEVALUE

DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกับข้อมูลวันที่ที่เก็บเป็นข้อความและต้องแปลงเป็นวันที่จริงเพื่อการคำนวณตามเวลา

DAY

DAY คืนค่าเลขวันของเดือนจากค่าวันที่/เวลา (1–31) เป็นฟังก์ชันพื้นฐานสำหรับการวิเคราะห์ตามวันของเดือน การจัดกลุ่ม และการสร้างคอลัมน์ช่วย

MONTH (DAX)

MONTH ดึงเลขเดือน (integer 1-12) จากค่า datetime โดยรับ input เป็น datetime value, column reference, หรือ text representation ของวันที่ และคืนค่าตั้งแต่ 1 (มกราคม) ถึง 12 (ธันวาคม) ตาม Gregorian calendar ใช้สร้าง calculated column ใน Date table เพื่อเป็น sort column สำหรับชื่อเดือน และใช้ใน measure เพื่อสร้าง conditional logic กับ custom time intelligence calculations

ฟังก์ชัน YEAR ใน DAX

ดึงปีจากวันที่ในรูปแบบตัวเลข 4 หลัก สำหรับวิเคราะห์ข้อมูลตามปี

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่