---
title: Date.StartOfMonth – หาวันต้นเดือน
url: https://www.thepexcel.com/functions/power-query/date-functions/date-startofmonth/
type: function-explainer
program: Power Query
syntax: Date.StartOfMonth(dateTime as any) as any
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 2
  usefulness: 7
---

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

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

## คำอธิบาย

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

## Syntax

```excel
Date.StartOfMonth(dateTime as any) as any
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| dateTime | Yes | date/datetime/datetimezone |  | ค่าวันที่ใดๆ ที่อยู่ในเดือนนั้น สามารถเป็น date, datetime หรือ datetimezone ก็ได้ |

## ตัวอย่าง

### 1. ตัวอย่างพื้นฐาน - ใช้ date

```excel
Date.StartOfMonth(#date(2025, 1, 15))
```

**ผลลัพธ์:** `#date(2025, 1, 1)`

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

### 2. ใช้ datetime - เวลาจะถูกลบ

```excel
Date.StartOfMonth(#datetime(2025, 3, 20, 14, 30, 45))
```

**ผลลัพธ์:** `#datetime(2025, 3, 1, 0, 0, 0)`

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

### 3. ใช้กับคอลัมน์ในตาราง

```excel
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`

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

### 4. ใช้สำหรับ grouping ข้อมูลตามเดือน

```excel
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`

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

## หมายเหตุเพิ่มเติม

- ใช้ Date.StartOfMonth คู่กับ List.Sum หรือ Table.Group เพื่อสรุปข้อมูลรายเดือน

- ถ้าต้องการ "วันสุดท้ายของเดือน" ให้ใช้ Date.EndOfMonth แทน

- เวลาจะถูกลบเสมอ ถ้าต้องเก็บเวลาต้อง handle เองก่อนส่ง parameter

- ใช้ได้กับ Table.AddColumn + each เพื่อสร้างคอลัมน์เดือนใหม่จากคอลัมน์วันที่มีอยู่

## คำถามที่พบบ่อย

**Q: Date.StartOfMonth กับ Date.StartOfYear ต่างกันยังไง?**

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

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

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

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

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

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

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn - Date.StartOfMonth](https://learn.microsoft.com/en-us/powerquery-m/date-startofmonth) _(official)_
- [PowerQuery.how](https://powerquery.how/date-startofmonth/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/date-functions/date-startofmonth/](https://www.thepexcel.com/functions/power-query/date-functions/date-startofmonth/)_
