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

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

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

## คำอธิบาย

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

## Syntax

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

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| dateTime | Yes | Date/DateTime/DateTimeZone |  | วันที่ที่ต้องการหาวันสิ้นเดือน สามารถเป็น date, datetime, หรือ datetimezone ก็ได้ |

## ตัวอย่าง

### 1. ตัวอย่างพื้นฐาน: วันที่ธรรมดา

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

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

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

### 2. ตัวอย่างที่ 2: DateTime พร้อมเวลา

```excel
Date.EndOfMonth(#datetime(2025, 5, 20, 14, 30, 45))
```

**ผลลัพธ์:** `#datetime(2025, 5, 31, 23, 59, 59.9999999)`

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

### 3. ตัวอย่างที่ 3: DateTime with Timezone

```excel
Date.EndOfMonth(#datetimezone(2025, 5, 17, 5, 0, 0, -7, 0))
```

**ผลลัพธ์:** `#datetimezone(2025, 5, 31, 23, 59, 59.9999999, -7, 0)`

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

### 4. ตัวอย่างที่ 4: ใช้กับ Table.TransformColumns สำหรับ Month-End Reconciliation

```excel
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 (สำหรับแถวกุมภาพันธ์)`

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

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

- ใช้ Date.EndOfMonth แบบคู่กับ Table.TransformColumns เมื่อต้องแปลงคอลัมน์ date หลายแถว

- สำหรับ month-end reconciliation หรือ financial reporting ให้ใช้ Date.EndOfMonth + Table.Group เพื่อ group ข้อมูลตามเดือน

- ระวังเรื่อง timezone ถ้าใส่ datetimezone, ฟังก์ชันจะรักษา offset ไว้ ซึ่งอาจหลวมในปีที่มี daylight saving time

- ถ้าต้องการสร้างช่วงวันทั้งเดือน ใช้ Date.StartOfMonth + Date.EndOfMonth แบบคู่กัน จะได้ช่วงวันแรกถึงวันสิ้นเดือน

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

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

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

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

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

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

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

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

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

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

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

---

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