WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได้ตามต้องการ เหมาะสำหรับการแยกวันทำงาน วันหยุด หรือวิเคราะห์พฤติกรรมตามวัน
=WEEKDAY(<Date>, [<ReturnType>])
=WEEKDAY(<Date>, [<ReturnType>])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Date | datetime | Yes | วันที่หรือเวลาที่ต้องการหาค่าวันในสัปดาห์ สามารถเป็นคอลัมน์วันที่ หรือ TODAY() หรือ DATE() function | |
| ReturnType | integer | Optional | 1 | กำหนดรูปแบบการนับวัน (ใช้เลขใด 1-7 หรือ 0-6 และวันไหนเริ่มสัปดาห์) – ค่าตั้งต้นคือ 1 |
เช่น ใช้ WEEKDAY แล้วตรวจว่าค่าอยู่ในช่วงวันเสาร์-อาทิตย์หรือไม่
สร้างเลขวันในสัปดาห์เพื่อใช้จัดกลุ่มและทำกราฟ
Weekday Sun Start = WEEKDAY('DimDate'[Date])Weekday Sun Start =
WEEKDAY('DimDate'[Date])
1=อาทิตย์, 2=จันทร์, ..., 7=เสาร์
Weekday Mon Start = WEEKDAY('DimDate'[Date], 2)Weekday Mon Start =
WEEKDAY('DimDate'[Date], 2)
1=จันทร์, 2=อังคาร, ..., 7=อาทิตย์
Is Weekend = IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)Is Weekend =
IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)
TRUE สำหรับเสาร์/อาทิตย์, FALSE สำหรับวันจันทร์-ศุกร์
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…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" เป็นต้น
ReturnType 1 (ค่าตั้งต้น): อาทิตย์=1, เสาร์=7 | ReturnType 2: จันทร์=1, อาทิตย์=7 | ReturnType 3: จันทร์=0, อาทิตย์=6 ส่วนตัวผมชอบใช้ ReturnType 2 มากที่สุด เพราะตรงกับปฏิทินธรรมชาติของคนเอเชีย
WEEKDAY คืนค่า 1-7 แทนวันในสัปดาห์ (จันทร์, อังคาร…) ส่วน WEEKNUM คืนค่า 1-52/53 แทนสัปดาห์ที่เท่าไหร่ของปีนั้น ตัวอย่างเช่น “วันนี้คือจันทร์ (WEEKDAY=1) ของสัปดาห์ที่ 10 ของปี (WEEKNUM=10)”
ใช้ได้ แต่การเลือก ReturnType ที่เหมาะสมจะทำให้เขียน logic ง่ายขึ้น เช่นถ้าใช้ ReturnType 1 อาทิตย์=1 แต่โลกส่วนใหญ่นับสัปดาห์เริ่มจันทร์ จึงอาจทำให้สับสน ผมแนะนำให้เลือก ReturnType ที่ตรงกับโดเมนของงาน (ประเทศ, ธรรมชาติการทำงาน)
WEEKDAY เป็น scalar function ที่คืนค่าเดียว (เลข 1-7) ใช้ได้ใน Calculated Columns, Measures, Calculated Tables ผมมักใช้ใน Calculated Column มากที่สุด เพราะสะดวกในการสร้างคอลัมน์ helper เพื่อวิเคราะห์ต่อไป
WEEKDAY เป็นฟังก์ชันที่แปลงวันที่ให้เป็นหมายเลขวันในสัปดาห์ สามารถเลือก ReturnType เพื่อกำหนดว่าสัปดาห์จะเริ่มที่วันไหน (อาทิตย์ หรือจันทร์) ทำให้ได้ค่าเลขที่ตรงกับการใช้งานจริงของคุณ
ที่เจ๋งคือ ReturnType มีหลายตัวเลือก ตั้งแต่ 1-17 ซึ่งให้ความยืดหยุ่นในการกำหนดวันเริ่มต้นสัปดาห์ เช่น ถ้าองค์กรคุณใช้เริ่มจันทร์ ก็ใช้ ReturnType 2 แล้วจันทร์จะเป็น 1 แทน ทำให้การเขียน logic วันหยุดหรือวันทำงานง่ายขึ้น
ส่วนตัวผมแนะนำให้รู้ค่าความหมายของแต่ละ ReturnType ก่อน เพราะถ้ากำหนดผิด ค่าเลขก็จะไม่ตรงกับการตีความในรายงาน ส่วนใหญ่ผมใช้ ReturnType 2 (จันทร์=1 ถึง อาทิตย์=7) เพราะสอดคล้องกับปฏิทินทั่วไป