---
title: Date.AddYears – เพิ่มจำนวนปีให้กับวันที่
url: https://www.thepexcel.com/functions/power-query/date-functions/date-addyears/
type: function-explainer
program: Power Query
syntax: "Date.AddYears(dateTime as any, numberOfYears as number) as any"
date: 2025-12-12
updated: 2025-12-24
scores:
  popularity: 6
  difficulty: 3
  usefulness: 7
---

# Date.AddYears – เพิ่มจำนวนปีให้กับวันที่

> Date.AddYears เพิ่มจำนวนปีที่ระบุให้กับค่า date datetime หรือ datetimezone คืนค่าเดียวกันกับประเภทข้

## คำอธิบาย

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

## Syntax

```excel
Date.AddYears(dateTime as any, numberOfYears as number) as any
```

**Variant**

```excel
Date.AddYears(#date(2011, 5, 14), 4)
```

เพิ่ม 4 ปีให้กับวันที่

**Variant**

```excel
Date.AddYears(#datetime(2011, 5, 14, 8, 15, 22), 10)
```

เพิ่ม 10 ปีให้กับ datetime โดยเก็บเวลาไว้

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| dateTime | Yes | any |  | ค่า date datetime หรือ datetimezone ที่ต้องการเพิ่มปี สามารถเป็นค่าคงที่หรือมาจากคอลัมน์ในตาราง |
| numberOfYears | Yes | number |  | จำนวนปีที่ต้องการเพิ่ม สามารถใช้จำนวนลบเพื่อลบปี (เช่น -1 จะลดปี 1 ปี) |

## เคสการใช้งาน

### คำนวณวันครบรอบปี

คำนวณวันครบรอบปีที่ n ของเหตุการณ์หรือการเริ่มต้นของบริการ

_เหมาะกับ:_ anniversary-calculation

### วางแผนระยะยาว

กำหนดจุดสิ้นสุดของโครงการหรือสัญญาที่มีระยะเวลานับเป็นปี

_เหมาะกับ:_ long-term-planning

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: เพิ่ม 4 ปีให้กับวันที่

```excel
Date.AddYears(#date(2011, 5, 14), 4)
```

**ผลลัพธ์:** `#date(2015, 5, 14)`

เพิ่ม 4 ปีให้กับ 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 14 พฤษภาคม 2015 ฟังก์ชันจะคงเดือนและวันไว้เหมือนเดิม แต่เปลี่ยนปีเท่านั้น

### 2. ตัวอย่างที่ 2: เพิ่ม 10 ปีให้กับ datetime พร้อมเวลา

```excel
Date.AddYears(#datetime(2011, 5, 14, 8, 15, 22), 10)
```

**ผลลัพธ์:** `#datetime(2021, 5, 14, 8, 15, 22)`

เพิ่ม 10 ปีให้กับ 14 พฤษภาคม 2011 เวลา 08:15:22 ได้ผลลัพธ์เป็น 14 พฤษภาคม 2021 เวลา 08:15:22 โปรดสังเกตว่าเวลา (hours, minutes, seconds) ไม่เปลี่ยนแปลง

### 3. ตัวอย่างที่ 3: ลบปีด้วยจำนวนลบ

```excel
Date.AddYears(#date(2011, 5, 14), -2)
```

**ผลลัพธ์:** `#date(2009, 5, 14)`

ลบ 2 ปีจาก 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 14 พฤษภาคม 2009 ใช้เมื่อต้องการคำนวณไปยังปีที่ผ่านมา

### 4. ตัวอย่างที่ 4: จัดการปีอธิกสุรทิน (leap year)

```excel
Date.AddYears(#date(2012, 2, 29), 1)
```

**ผลลัพธ์:** `#date(2013, 2, 28)`

เมื่อเพิ่ม 1 ปีจาก 29 กุมภาพันธ์ 2012 (ปีอธิกสุรทิน) ไปยังปี 2013 (ไม่ใช่ปีอธิกสุรทิน) ระบบจะปรับเป็น 28 กุมภาพันธ์โดยอัตโนมัติเนื่องจาก 2013 ไม่มี 29 กุมภาพันธ์

### 5. ตัวอย่างที่ 5: ใช้กับ datetimezone

```excel
Date.AddYears(#datetimezone(2011, 5, 14, 8, 15, 22, 8, 0), 5)
```

**ผลลัพธ์:** `#datetimezone(2016, 5, 14, 8, 15, 22, 8, 0)`

ทำงานกับ datetimezone เช่นเดียวกับ datetime โดยรักษาข้อมูล timezone offset (+08:00) ไว้

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

- ใช้ Date.AddYears เมื่อต้องการเพิ่มหลายปี มันชัดเจนกว่า Date.AddMonths(date, numberOfYears * 12) ในแง่ของการอ่านและบำรุงรักษาโค้ด

- หากเพิ่มปีจาก 29 กุมภาพันธ์ (ปีอธิกสุรทิน) ไปยังปีที่ไม่ใช่ปีอธิกสุรทิน ระบบจะปรับเป็น 28 กุมภาพันธ์โดยอัตโนมัติ ซึ่งเป็นพฤติกรรมที่คาดหวัง

- ตรวจสอบให้แน่ใจว่าพารามิเตอร์ numberOfYears เป็นประเภท number ไม่ใช่ text เพราะจะเกิดข้อผิดพลาด

- ใช้จำนวนลบเพื่อย้อนกลับไปยังปีที่ผ่านมา เช่น Date.AddYears(Today(), -1) จะได้วันเดียวกันแต่ปีที่แล้ว

- ฟังก์ชันนี้รักษาข้อมูล time component ไว้ตรงเดิม ถ้าคุณต้องการเปลี่ยนแค่ปีและรีเซ็ตเวลา ต้องใช้ Date.Create() ร่วมกับ Date.Year() และอื่นๆ

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

**Q: ถ้าฉันเพิ่ม 1 ปีจาก 29 กุมภาพันธ์ 2012 จะเกิดอะไรขึ้น?**

ฟังก์ชันจะส่งคืน 28 กุมภาพันธ์ 2013 (ปีที่ไม่ใช่ปีอธิกสุรทิน) เนื่องจากปี 2013 ไม่มี 29 กุมภาพันธ์ ระบบทำการปรับลงโดยอัตโนมัติเพื่อให้ได้วันที่ที่ถูกต้อง

**Q: Date.AddYears กับ Date.AddMonths(date, 12) ต่างกันหรือไม่?**

ในกรณีส่วนใหญ่ ผลลัพธ์เหมือนกัน แต่ Date.AddYears ชัดเจนและอ่านได้ง่ายกว่า เมื่อทำงานกับจำนวนปี ลองใช้ Date.AddYears เพราะมันแสดงจุดประสงค์ได้ดีกว่า

**Q: ฉันสามารถใช้ค่าศูนย์ (0) ได้หรือไม่?**

ใช่ได้ Date.AddYears(date, 0) จะคืนค่าวันที่เดิมโดยไม่เปลี่ยนแปลง ซึ่งอาจดูโง่ แต่บางครั้งมีประโยชน์ในลอจิกเงื่อนไขที่ซับซ้อน

**Q: จำนวนปีที่สามารถใช้ได้มีขีดจำกัดหรือไม่?**

ทางทฤษฎีไม่มีขีดจำกัด แต่ Power Query ทำงานกับวันที่ระหว่าง 0 ธันวาคม 1899 ถึง 31 ธันวาคม 9999 ดังนั้นต้องแน่ใจว่าผลลัพธ์อยู่ในช่วงนี้

## ฟังก์ชันที่เกี่ยวข้อง

- [Date.AddMonths – เพิ่มจำนวนเดือนให้กับวันที่](https://www.thepexcel.com/functions/power-query/date-functions/date-addmonths/)
- [Date.AddWeeks – เพิ่มจำนวนสัปดาห์ให้กับวันที่](https://www.thepexcel.com/functions/power-query/date-functions/date-addweeks/)
- [Date.AddDays – เพิ่มหรือลดจำนวนวัน](https://www.thepexcel.com/functions/power-query/date-functions/date-adddays/)
- [Date.AddQuarters – เพิ่มจำนวนไตรมาสให้กับวันที่](https://www.thepexcel.com/functions/power-query/date-functions/date-addquarters/)

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

- [Microsoft Learn: Date.AddYears](https://learn.microsoft.com/en-us/powerquery-m/date-addyears) _(official)_
- [Microsoft Learn: Date.AddMonths](https://learn.microsoft.com/en-us/powerquery-m/date-addmonths) _(official)_
- [Microsoft Learn: Date Functions in Power Query](https://learn.microsoft.com/en-us/powerquery-m/date-functions) _(official)_

---

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