Date.MonthName ใช้สำหรับแยกชื่อเดือนภาษาอังกฤษจากค่าวันที่ที่ระบุ โดยส่วนใหญ่ใช้เมื่อต้องการแสดงชื่อเดือนแทนเลขเดือน
=Date.MonthName(date as any, optional culture as nullable text) as nullable text
=Date.MonthName(date as any, optional culture as nullable text) as nullable text
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| date | Date/DateTime | Yes | ค่าวันที่ที่ต้องการแยกชื่อเดือน | |
| culture | Text | Optional | รหัสวัฒนธรรมที่กำหนดภาษาชื่อเดือน เช่น “en-US” สำหรับภาษาอังกฤษ หรือ “th-TH” สำหรับภาษาไทย (ถ้าไม่ระบุ ใช้ค่าเริ่มต้นของระบบ) |
let MyDate = #date(2024, 12, 15), MonthName = Date.MonthName(MyDate) in MonthNamelet
MyDate = #date(2024, 12, 15),
MonthName = Date.MonthName(MyDate)
in
MonthName
"December"
let MyDateTime = #datetime(2024, 3, 20, 14, 30, 0), MonthName = Date.MonthName(MyDateTime, "en-US") in MonthNamelet
MyDateTime = #datetime(2024, 3, 20, 14, 30, 0),
MonthName = Date.MonthName(MyDateTime, "en-US")
in
MonthName
"March"
let Sales = Table.FromRows( {{#date(2024, 1, 15), "Product A", 500}, {#date(2024, 2, 20), "Product B", 750}, {#date(2024, 3, 10), "Product C", 600}}, {"Date", "…let
Sales = Table.FromRows(
{{#date(2024, 1, 15), "Product A", 500}, {#date(2024, 2, 20), "Product B", 750}, {#date(2024, 3, 10), "Product C", 600}},
{"Date", "Product", "Amount"}
),
AddMonthName = Table.AddColumn(Sales, "MonthName", each Date.MonthName([Date], "en-US"))
in
AddMonthName
ตารางมี 4 คอลัมน์: Date, Product, Amount, MonthName (ค่าเดือน: January, February, March)
let Sales = Table.FromRows( {{#date(2024, 12, 15), "Dec", 500}, {#date(2024, 1, 20), "Jan", 750}, {#date(2024, 3, 10), "Mar", 600}}, {"Date", "Product", "Amount…let
Sales = Table.FromRows(
{{#date(2024, 12, 15), "Dec", 500}, {#date(2024, 1, 20), "Jan", 750}, {#date(2024, 3, 10), "Mar", 600}},
{"Date", "Product", "Amount"}
),
AddMonthInfo = Table.AddColumn(Sales, "MonthName", each Date.MonthName([Date], "en-US")),
AddMonthNum = Table.AddColumn(AddMonthInfo, "MonthNum", each Date.Month([Date])),
SortByMonth = Table.Sort(AddMonthNum, {{"MonthNum", Order.Ascending}})
in
SortByMonth
ตารางเรียงตามลำดับเดือนจริง (January, March, December) ไม่ใช่เรียง Alphabetical
ใช้ได้กับ #date, #datetime และ Date/DateTime values ที่เป็นข้อมูลชนิด date หรือ datetime
จะใช้ค่าเริ่มต้นของระบบ (system default culture) ซึ่งโดยปกติขึ้นอยู่กับการตั้งค่าภาษาของคอมพิวเตอร์
ได้ โดยระบุ culture เป็น “th-TH” เช่น Date.MonthName(#date(2024, 1, 15), “th-TH”) แต่ผลลัพธ์อาจขึ้นอยู่กับการสนับสนุน culture ของ Power Query
จะคืนค่า null หากค่า date ที่ส่งเข้าไป (argument) เป็น null
ผมต้องบอกว่า Date.MonthName ส่งคืน text เพียงชื่อ เมื่อนำไปแสดงในรายงาน Excel หรือ GROUP BY จะเรียงก alphabetical อย่าง April, August, December… ไม่ใช่ January, February, March ถ้าต้องการเรียงตามเดือน ให้เก็บ Date.Month() เป็นคอลัมน์แยก แล้ว sort โดยคอลัมน์นั้นแทน
Date.MonthName เบิกออกชื่อเดือนจากวันที่ได้แบบเรียบง่าย เช่น 2024-01-15 กลายเป็น “January” ทันทีโดยไม่ต้องเขียนสูตรลึกๆ ฟังก์ชันนี้ยอดเยี่ยมเวลาต้องสร้างรายงานให้ผู้บริหารอ่านเข้าใจ เพราะชื่อเดือน(January, February) อ่านเข้าใจง่ายกว่าเลข (1, 2, 3) เสียเยอะ
ที่เจ๋งคือ ไม่ต้องเขียน IF ยาวๆ เพื่อแปลงเลขเดือนเป็นชื่อเดือน ฟังก์ชันนี้ทำเองให้ปรือปรุงได้ ไม่ว่าจะใช้เลขวัฒนธรรม (culture) อะไรก็ได้ อังกฤษ ไทย หรืออื่นๆ หมดเรื่องใน 1 บรรทัด
ส่วนตัวผม ใช้ Date.MonthName กับ Table.AddColumn บ่อยครั้ง เวลาต้องเพิ่มคอลัมน์ชื่อเดือนลงในตาราง แล้วมันช่วยให้รายงานเนียนขึ้นและดูมืออาชีพมาก ลูกค้าชอบเพราะอ่านเข้าใจได้ทีเดียว