YEARFRAC คำนวณว่าระหว่างวันที่สองวัน ผ่านไปแล้วกี่เปอร์เซ็นต์ของปี เป็นเลขทศนิยม
=YEARFRAC(start_date, end_date, [basis])
=YEARFRAC(start_date, end_date, [basis])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| start_date | Date | Yes | วันที่เริ่มต้น (ใช้ DATE() ดีกว่า hardcode ตรงวัน) | |
| end_date | Date | Yes | วันที่สิ้นสุด (ใช้ TODAY() ได้ถ้าต้องการวันปัจจุบัน) | |
| basis | Number (0-4) | Optional | 0 | วิธีนับวัน – 0=US 30/360 (ค่าเริ่มต้น), 1=Actual/Actual, 2=Actual/360, 3=Actual/365, 4=European 30/360 |
YEARFRAC(DATE(2024,1,1), DATE(2024,7,1))=YEARFRAC(DATE(2024,1,1), DATE(2024,7,1))
0.5
สมมติ: A2=วันที่เริ่มงาน (1/6/2020), B2=TODAY() =YEARFRAC(A2, B2) ผลลัพธ์: 5.52 ปีสมมติ: A2=วันที่เริ่มงาน (1/6/2020), B2=TODAY()
=YEARFRAC(A2, B2)
ผลลัพธ์: 5.52 ปี
5.52
สมมติ: A2=1/1/2024 (ปีอธิกสุรทิน), B2=12/31/2024 Basis 0: =YEARFRAC(A2,B2,0) = 0.9973 Basis 1: =YEARFRAC(A2,B2,1) = 1.0027สมมติ: A2=1/1/2024 (ปีอธิกสุรทิน), B2=12/31/2024
Basis 0: =YEARFRAC(A2,B2,0) = 0.9973
Basis 1: =YEARFRAC(A2,B2,1) = 1.0027
Basis 0 = 0.9973, Basis 1 = 1.0027
สมมติ: A2=วันเริ่ม (1/1/2024), B2=วันสิ้น (6/30/2024), C2=อัตราดอกเบี้ย 6% =C2 * 100000 * YEARFRAC(A2, B2, 1) ผลลัพธ์: 3,041.10สมมติ: A2=วันเริ่ม (1/1/2024), B2=วันสิ้น (6/30/2024), C2=อัตราดอกเบี้ย 6%
=C2 * 100000 * YEARFRAC(A2, B2, 1)
ผลลัพธ์: 3,041.10
3,041.10
ขึ้นกับประเทศและสัญญา:
– สหรัฐ (US): Basis 0 (30/360) ทั่วไป
– EU และตลาดระหว่างประเทศ: Basis 1 (Actual/Actual)
– สินเชื่อบ้าน: Basis 2 (Actual/360) หรือ Basis 3 (Actual/365)
– ไทย: ส่วนใหญ่ใช้ Basis 0 หรือ 1 (เช็คเอกสารสัญญาเสมอ)
กลอุบาย: ถ้าไม่แน่ใจ บอก Excel ให้ลองทั้ง 5 แบบ แล้วดูว่า basis ไหนให้ผลลัพธ์เท่ากับเอกสารอ้างอิง
เพราะ end_date < start_date YEARFRAC คำนวณวันความแตกต่างเป็นลบ ถ้าต้องการค่าสัมบูรณ์ ใช้ =ABS(YEARFRAC(…))
– YEARFRAC: คำนวณเป็นเศษส่วนของปี (0.5, 0.25, etc.) มี basis ยืดหยุ่น
– DATEDIF: คำนวณเป็นจำนวนเต็ม (วัน, เดือน, ปี) ไม่มี basis
ใช้ YEARFRAC ถ้าต้องการทศนิยม, DATEDIF ถ้าต้องการจำนวนเต็ม
เพราะ YEARFRAC นับวันจริงทั้งหมด ถ้า INT=25 แปลว่า 25 ปีเต็มผ่านไปแล้ว แต่วันเกิดปีนี้อาจยังไม่ถึง
ถ้าต้องการอายุสำเร็จปี ใช้ =YEAR(TODAY())-YEAR(วันเกิด)-IF(OR(MONTH(TODAY())<MONTH(วันเกิด),AND(MONTH(TODAY())=MONTH(วันเกิด),DAY(TODAY())<DAY(วันเกิด))),1,0) ซับซ้อนนิดนึง แต่แม่นยำ
ได้ แต่ Excel ต้องเข้าใจรูปแบบวันที่ก่อน เสี่ยงข้อผิดพลาด ดีกว่าใช้ DATE() หรือ DATEVALUE() แปลงเป็น date object ก่อน
YEARFRAC คำนวณจำนวนวันระหว่างวันที่สองวัน แล้วแปลงเป็นเศษส่วนของปี เช่น 0.5 = ครึ่งปี, 0.25 = ไตรมาส 1 เป็นต้น ใช้บ่อยในการคำนวณดอกเบี้ย อายุงาน สวัสดิการประจำปี และสัญญาทางการเงิน
ที่เจ๋งคือ YEARFRAC มี basis (วิธีนับวัน) ถึง 5 แบบ แต่ละแบบนับวันต่างกัน ถ้าใช้ผิด basis ผลลัพธ์จะต่างกันได้ สำคัญตรงนี้ ถ้าคำนวณดอกเบี้ยหรือสัญญา ต้องตรวจเอกสารก่อนว่า basis ไหนถูกต้อง
ส่วนตัวผม ตั้งแต่รู้ YEARFRAC ใช้มันคำนวณอายุพนักงาน โภคนิยมการจ้าง ดอกเบี้ยสินเชื่อ และวันครบรอบสัญญาเกือบทุกครั้ง ถ้าไม่มีตัวนี้ ชีวิตจะลำบาก 😎