Thep Excel

Date.DayOfWeekName – ดึงชื่อวันในสัปดาห์

Date.DayOfWeekName คืนค่าชื่อวันในสัปดาห์เป็นข้อความ เหมาะสำหรับแสดงวันจากวันที่ในรูปแบบ Monday, Tuesday เป็นต้น สามารถกำหนด culture เพื่อแปลชื่อวันเป็นภาษาต่างๆ ได้

=Date.DayOfWeekName(date as any, optional culture as nullable text) as nullable text

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=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

How it works

สร้างรายงานวันทำการ

เพิ่มคอลัมน์ชื่อวันเพื่อแสดงสำหรับแต่ละวันที่ในรายงาน

กรองข้อมูลตามวัน

ใช้ชื่อวันเพื่อกรองข้อมูลสำหรับวันจันทร์-ศุกร์

จัดเรียงข้อมูลตามแบบแผน

เพิ่มคอลัมน์ชื่อวันเพื่อจัดเรียงข้อมูลตามรูปแบบการทำงาน

Examples

ตัวอย่างที่ 1: ดึงชื่อวันง่ายๆ
Date.DayOfWeekName(#date(2025, 1, 15))
วันที่ 15 มกราคม 2025 เป็นวันพุธ ฟังก์ชันจะคืนค่า "Wednesday" เป็นข้อความ (ตามค่า culture ตั้งต้น)
Power Query Formula:

=Date.DayOfWeekName(#date(2025, 1, 15))

Result:

"Wednesday"

ตัวอย่างที่ 2: ระบุ culture เป็นไทย
Date.DayOfWeekName(#date(2025, 1, 15), "th-TH")
เมื่อระบุ culture = "th-TH" ฟังก์ชันจะแปลชื่อวันเป็นภาษาไทย ได้เป็น "พุธ" แทน "Wednesday"
Power Query Formula:

=Date.DayOfWeekName(#date(2025, 1, 15), "th-TH")

Result:

"พุธ"

ตัวอย่างที่ 3: เพิ่มคอลัมน์ชื่อวันในตาราง
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…in structure เพื่อสร้างตารางจาก rows แล้วเพิ่มคอลัมน์ DayName โดยใช้ Date.DayOfWeekName ร่วมกับ each เพื่อใช้กับทุกแถว
Power Query Formula:

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

Result:

ตารางที่เพิ่มคอลัมน์ DayName = "Monday", "Tuesday"

ตัวอย่างที่ 4: สร้าง pivot report ตามวัน
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…
ตัวอย่างจริงที่ใช้ Date.DayOfWeekName เพื่อแปลวันเป็นภาษาไทย แล้ว group ข้อมูลตามวันเพื่อคำนวณยอดรวมต่อวัน ทำให้รายงานอ่านเข้าใจง่ายขึ้น
Power Query Formula:

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

Result:

ตารางที่มีแถวสำหรับแต่ละวัน (จันทร์, อังคาร, พุธ) พร้อมยอดรวม

FAQs

ความแตกต่างระหว่าง Date.DayOfWeekName กับ Date.DayOfWeek คืออะไร?

ผม Date.DayOfWeekName คืนค่าชื่อวัน (“Monday”, “Tuesday”) ส่วน Date.DayOfWeek คืนค่าเป็นตัวเลข (0-6) ฟังก์ชัน DayOfWeekName เหมาะสำหรับแสดงผลให้ผู้ใช้อ่าน DayOfWeek เหมาะสำหรับการเปรียบเทียบหรือตรรกะภายในโค้ด

ผลลัพธ์จะเป็นภาษาใด ถ้าไม่ระบุ culture?

ผมกล่าว ถ้าไม่ระบุ parameter culture ฟังก์ชันจะใช้ culture ของระบบ โดยทั่วไปจะเป็นภาษาอังกฤษ (“Monday”) แต่ถ้าต้องการให้ชัวร์ว่าจะได้ผลลัพธ์ตามต้องการ ให้ระบุ culture อย่างชัดเจน เช่น “th-TH” หรือ “en-US”

สามารถใช้ Date.DayOfWeekName กับการกรองข้อมูลได้หรือไม่?

ผมแนะนำให้ใช้ Date.DayOfWeek (ตัวเลข) สำหรับการกรองแทน เพราะการเปรียบเทียบตัวเลขเร็วกว่า และหลีกเลี่ยงปัญหา locale ไม่ตรงกัน แต่ถ้าจำเป็นต้องใช้ชื่อวัน สามารถใช้ได้ เช่น Table.SelectRows(Source, each Date.DayOfWeekName([Date], “en-US”) = “Monday”)

Resources & Related

Additional Notes

Date.DayOfWeekName ดึงชื่อวันในสัปดาห์จากวันที่ (เช่น #date(2025,1,15)) และคืนค่าเป็นข้อความ เช่น “Wednesday” ฟังก์ชันนี้มี parameter ตัวที่สองเป็น optional ซึ่งเป็น culture code เพื่อแปลชื่อวันเป็นภาษาอื่นๆ

ที่เจ๋งคือเราสามารถใช้ culture parameter เพื่อเปลี่ยนผลลัพธ์ได้ เช่น ถ้า culture = “th-TH” จะได้ “จันทร์” แทน “Monday” ซึ่งทำให้รายงานดูเป็นภาษาท้องถิ่นของผู้ใช้ได้อย่างง่ายดาย

ส่วนตัวผมใช้ฟังก์ชันนี้ทุกครั้งที่ต้องแสดงวันเป็นข้อความในรายงาน บ่อยครั้งมากเพราะตัวเลขวัน (0-6) ยากต่อการอ่านเข้าใจสำหรับผู้ใช้งาน

Leave a Reply

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