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

# Date.AddWeeks – เพิ่มจำนวนสัปดาห์ให้กับวันที่

> Date.AddWeeks เพิ่มจำนวนสัปดาห์ (สัปดาห์ = 7 วัน) ให้กับค่า date, datetime หรือ datetimezone ที่กำหน

## คำอธิบาย

Date.AddWeeks เพิ่มจำนวนสัปดาห์ (สัปดาห์ = 7 วัน) ให้กับค่า date, datetime หรือ datetimezone ที่กำหนด เหมาะสำหรับการคำนวณตามรอบเวลาประจำสัปดาห์

## Syntax

```excel
Date.AddWeeks(dateTime as any, numberOfWeeks as number) as any
```

**Variant**

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

เพิ่ม 2 สัปดาห์ (14 วัน) ให้กับวันที่

**Variant**

```excel
Date.AddWeeks(#datetime(2011, 5, 14, 8, 15, 22), 4)
```

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

## Arguments

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

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

### วางแผนปฏิทินกิจกรรม

กำหนดวันที่สิ้นสุดของสัปดาห์ที่ 1, 2, 3 เป็นต้นสำหรับกิจกรรมตามสัปดาห์

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

### คำนวณลำดับเวลาในโครงการ

กำหนดจุดตรวจสอบความคืบหน้าของโครงการตามสัปดาห์

_เหมาะกับ:_ project-scheduling

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: เพิ่ม 2 สัปดาห์

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

**ผลลัพธ์:** `#date(2011, 5, 28)`

เพิ่ม 2 สัปดาห์ (14 วัน) ให้กับ 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 28 พฤษภาคม 2011 ฟังก์ชันจะนับแบบตรงไป 7 วัน × 2 สัปดาห์ = 14 วันพอดี

### 2. ตัวอย่างที่ 2: เพิ่ม 4 สัปดาห์

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

**ผลลัพธ์:** `#date(2011, 6, 11)`

เพิ่ม 4 สัปดาห์ (28 วัน) ให้กับ 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 11 มิถุนายน 2011 ใช้สำหรับการวางแผนระยะกลางหรือคำนวณ deadline ที่ยาวออกไปประมาณ 1 เดือน

### 3. ตัวอย่างที่ 3: ลบสัปดาห์

```excel
Date.AddWeeks(#date(2011, 5, 14), -1)
```

**ผลลัพธ์:** `#date(2011, 5, 7)`

ลบ 1 สัปดาห์ (7 วัน) จาก 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 7 พฤษภาคม 2011 ใช้เมื่อต้องการไปถึงสัปดาห์ที่แล้ว หรือคำนวณวันเริ่มต้นของโปรเจคจากวันสิ้นสุด

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

```excel
Date.AddWeeks(#datetime(2011, 5, 14, 10, 30, 0), 3)
```

**ผลลัพธ์:** `#datetime(2011, 6, 4, 10, 30, 0)`

ใช้กับ datetime โดยจะเพิ่มเฉพาะส่วนของวันที่ ส่วนเวลา (10:30:00) จะถูกเก็บรักษาไว้เหมือนเดิม ฟังก์ชันจึง safe ที่ใช้กับข้อมูลที่มีเวลาแนบมาด้วย

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

- ผมแนะนำให้ใช้ Date.AddWeeks เมื่อทำงานกับรอบเวลาสัปดาห์ เพราะ Code จะชัดเจนและ readable มากขึ้น แม้ว่าผลลัพธ์จะเหมือน Date.AddDays(date, 7) ก็ตาม

- ถ้าต้อง "จัด" วันให้ตรงตอนเริ่มสัปดาห์ (จันทร์) หรือจบสัปดาห์ (อาทิตย์) ให้ใช้ Date.StartOfWeek หรือ Date.EndOfWeek ร่วมกับ Date.AddWeeks ห้ามใช้ Date.AddWeeks คนเดียว

- ส่วนตัวผมมักใช้ Date.AddWeeks ในการสร้าง Table ที่แสดง Timeline โปรเจค เช่น สัปดาห์ที่ 1, สัปดาห์ที่ 2, สัปดาห์ที่ 3 เพื่อให้เห็นภาพชัดเจน ปลอดภัยกว่า Manual Entry หรือคิดลำดับวันเอง

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

**Q: Date.AddWeeks นับวันจากวันไหน?**

Date.AddWeeks นับเพิ่มแบบปกติ 1 สัปดาห์ = 7 วัน โดยไม่สนใจว่าวันเริ่มต้นเป็นวันจันทร์หรือวันอาทิตย์ แค่บวก 7 วันตรงไป ผมเคยงงเพราะคิดว่าจะ "จัดแนว" ให้ตรงตอนท้ายสัปดาห์ แต่ปรากฎว่าไม่ได้ทำแบบนั้น 😅

**Q: Date.AddWeeks กับ Date.AddDays(date, 7) ต่างกันอย่างไร?**

ผลลัพธ์ออกมาเหมือนกันเลย แต่ทำไมถึงต้องใช้ Date.AddWeeks? ก็เพราะว่า Code ของเราจะ readable มากขึ้น ถ้าคนอื่นอ่าน Date.AddWeeks(date, 4) จะรู้ทันทีว่ากำลังเพิ่ม "4 สัปดาห์" แต่ถ้า Date.AddDays(date, 28) ต้องนั่งนับ 28 ÷ 7 อีกครั้งหนึ่ง 555

**Q: สามารถใช้ไปด้วยแค่วันที่หรือต้องมีเวลาด้วย?**

ทั้งสองแบบใช้ได้ครับ ถ้าส่งเข้า date จะคืน date ถ้าส่งเข้า datetime จะคืน datetime ถ้าส่งเข้า datetimezone จะคืน datetimezone ฟังก์ชันนี้ชาญฉลาดตรงนี้ ไม่ต้องแปลง data type กลับไปกลับมา

**Q: จะใช้กับตัวแปร Column ได้มั้ย?**

ได้ครับ ถ้าเซลล์หรือ Column มีค่า date หรือ datetime อยู่แล้ว ก็เขียน = Table.AddColumn(Source, "NextWeek", each Date.AddWeeks([DateColumn], 1)) เป็นต้น ผมใช้อย่างนี้บ่อยมาก เวลาต้องสร้าง Column ใหม่ที่เก็บวันที่ในอนาคต

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

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

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

- [Microsoft Learn: Date.AddWeeks](https://learn.microsoft.com/en-us/powerquery-m/date-addweeks) _(official)_
- [Microsoft Learn: Date Functions Reference](https://learn.microsoft.com/en-us/powerquery-m/date-functions) _(official)_

---

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