Thep Excel

YEARFRAC – คำนวณสัดส่วนของปีระหว่างสองวัน

YEARFRAC คำนวณว่าระหว่างวันที่สองวัน ผ่านไปแล้วกี่เปอร์เซ็นต์ของปี เป็นเลขทศนิยม

=YEARFRAC(start_date, end_date, [basis])

By ThepExcel AI Agent
2 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
8/10

Syntax & Arguments

=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

Examples

ตัวอย่างพื้นฐาน: ครึ่งปี
YEARFRAC(DATE(2024,1,1), DATE(2024,7,1))
จากวันที่ 1 มกราคม 2024 ถึง 1 กรกฎาคม 2024 = 0.5 ปี (ครึ่งปี)
Excel Formula:

=YEARFRAC(DATE(2024,1,1), DATE(2024,7,1))

Result:

0.5

ตัวอย่างจริง: อายุงานพนักงาน
สมมติ: A2=วันที่เริ่มงาน (1/6/2020), B2=TODAY() =YEARFRAC(A2, B2) ผลลัพธ์: 5.52 ปี
พนักงานทำงานมา 5.52 ปี ตั้งแต่เดือน มิถุนายน 2020 ใช้สำหรับคำนวณสวัสดิการประจำปีตามอายุงาน
Excel Formula:

สมมติ: A2=วันที่เริ่มงาน (1/6/2020), B2=TODAY()
=YEARFRAC(A2, B2)
ผลลัพธ์: 5.52 ปี

Result:

5.52

เปรียบเทียบ basis ต่างๆ (leap year)
สมมติ: 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 (30/360) ประมาณเดือนเป็น 30 วัน ไม่คำนึง leap year = 360 วัน
Basis 1 (Actual/Actual) นับวันจริง รวม 366 วันของปี leap = ผลลัพธ์ > 1
Excel Formula:

สมมติ: A2=1/1/2024 (ปีอธิกสุรทิน), B2=12/31/2024
Basis 0: =YEARFRAC(A2,B2,0) = 0.9973
Basis 1: =YEARFRAC(A2,B2,1) = 1.0027

Result:

Basis 0 = 0.9973, Basis 1 = 1.0027

การคำนวณดอกเบี้ย (Advanced)
สมมติ: A2=วันเริ่ม (1/1/2024), B2=วันสิ้น (6/30/2024), C2=อัตราดอกเบี้ย 6% =C2 * 100000 * YEARFRAC(A2, B2, 1) ผลลัพธ์: 3,041.10
ดอกเบี้ยสำหรับจำนวนเงิน 100,000 บาท อัตรา 6% ต่อปี สำหรับ 181 วัน (1 ม.ค. – 30 มิถุนายน 2024) = 3,041.10 บาท
Excel Formula:

สมมติ: A2=วันเริ่ม (1/1/2024), B2=วันสิ้น (6/30/2024), C2=อัตราดอกเบี้ย 6%
=C2 * 100000 * YEARFRAC(A2, B2, 1)
ผลลัพธ์: 3,041.10

Result:

3,041.10

FAQs

ต้องเลือก basis ไหนสำหรับการคำนวณดอกเบี้ย?

ขึ้นกับประเทศและสัญญา:
– สหรัฐ (US): Basis 0 (30/360) ทั่วไป
– EU และตลาดระหว่างประเทศ: Basis 1 (Actual/Actual)
– สินเชื่อบ้าน: Basis 2 (Actual/360) หรือ Basis 3 (Actual/365)
– ไทย: ส่วนใหญ่ใช้ Basis 0 หรือ 1 (เช็คเอกสารสัญญาเสมอ)
กลอุบาย: ถ้าไม่แน่ใจ บอก Excel ให้ลองทั้ง 5 แบบ แล้วดูว่า basis ไหนให้ผลลัพธ์เท่ากับเอกสารอ้างอิง

ทำไม =YEARFRAC(DATE(2024,12,31), DATE(2024,1,1)) ให้ผลลบ?

เพราะ end_date < start_date YEARFRAC คำนวณวันความแตกต่างเป็นลบ ถ้าต้องการค่าสัมบูรณ์ ใช้ =ABS(YEARFRAC(…))

YEARFRAC vs DATEDIF ต่างไหม?

– YEARFRAC: คำนวณเป็นเศษส่วนของปี (0.5, 0.25, etc.) มี basis ยืดหยุ่น
– DATEDIF: คำนวณเป็นจำนวนเต็ม (วัน, เดือน, ปี) ไม่มี basis
ใช้ YEARFRAC ถ้าต้องการทศนิยม, DATEDIF ถ้าต้องการจำนวนเต็ม

ทำไม =INT(YEARFRAC(DATE(2000,1,15), TODAY())) ไม่เท่ากับอายุจริง?

เพราะ YEARFRAC นับวันจริงทั้งหมด ถ้า INT=25 แปลว่า 25 ปีเต็มผ่านไปแล้ว แต่วันเกิดปีนี้อาจยังไม่ถึง
ถ้าต้องการอายุสำเร็จปี ใช้ =YEAR(TODAY())-YEAR(วันเกิด)-IF(OR(MONTH(TODAY())<MONTH(วันเกิด),AND(MONTH(TODAY())=MONTH(วันเกิด),DAY(TODAY())<DAY(วันเกิด))),1,0) ซับซ้อนนิดนึง แต่แม่นยำ

ใช้ YEARFRAC กับข้อมูลเป็นข้อความ (text) ได้ไหม?

ได้ แต่ Excel ต้องเข้าใจรูปแบบวันที่ก่อน เสี่ยงข้อผิดพลาด ดีกว่าใช้ DATE() หรือ DATEVALUE() แปลงเป็น date object ก่อน

Resources & Related

Additional Notes

YEARFRAC คำนวณจำนวนวันระหว่างวันที่สองวัน แล้วแปลงเป็นเศษส่วนของปี เช่น 0.5 = ครึ่งปี, 0.25 = ไตรมาส 1 เป็นต้น ใช้บ่อยในการคำนวณดอกเบี้ย อายุงาน สวัสดิการประจำปี และสัญญาทางการเงิน

ที่เจ๋งคือ YEARFRAC มี basis (วิธีนับวัน) ถึง 5 แบบ แต่ละแบบนับวันต่างกัน ถ้าใช้ผิด basis ผลลัพธ์จะต่างกันได้ สำคัญตรงนี้ ถ้าคำนวณดอกเบี้ยหรือสัญญา ต้องตรวจเอกสารก่อนว่า basis ไหนถูกต้อง

ส่วนตัวผม ตั้งแต่รู้ YEARFRAC ใช้มันคำนวณอายุพนักงาน โภคนิยมการจ้าง ดอกเบี้ยสินเชื่อ และวันครบรอบสัญญาเกือบทุกครั้ง ถ้าไม่มีตัวนี้ ชีวิตจะลำบาก 😎

Leave a Reply

Your email address will not be published. Required fields are marked *