Date.DayOfWeekName คืนค่าชื่อวันในสัปดาห์เป็นข้อความ เหมาะสำหรับแสดงวันจากวันที่ในรูปแบบ Monday, Tuesday เป็นต้น สามารถกำหนด culture เพื่อแปลชื่อวันเป็นภาษาต่างๆ ได้
=Date.DayOfWeekName(date as any, optional culture as nullable text) as nullable text
=Date.DayOfWeekName(date as any, optional culture as nullable text) as nullable text
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| date | date | Yes | วันที่ที่ต้องการดึงชื่อวันในสัปดาห์ สามารถเป็น #date(year, month, day) หรือ datetime value | |
| culture | text | Optional | Culture code สำหรับกำหนดภาษาของชื่อวัน เช่น “en-US”, “th-TH”, “de-DE” ถ้าไม่ระบุจะใช้ culture ตามค่า default |
เพิ่มคอลัมน์ชื่อวันเพื่อแสดงสำหรับแต่ละวันที่ในรายงาน
ใช้ชื่อวันเพื่อกรองข้อมูลสำหรับวันจันทร์-ศุกร์
เพิ่มคอลัมน์ชื่อวันเพื่อจัดเรียงข้อมูลตามรูปแบบการทำงาน
Date.DayOfWeekName(#date(2025, 1, 15))=Date.DayOfWeekName(#date(2025, 1, 15))
"Wednesday"
Date.DayOfWeekName(#date(2025, 1, 15), "th-TH")=Date.DayOfWeekName(#date(2025, 1, 15), "th-TH")
"พุธ"
let Source = Table.FromRows({{#date(2025,1,13), "A"}, {#date(2025,1,14), "B"}}, {"Date", "Item"}), AddDay = Table.AddColumn(Source, "DayName", each Date.DayOfWe…let
Source = Table.FromRows({{#date(2025,1,13), "A"}, {#date(2025,1,14), "B"}}, {"Date", "Item"}),
AddDay = Table.AddColumn(Source, "DayName", each Date.DayOfWeekName([Date], "en-US"))
in
AddDay
ตารางที่เพิ่มคอลัมน์ DayName = "Monday", "Tuesday"
let Source = Table.FromRows({{#date(2025,1,13), 1000}, {#date(2025,1,14), 2000}, {#date(2025,1,15), 1500}}, {"Date", "Amount"}), AddDayName = Table.AddColumn(So…let
Source = Table.FromRows({{#date(2025,1,13), 1000}, {#date(2025,1,14), 2000}, {#date(2025,1,15), 1500}}, {"Date", "Amount"}),
AddDayName = Table.AddColumn(Source, "Day", each Date.DayOfWeekName([Date], "th-TH")),
Grouped = Table.Group(AddDayName, {"Day"}, {{"TotalAmount", each List.Sum([Amount]), type number}})
in
Grouped
ตารางที่มีแถวสำหรับแต่ละวัน (จันทร์, อังคาร, พุธ) พร้อมยอดรวม
ผม Date.DayOfWeekName คืนค่าชื่อวัน (“Monday”, “Tuesday”) ส่วน Date.DayOfWeek คืนค่าเป็นตัวเลข (0-6) ฟังก์ชัน DayOfWeekName เหมาะสำหรับแสดงผลให้ผู้ใช้อ่าน DayOfWeek เหมาะสำหรับการเปรียบเทียบหรือตรรกะภายในโค้ด
ผมกล่าว ถ้าไม่ระบุ parameter culture ฟังก์ชันจะใช้ culture ของระบบ โดยทั่วไปจะเป็นภาษาอังกฤษ (“Monday”) แต่ถ้าต้องการให้ชัวร์ว่าจะได้ผลลัพธ์ตามต้องการ ให้ระบุ culture อย่างชัดเจน เช่น “th-TH” หรือ “en-US”
ผมแนะนำให้ใช้ Date.DayOfWeek (ตัวเลข) สำหรับการกรองแทน เพราะการเปรียบเทียบตัวเลขเร็วกว่า และหลีกเลี่ยงปัญหา locale ไม่ตรงกัน แต่ถ้าจำเป็นต้องใช้ชื่อวัน สามารถใช้ได้ เช่น Table.SelectRows(Source, each Date.DayOfWeekName([Date], “en-US”) = “Monday”)
Date.DayOfWeekName ดึงชื่อวันในสัปดาห์จากวันที่ (เช่น #date(2025,1,15)) และคืนค่าเป็นข้อความ เช่น “Wednesday” ฟังก์ชันนี้มี parameter ตัวที่สองเป็น optional ซึ่งเป็น culture code เพื่อแปลชื่อวันเป็นภาษาอื่นๆ
ที่เจ๋งคือเราสามารถใช้ culture parameter เพื่อเปลี่ยนผลลัพธ์ได้ เช่น ถ้า culture = “th-TH” จะได้ “จันทร์” แทน “Monday” ซึ่งทำให้รายงานดูเป็นภาษาท้องถิ่นของผู้ใช้ได้อย่างง่ายดาย
ส่วนตัวผมใช้ฟังก์ชันนี้ทุกครั้งที่ต้องแสดงวันเป็นข้อความในรายงาน บ่อยครั้งมากเพราะตัวเลขวัน (0-6) ยากต่อการอ่านเข้าใจสำหรับผู้ใช้งาน