Thep Excel

Date.MonthName – แยกชื่อเดือนจากวันที่

Date.MonthName ใช้สำหรับแยกชื่อเดือนภาษาอังกฤษจากค่าวันที่ที่ระบุ โดยส่วนใหญ่ใช้เมื่อต้องการแสดงชื่อเดือนแทนเลขเดือน

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

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

=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” สำหรับภาษาไทย (ถ้าไม่ระบุ ใช้ค่าเริ่มต้นของระบบ)

Examples

ตัวอย่างพื้นฐาน: ดึงชื่อเดือนจากวันที่
let MyDate = #date(2024, 12, 15), MonthName = Date.MonthName(MyDate) in MonthName
ฟังก์ชันดึงชื่อเดือนจากวันที่ 2024-12-15 ผลลัพธ์คือ "December"
Power Query Formula:

let
    MyDate = #date(2024, 12, 15),
    MonthName = Date.MonthName(MyDate)
in
    MonthName

Result:

"December"

ตัวอย่างที่ 2: ระบุวัฒนธรรม (Culture)
let MyDateTime = #datetime(2024, 3, 20, 14, 30, 0), MonthName = Date.MonthName(MyDateTime, "en-US") in MonthName
ดึงชื่อเดือนจากวันที่และเวลา โดยระบุวัฒนธรรม en-US ผลลัพธ์คือ "March"
Power Query Formula:

let
    MyDateTime = #datetime(2024, 3, 20, 14, 30, 0),
    MonthName = Date.MonthName(MyDateTime, "en-US")
in
    MonthName

Result:

"March"

ตัวอย่างที่ 3: เพิ่มคอลัมน์ชื่อเดือนในตาราง
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", "…
เพิ่มคอลัมน์ใหม่ที่มีชื่อเดือนโดยใช้ Date.MonthName ทำให้รายงานอ่านง่ายขึ้น
Power Query Formula:

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

Result:

ตารางมี 4 คอลัมน์: Date, Product, Amount, MonthName (ค่าเดือน: January, February, March)

ตัวอย่างที่ 4: เพิ่มทั้ง MonthName และ MonthNumber เพื่อให้สามารถเรียงได้ถูกต้อง
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…
เมื่อต้องการเรียงข้อมูลตามลำดับเดือน ต้องเก็บทั้ง MonthName (สำหรับแสดง) และ MonthNum (สำหรับเรียง) ถ้าใช้แค่ MonthName จะเรียง Alphabetical ซึ่งผิด
Power Query Formula:

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

Result:

ตารางเรียงตามลำดับเดือนจริง (January, March, December) ไม่ใช่เรียง Alphabetical

FAQs

Date.MonthName ทำงานกับวันที่รูปแบบใดได้บ้าง?

ใช้ได้กับ #date, #datetime และ Date/DateTime values ที่เป็นข้อมูลชนิด date หรือ datetime

ถ้าไม่ระบุ culture พารามิเตอร์จะใช้ค่าใด?

จะใช้ค่าเริ่มต้นของระบบ (system default culture) ซึ่งโดยปกติขึ้นอยู่กับการตั้งค่าภาษาของคอมพิวเตอร์

สามารถใช้ Date.MonthName เพื่อแสดงชื่อเดือนภาษาไทยได้หรือ?

ได้ โดยระบุ culture เป็น “th-TH” เช่น Date.MonthName(#date(2024, 1, 15), “th-TH”) แต่ผลลัพธ์อาจขึ้นอยู่กับการสนับสนุน culture ของ Power Query

ถ้าเป็น null value จะคืนค่าอะไร?

จะคืนค่า null หากค่า date ที่ส่งเข้าไป (argument) เป็น null

ชื่อเดือนที่ได้มาจาก Date.MonthName จะเรียงตามลำดับเดือนหรือ Alphabetical?

ผมต้องบอกว่า Date.MonthName ส่งคืน text เพียงชื่อ เมื่อนำไปแสดงในรายงาน Excel หรือ GROUP BY จะเรียงก alphabetical อย่าง April, August, December… ไม่ใช่ January, February, March ถ้าต้องการเรียงตามเดือน ให้เก็บ Date.Month() เป็นคอลัมน์แยก แล้ว sort โดยคอลัมน์นั้นแทน

Resources & Related

Additional Notes

Date.MonthName เบิกออกชื่อเดือนจากวันที่ได้แบบเรียบง่าย เช่น 2024-01-15 กลายเป็น “January” ทันทีโดยไม่ต้องเขียนสูตรลึกๆ ฟังก์ชันนี้ยอดเยี่ยมเวลาต้องสร้างรายงานให้ผู้บริหารอ่านเข้าใจ เพราะชื่อเดือน(January, February) อ่านเข้าใจง่ายกว่าเลข (1, 2, 3) เสียเยอะ

ที่เจ๋งคือ ไม่ต้องเขียน IF ยาวๆ เพื่อแปลงเลขเดือนเป็นชื่อเดือน ฟังก์ชันนี้ทำเองให้ปรือปรุงได้ ไม่ว่าจะใช้เลขวัฒนธรรม (culture) อะไรก็ได้ อังกฤษ ไทย หรืออื่นๆ หมดเรื่องใน 1 บรรทัด

ส่วนตัวผม ใช้ Date.MonthName กับ Table.AddColumn บ่อยครั้ง เวลาต้องเพิ่มคอลัมน์ชื่อเดือนลงในตาราง แล้วมันช่วยให้รายงานเนียนขึ้นและดูมืออาชีพมาก ลูกค้าชอบเพราะอ่านเข้าใจได้ทีเดียว

Leave a Reply

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