Thep Excel

Date.StartOfMonthหาวันต้นเดือน

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

fx
=Date.StartOfMonth(dateTime) as any

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

อัปเดต 3 December 2025

Syntax & Arguments

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

Additional Notes

Date.StartOfMonth ใช้สำหรับหาวันแรกของเดือน ไม่ว่าคุณป้อนวันที่วันไหนในเดือน ฟังก์ชันจะคืนค่าวันที่ 1 ของเดือนนั้นเสมอ โดยเวลาจะถูกรีเซ็ตเป็น 00:00:00 (เที่ยงคืน)

ที่เจ๋งคือ ถ้าคุณป้อนข้อมูลแบบ datetime ที่มีเวลาอยู่ เวลาส่วนนั้นจะถูกลบทิ้งให้หมด คืนค่ากลับมาเป็นวันแรกของเดือนเท่านั้น

ส่วนตัวผม ใช้ Date.StartOfMonth เวลาต้องทำ reporting แบบ “แยกตามเดือน” เพราะมันช่วยให้กำหนดขอบเขตของแต่ละเดือนได้ชัดเจน แล้วเอาไปใช้กับ Table.Group หรือ filtering ได้ง่ายๆ ครับ

Examples

ตัวอย่างพื้นฐาน – ใช้ dateDate.StartOfMonth(#date(2025, 1, 15))

ป้อนวันที่ 15 มกราคม ได้ผลลัพธ์เป็นวันที่ 1 มกราคม

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

ผลลัพธ์#date(2025, 1, 1)
ใช้ datetime – เวลาจะถูกลบDate.StartOfMonth(#datetime(2025, 3, 20, 14, 30, 45))

ป้อน 20 มีนาคม เวลา 14:30:45 ได้ผลลัพธ์เป็น 1 มีนาคม เวลา 00:00:00 (เวลาจะถูกรีเซ็ตเสมอ)

fx
=Date.StartOfMonth(#datetime(2025, 3, 20, 14, 30, 45))

ผลลัพธ์#datetime(2025, 3, 1, 0, 0, 0)
ใช้กับคอลัมน์ในตารางlet Sales = Table.FromRows({{{1, #date(2025, 1, 15)}, {2, #date(2025, 1, 28)}, {3, #date(2025, 2, 10)}}}, {"OrderID", "OrderDate"}), AddMonthStart = Table.AddCo…

เพิ่มคอลัมน์ใหม่ที่เก็บวันแรกของเดือน ใช้ได้กับ Table.AddColumn และ each keyword

fx
let
Sales = Table.FromRows({{{1, #date(2025, 1, 15)}, {2, #date(2025, 1, 28)}, {3, #date(2025, 2, 10)}}}, {"OrderID", "OrderDate"}),
AddMonthStart = Table.AddColumn(Sales, "MonthStart", each Date.StartOfMonth([OrderDate]))
in
AddMonthStart

ผลลัพธ์ตารางที่มีคอลัมน์ MonthStart มีค่า 1/1/2025, 1/1/2025, 2/1/2025
ใช้สำหรับ grouping ข้อมูลตามเดือนlet Sales = Table.FromRows({{{1, #date(2025, 1, 5), 100}, {2, #date(2025, 1, 15), 200}, {3, #date(2025, 2, 10), 150}}}, {"OrderID", "Date", "Amount"}), GroupedB…

ใช้ Date.StartOfMonth เพื่อสร้างคีย์สำหรับ grouping ข้อมูลตามเดือน

fx
let
Sales = Table.FromRows({{{1, #date(2025, 1, 5), 100}, {2, #date(2025, 1, 15), 200}, {3, #date(2025, 2, 10), 150}}}, {"OrderID", "Date", "Amount"}),
GroupedByMonth = Table.Group(Sales, {"Date"}, {{"MonthStart", each Date.StartOfMonth([Date][0]), type date}, {"Total", each List.Sum([Amount]), type number}})
in
GroupedByMonth

ผลลัพธ์ตารางที่จัดกลุ่มตามเดือน มี MonthStart และ Total

FAQs

Date.StartOfMonth กับ Date.StartOfYear ต่างกันยังไง?+

Date.StartOfMonth คืนวันแรกของเดือน (วันที่ 1) ในขณะที่ Date.StartOfYear คืนวันแรกของปี (มกราคมที่ 1) ใช้เลือกตามว่าคุณต้องการแบ่งข้อมูลเป็นเดือนหรือเป็นปี

ถ้าป้อน datetime ที่มีเวลา เวลาจะไปไหน?+

เวลาจะถูกรีเซ็ตเป็น 00:00:00 (เที่ยงคืน) เสมอ ฟังก์ชันนี้มีจุดมุ่งหมายคือหาขอบเขตของเดือน ไม่ใช่เก็บเวลา

เหมาะสำหรับทำอะไรบ้าง?+

ใช้สำหรับ: (1) สร้างคอลัมน์เดือนใหม่เพื่อ grouping, (2) กำหนดเงื่อนไขการfilter "ตั้งแต่เดือนไหน", (3) คำนวณจำนวนวันในเดือน, (4) สร้าง report รายเดือน

Date.StartOfMonth ส่งค่ากลับเป็นพวก date หรือ datetime?+

ถ้าป้อน date จะคืน date ถ้าป้อน datetime จะคืน datetime (ที่มีเวลา 00:00:00) ถ้าป้อน datetimezone จะคืน datetimezone

Resources & Related

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

ฟังก์ชันนี้Date.StartOfMonthDate functions
Date functions (4)
Date.EndOfDay

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

Date.EndOfMonth

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

Date.Month

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

Date.StartOfYear

Date.StartOfYear คืนค่าวันแรกของปี (1 มกราคม เวลา 00:00:00) จากวันที่ใดๆ ที่ส่งเข้ามา ใช้สำหรับคำนวณตัวชี้วัดแบบ Year-To-Date หรือจัดกลุ่มข้อมูลตามปี

Comments

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