Date.AddWeeks เพิ่มจำนวนสัปดาห์ (สัปดาห์ = 7 วัน) ให้กับค่า date, datetime หรือ datetimezone ที่กำหนด เหมาะสำหรับการคำนวณตามรอบเวลาประจำสัปดาห์
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| dateTime | any (date, datetime, datetimezone) | ค่า date, datetime หรือ datetimezone ที่ต้องการเพิ่มจำนวนสัปดาห์ |
| numberOfWeeks | number | จำนวนสัปดาห์ที่ต้องการเพิ่ม สามารถใช้จำนวนลบเพื่อลบสัปดาห์ (เช่น -2 = ลบ 2 สัปดาห์) |
Date.AddWeeks เพิ่มจำนวนสัปดาห์ให้กับค่าวันที่ โดยนับแบบตรงไป 1 สัปดาห์ = 7 วันเท่านั้น ไม่ขึ้นอยู่กับว่าวันเริ่มต้นเป็นวันจันทร์หรือวันอาทิตย์ ใช้จำนวนลบเพื่อลบสัปดาห์ออกจากวันที่ดั้งเดิม ค่า return จะคืนประเภท data type เดียวกับที่ส่งเข้ามา
ที่เจ๋งคือสามารถใช้ได้กับ date, datetime และ datetimezone ทั้งหมด ฟังก์ชันจึงยืดหยุ่นมากในการทำงานกับข้อมูลลักษณะต่างๆ ไม่ต้องแปลงประเภท data type ซ้ำซ้อน
ส่วนตัวผมใช้บ่อยมากเวลาต้องคำนวณตามรอบสัปดาห์ เช่น วางแผนโปรเจค คำนวณ deadline ในอนาคต หรือไปดึงข้อมูลสัปดาห์ที่แล้ว ปลอดภัยกว่า Date.AddDays(date, 7) เพราะมีความชัดเจนว่ากำลังบวก “สัปดาห์” ไม่ใช่ “7 วัน” 😎
กำหนดวันที่สิ้นสุดของสัปดาห์ที่ 1, 2, 3 เป็นต้นสำหรับกิจกรรมตามสัปดาห์
กำหนดจุดตรวจสอบความคืบหน้าของโครงการตามสัปดาห์
เพิ่ม 2 สัปดาห์ (14 วัน) ให้กับ 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 28 พฤษภาคม 2011 ฟังก์ชันจะนับแบบตรงไป 7 วัน × 2 สัปดาห์ = 14 วันพอดี
เพิ่ม 4 สัปดาห์ (28 วัน) ให้กับ 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 11 มิถุนายน 2011 ใช้สำหรับการวางแผนระยะกลางหรือคำนวณ deadline ที่ยาวออกไปประมาณ 1 เดือน
ลบ 1 สัปดาห์ (7 วัน) จาก 14 พฤษภาคม 2011 ได้ผลลัพธ์เป็น 7 พฤษภาคม 2011 ใช้เมื่อต้องการไปถึงสัปดาห์ที่แล้ว หรือคำนวณวันเริ่มต้นของโปรเจคจากวันสิ้นสุด
ใช้กับ datetime โดยจะเพิ่มเฉพาะส่วนของวันที่ ส่วนเวลา (10:30:00) จะถูกเก็บรักษาไว้เหมือนเดิม ฟังก์ชันจึง safe ที่ใช้กับข้อมูลที่มีเวลาแนบมาด้วย
Date.AddWeeks นับเพิ่มแบบปกติ 1 สัปดาห์ = 7 วัน โดยไม่สนใจว่าวันเริ่มต้นเป็นวันจันทร์หรือวันอาทิตย์ แค่บวก 7 วันตรงไป ผมเคยงงเพราะคิดว่าจะ "จัดแนว" ให้ตรงตอนท้ายสัปดาห์ แต่ปรากฎว่าไม่ได้ทำแบบนั้น 😅
ผลลัพธ์ออกมาเหมือนกันเลย แต่ทำไมถึงต้องใช้ Date.AddWeeks? ก็เพราะว่า Code ของเราจะ readable มากขึ้น ถ้าคนอื่นอ่าน Date.AddWeeks(date, 4) จะรู้ทันทีว่ากำลังเพิ่ม "4 สัปดาห์" แต่ถ้า Date.AddDays(date, 28) ต้องนั่งนับ 28 ÷ 7 อีกครั้งหนึ่ง 555
ทั้งสองแบบใช้ได้ครับ ถ้าส่งเข้า date จะคืน date ถ้าส่งเข้า datetime จะคืน datetime ถ้าส่งเข้า datetimezone จะคืน datetimezone ฟังก์ชันนี้ชาญฉลาดตรงนี้ ไม่ต้องแปลง data type กลับไปกลับมา
ได้ครับ ถ้าเซลล์หรือ Column มีค่า date หรือ datetime อยู่แล้ว ก็เขียน = Table.AddColumn(Source, "NextWeek", each Date.AddWeeks([DateColumn], 1)) เป็นต้น ผมใช้อย่างนี้บ่อยมาก เวลาต้องสร้าง Column ใหม่ที่เก็บวันที่ในอนาคต
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Date.AddWeeks จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Date.AddDays ใช้เพิ่มหรือลดจำนวนวันให้กับค่า Date, DateTime หรือ DateTimeZone โดยระบุจำนวนวันที่ต้องการ (ใส่ค่าบวกเพื่อเพิ่มวัน หรือค่าลบเพื่อลดวัน)
Date.AddMonths เพิ่มจำนวนเดือนที่ระบุให้กับค่าวันที่ โดยคืนค่า date datetime หรือ datetimezone ขึ้นอยู่กับประเภทข้อมูลอินพุต ฟังก์ชันนี้จำเป็นสำหรับการคำนวณวันครบกำหนด กำหนดตารางเวลาโครงการ และการวิเคราะห์ข้อมูลตามช่วงเวลา
Date.AddQuarters เพิ่มจำนวนไตรมาส (ไตรมาส = 3 เดือน) ให้กับค่า date datetime หรือ datetimezone ที่กำหนด คืนค่าเดียวกันกับประเภทข้อมูลอินพุต ฟังก์ชันนี้มีประโยชน์สำหรับการวิเคราะห์ข้อมูลทางการเงินตามไตรมาส และการวางแผนการจัดการเชิงกลยุทธ์
Date.AddYears เพิ่มจำนวนปีที่ระบุให้กับค่า date datetime หรือ datetimezone คืนค่าเดียวกันกับประเภทข้อมูลอินพุต เก็บรักษาส่วนของเวลาไว้เหมือนเดิม ฟังก์ชันนี้จำเป็นสำหรับการคำนวณวันครบรอบปี การวางแผนระยะยาว และการวิเคราะห์ข้อมูลตามชั้นปี
คืนค่าวันสุดท้ายของสัปดาห์
คืนค่าวันแรกของสัปดาห์
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่