Thep Excel

Date.EndOfMonthหาวันสิ้นเดือน

คืนค่าวันสุดท้ายของเดือนที่กำหนด โดยรักษาประเภท (date, datetime, หรือ datetimezone) ไว้เหมือนเดิม

fx
=Date.EndOfMonth(dateTime) as any

ความนิยม7/10
ความยาก2/10
ประโยชน์7/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
dateTime Date/DateTime/DateTimeZone วันที่ที่ต้องการหาวันสิ้นเดือน สามารถเป็น date, datetime, หรือ datetimezone ก็ได้

Additional Notes

ฟังก์ชัน Date.EndOfMonth ใช้สำหรับคืนค่าวันสุดท้ายของเดือนจากวันที่ที่ระบุ ไม่ว่าคุณจะใส่วันใดในเดือนก็ตาม ฟังก์ชันนี้จะคืนค่าวันสิ้นเดือนนั้นอย่างแม่นยำ

ที่เจ๋งคือ Date.EndOfMonth จะรักษาประเภทข้อมูลเดิมไว้ – ถ้าใส่ date จะได้ date, ถ้าใส่ datetime จะได้ datetime พร้อมเวลา 23:59:59.9999999 เพื่อให้ครบถ้วนเต็มวี่นเดือน

ส่วนตัวผม ผมชอบใช้ Date.EndOfMonth แบบคู่กับ Table.TransformColumns เพื่อให้วันที่ในตารางมีค่าเป็นวันสิ้นเดือนทั้งหมด ถือว่าเป็น workaround ที่ดีสำหรับ financial reporting หรือ month-end reconciliation ครับ 😎

Examples

ตัวอย่างพื้นฐาน: วันที่ธรรมดาDate.EndOfMonth(#date(2025, 1, 15))

ใส่วันที่ 15 มกราคม 2025 ฟังก์ชันจะคืนค่าวันสิ้นเดือน คือ 31 มกราคม 2025

fx
=Date.EndOfMonth(#date(2025, 1, 15))

ผลลัพธ์#date(2025, 1, 31)
ตัวอย่างที่ 2: DateTime พร้อมเวลาDate.EndOfMonth(#datetime(2025, 5, 20, 14, 30, 45))

เมื่อใส่ datetime ฟังก์ชันจะคืนค่า datetime ของวันสิ้นเดือน โดยตั้งเวลาเป็น 23:59:59.9999999 เพื่อให้ครบถ้วนเต็มวัน

fx
=Date.EndOfMonth(#datetime(2025, 5, 20, 14, 30, 45))

ผลลัพธ์#datetime(2025, 5, 31, 23, 59, 59.9999999)
ตัวอย่างที่ 3: DateTime with TimezoneDate.EndOfMonth(#datetimezone(2025, 5, 17, 5, 0, 0, -7, 0))

ฟังก์ชันจะรักษา timezone offset (-7 hours) ไว้ คืนค่าเป็น datetimezone ของวันสิ้นเดือนพร้อม timezone เดิม

fx
=Date.EndOfMonth(#datetimezone(2025, 5, 17, 5, 0, 0, -7, 0))

ผลลัพธ์#datetimezone(2025, 5, 31, 23, 59, 59.9999999, -7, 0)
ตัวอย่างที่ 4: ใช้กับ Table.TransformColumns สำหรับ Month-End Reconciliationlet Sales = Table.FromRows( {{#date(2025, 1, 5), 1000}, {#date(2025, 1, 28), 2000}, {#date(2025, 2, 10), 1500}}, {"Date", "Amount"} ), MonthEnd = Table.Transfor…

ใช้ Table.TransformColumns เพื่อแปลงคอลัมน์ Date ทั้งหมดในตาราง ให้เป็นวันสิ้นเดือน สะดวกสำหรับการ group by month-end

fx
let
Sales = Table.FromRows(
{{#date(2025, 1, 5), 1000}, {#date(2025, 1, 28), 2000}, {#date(2025, 2, 10), 1500}},
{"Date", "Amount"}
),
MonthEnd = Table.TransformColumns(Sales, {{"Date", each Date.EndOfMonth(_), type date}})
in
MonthEnd

ผลลัพธ์ตารางที่มีคอลัมน์ Date ถูกแปลงเป็น: 31/01/2025 (สำหรับทั้งสองแถวในมกราคม) และ 28/02/2025 (สำหรับแถวกุมภาพันธ์)

FAQs

Date.EndOfMonth กับวันที่แต่ละเดือนที่มีจำนวนวันต่างกัน (28-31 วัน) ทำงานอย่างไร?+

ฟังก์ชันนี้จะจัดการอัตโนมัติ ถ้าเป็นกุมภาพันธ์ปกติจะคืนค่า 28 วัน, ปีอธิกสุรทิน 29 วัน, เมษายน ก.ย. พ.ย. คืนค่า 30 วัน, เดือนอื่นคืนค่า 31 วัน ไม่ต้องจัดการเองเลย

ถ้าฉันใส่วันที่ 31 มกราคม จะได้ผลลัพธ์เป็นอะไร?+

ยังคืนค่า 31 มกราคมเหมือนเดิม เพราะ 31 มกราคมก็คือวันสิ้นเดือนแล้ว ฟังก์ชันไม่สนว่าคุณใส่วันไหนในเดือนนั้น

ผลลัพธ์ที่ได้จะรักษาประเภท date/datetime/datetimezone ไว้หรือไม่?+

ใช่ครับ ฟังก์ชันรักษาประเภทเดิม ถ้าใส่ date จะได้ date, ใส่ datetime จะได้ datetime, ใส่ datetimezone จะได้ datetimezone พร้อม timezone offset เดิม

แล้วถ้าผมต้องการวันแรกของเดือน?+

ใช้ Date.StartOfMonth(dateTime) แทน ทำงานคล้ายกัน แต่คืนค่าวันแรกของเดือน

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Date.EndOfMonth จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Date.EndOfMonthDate functions
Date functions (7)
Date.AddMonths

Date.AddMonths เพิ่มจำนวนเดือนที่ระบุให้กับค่าวันที่ โดยคืนค่า date datetime หรือ datetimezone ขึ้นอยู่กับประเภทข้อมูลอินพุต ฟังก์ชันนี้จำเป็นสำหรับการคำนวณวันครบกำหนด กำหนดตารางเวลาโครงการ และการวิเคราะห์ข้อมูลตามช่วงเวลา

Date.DaysInMonth

คืนค่าจำนวนวันในเดือนของวันที่กำหนด

Date.EndOfDay

Date.EndOfDay คืนค่าเวลาสิ้นสุดของวัน (23:59:59.9999999) โดยยังคงเก็บรักษาข้อมูลโซนเวลา หากอินพุตเป็น datetime จะคืนค่าวันเดียวกันแต่เปลี่ยนเวลาเป็นสิ้นสุดวัน ฟังก์ชันนี้มีประโยชน์สำหรับการค้นหาข้อมูลในช่วงวันที่สมบูรณ์ และการบอกรายงานตามวัน

Date.EndOfQuarter

Date.EndOfQuarter คืนค่าวันสุดท้ายของไตรมาสที่วันที่ที่กำหนดอยู่ในนั้น โดยไตรมาสที่ 1 คือ มค-มีค ไตรมาสที่ 2 คือ เมษายน-มิถุนายน เป็นต้น ฟังก์ชันนี้มีประโยชน์สำหรับการจัดกลุ่มข้อมูล การคำนวณงบประมาณรายไตรมาส และการวิเคราะห์ข้อมูลช่วงระยะเวลา เช่นเดียวกับ Date.EndOfMonth และ Date.EndOfYear

Date.EndOfYear

Date.EndOfYear คืนค่าวันสุดท้ายของปี (31 ธันวาคม) จากวันที่ที่กำหนด พร้อมเวลา 23:59:59.9999999

Date.Month

Date.Month ดึงค่าตัวเลขเดือน (1-12) จากข้อมูลวันที่ใดๆ เหมาะสำหรับการจัดกลุ่มและวิเคราะห์ข้อมูลตามรอบเดือน

Date.StartOfMonth

คืนค่าวันแรกของเดือน โดยรีเซ็ตวันที่เป็นวันที่ 1 และเวลาเป็น 00:00:00

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่