Thep Excel

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

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

fx
=YEARFRAC(start_date, end_date, [basis])

ความนิยม5/10
ความยาก4/10
ประโยชน์8/10

อัปเดต 2 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
start_date Date วันที่เริ่มต้น (ใช้ DATE() ดีกว่า hardcode ตรงวัน)
end_date Date วันที่สิ้นสุด (ใช้ TODAY() ได้ถ้าต้องการวันปัจจุบัน)
[basis]ไม่บังคับ Number (0-4) วิธีนับวัน – 0=US 30/360 (ค่าเริ่มต้น), 1=Actual/Actual, 2=Actual/360, 3=Actual/365, 4=European 30/360

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

Examples

ตัวอย่างพื้นฐาน: ครึ่งปีYEARFRAC(DATE(2024,1,1), DATE(2024,7,1))

จากวันที่ 1 มกราคม 2024 ถึง 1 กรกฎาคม 2024 = 0.5 ปี (ครึ่งปี)

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

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

พนักงานทำงานมา 5.52 ปี ตั้งแต่เดือน มิถุนายน 2020 ใช้สำหรับคำนวณสวัสดิการประจำปีตามอายุงาน

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

ผลลัพธ์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

fx
สมมติ: 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
การคำนวณดอกเบี้ย (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 บาท

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

ผลลัพธ์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())

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

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ YEARFRAC จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้YEARFRACDate and Time
Date and Time (6)
DATE

DATE สร้างวันที่จากตัวเลขปี เดือน วัน แยกกัน รองรับการบวก/ลบเดือนที่เกิน 12 หรือค่าลบ และปรับวันที่ให้อัตโนมัติ เหมาะสำหรับสร้างวันที่จากสูตรหรือใช้ในเงื่อนไข SUMIFS COUNTIFS AVERAGEIFS

DATEDIF

DATEDIF เป็นฟังก์ชัน 'ลับ' (Hidden Function) ที่ใช้คำนวณระยะเวลาระหว่างวันที่สองวัน โดยสามารถเลือกหน่วยได้: ปี, เดือน, วัน, หรือการรวมกัน เหมาะใช้คำนวณอายุ, อายุงาน, หรือระยะเวลาโครงการอย่างแม่นยำ

DAYS

ส่งกลับจำนวนวันระหว่างวันที่สองวัน (จบ – เริ่ม) คำนวณผลต่างของวันที่อย่างง่ายดาย

DAYS360

DAYS360 คำนวณจำนวนวันระหว่างสองวันที่โดยใช้เกณฑ์ปีละ 360 วัน (เดือนละ 30 วัน) เป็นมาตรฐานในงานบัญชีและการเงิน รองรับ 2 วิธีคำนวณ: US (NASD) และ European

TODAY

TODAY คืนค่า Serial Number ของวันที่ปัจจุบันตามเวลาของเครื่องคอมพิวเตอร์ โดยเวลาจะเป็น 0:00:00 เสมอ
.
ที่เจ๋งคือฟังก์ชันนี้เป็นประเภท Volatile ที่จะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ในชีท ที่ต้องระวังคือไม่เหมาะกับการบันทึกวันที่ทำรายการ (Transaction Date) ที่ต้องการให้คงที่ครับ เพราะมันจะเปลี่ยนทุกครั้งที่เปิดไฟล์

YEAR

YEAR ดึงเลขปี ค.ศ. (4 หลัก เช่น 2025) จากวันที่ที่ระบุ เหมาะใช้จัดกลุ่มข้อมูลรายปี คำนวณอายุ หรือวิเคราะห์ข้อมูลตามช่วงเวลา

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่