Date.DayOfWeekName คืนค่าชื่อวันในสัปดาห์เป็นข้อความ เหมาะสำหรับแสดงวันจากวันที่ในรูปแบบ Monday, Tuesday เป็นต้น สามารถกำหนด culture เพื่อแปลชื่อวันเป็นภาษาต่างๆ ได้
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| date | date | วันที่ที่ต้องการดึงชื่อวันในสัปดาห์ สามารถเป็น #date(year, month, day) หรือ datetime value |
| [culture]ไม่บังคับ | text | Culture code สำหรับกำหนดภาษาของชื่อวัน เช่น “en-US”, “th-TH”, “de-DE” ถ้าไม่ระบุจะใช้ culture ตามค่า default |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Date.DayOfWeekName ดึงชื่อวันในสัปดาห์จากวันที่ (เช่น #date(2025,1,15)) และคืนค่าเป็นข้อความ เช่น “Wednesday” ฟังก์ชันนี้มี parameter ตัวที่สองเป็น optional ซึ่งเป็น culture code เพื่อแปลชื่อวันเป็นภาษาอื่นๆ
ที่เจ๋งคือเราสามารถใช้ culture parameter เพื่อเปลี่ยนผลลัพธ์ได้ เช่น ถ้า culture = “th-TH” จะได้ “จันทร์” แทน “Monday” ซึ่งทำให้รายงานดูเป็นภาษาท้องถิ่นของผู้ใช้ได้อย่างง่ายดาย
ส่วนตัวผมใช้ฟังก์ชันนี้ทุกครั้งที่ต้องแสดงวันเป็นข้อความในรายงาน บ่อยครั้งมากเพราะตัวเลขวัน (0-6) ยากต่อการอ่านเข้าใจสำหรับผู้ใช้งาน
เพิ่มคอลัมน์ชื่อวันเพื่อแสดงสำหรับแต่ละวันที่ในรายงาน
ใช้ชื่อวันเพื่อกรองข้อมูลสำหรับวันจันทร์-ศุกร์
เพิ่มคอลัมน์ชื่อวันเพื่อจัดเรียงข้อมูลตามรูปแบบการทำงาน
วันที่ 15 มกราคม 2025 เป็นวันพุธ ฟังก์ชันจะคืนค่า "Wednesday" เป็นข้อความ (ตามค่า culture ตั้งต้น)
เมื่อระบุ culture = "th-TH" ฟังก์ชันจะแปลชื่อวันเป็นภาษาไทย ได้เป็น "พุธ" แทน "Wednesday"
สูตรนี้ใช้ let…in structure เพื่อสร้างตารางจาก rows แล้วเพิ่มคอลัมน์ DayName โดยใช้ Date.DayOfWeekName ร่วมกับ each เพื่อใช้กับทุกแถว
ตัวอย่างจริงที่ใช้ Date.DayOfWeekName เพื่อแปลวันเป็นภาษาไทย แล้ว group ข้อมูลตามวันเพื่อคำนวณยอดรวมต่อวัน ทำให้รายงานอ่านเข้าใจง่ายขึ้น
ผม 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.Day ใช้สำหรับดึงเลขวันที่จากค่าวันที่ หรือวันที่และเวลาใด ๆ ผลลัพธ์คือตัวเลขระหว่าง 1-31 ที่บอกวันของเดือนนั้น ฟังก์ชันนี้มีประโยชน์มากเมื่อเราต้องการแยกส่วนประกอบของวันที่ออกมาใช้งาน
แปลงวันที่ให้เป็นตัวเลข 0-6 แทนวันในสัปดาห์ (0=อาทิตย์ โดยค่าเริ่มต้น)
คืนค่าวันที่เท่าไหร่ของปี (1-366)
Date.MonthName ใช้สำหรับแยกชื่อเดือนภาษาอังกฤษจากค่าวันที่ที่ระบุ โดยส่วนใหญ่ใช้เมื่อต้องการแสดงชื่อเดือนแทนเลขเดือน
Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่