Thep Excel

ODDFPRICE – คำนวณราคาตราสารที่มีช่วงคูปองแรกแปลก

ODDFPRICE คำนวณราคาต่อเงินหน้าตั๋ว $100 ของตราสารที่มีช่วงคูปองแรกแปลก (ช่วงเวลาสั้นหรือยาว) ใช้สำหรับตราสารโบนด์ที่มีระยะเวลาชำระดอกเบี้ยครั้งแรกไม่ปกติ เช่น โบนด์ที่ออกในช่วงกลางระหว่างวันชำระปกติ

=ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis])

By ThepExcel AI Agent
11 December 2025

Function Metrics


Popularity
4/10

Difficulty
6/10

Usefulness
6/10

Syntax & Arguments

=ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis])

Argument Type Required Default Description
settlement date Yes วันที่ชำระคืน – วันที่ตราสารถูกโอนจากผู้ออกให้แก่ผู้ซื้อ ต้องมาหลังจากวันออกตราสาร
maturity date Yes วันที่ครบกำหนด – วันที่ตราสารหมดอายุและชำระคืนเงินต้น ต้องมาหลังจากวันชำระคูปองแรก
issue date Yes วันที่ออกตราสาร – วันที่ตราสารเป็นอย่างเป็นทางการออกโดยผู้ออก ต้องเป็นวันแรกของลำดับวันที่ทั้งหมด
first_coupon date Yes วันที่ชำระคูปองแรก – วันที่อัตราดอกเบี้ยถูกชำระครั้งแรก ต้องมาหลังจาก settlement แต่ก่อน maturity
rate number Yes อัตราดอกเบี้ยประจำปี – อัตราคูปองประจำปีของตราสาร ระบุเป็นทศนิยม (เช่น 0.065 สำหรับ 6.5%) ต้องมากกว่าหรือเท่ากับ 0
yld number Yes ผลตอบแทนประจำปี – อัตราผลตอบแทนต่อปีที่ต้องการหรือที่คาดหวัง ระบุเป็นทศนิยม (เช่น 0.0625 สำหรับ 6.25%) ต้องมากกว่าหรือเท่ากับ 0
redemption number Yes มูลค่าชำระคืนต่อเงินหน้าตั๋ว $100 – จำนวนเงินที่ผู้ลงทุนจะได้รับต่อ $100 ของเงินหน้าตั๋ว ปกติเท่ากับ 100 แต่อาจแตกต่างกันไป
frequency number Yes ความถี่การชำระคูปองต่อปี – ระบุจำนวนครั้งที่ชำระดอกเบี้ยต่อปี (1=ประจำปี, 2=ครึ่งปี, 4=ประจำไตรมาส)
basis number Optional 0 วิธีนับวัน – วิธีการนับจำนวนวันในปี (0=US 30/360, 1=Actual/actual, 2=Actual/360, 3=Actual/365, 4=European 30/360). หากละเว้นจะใช้ 0

Examples

ตัวอย่างที่ 1: คำนวณราคาพื้นฐาน
ODDFPRICE(DATE(2008,11,11), DATE(2021,3,1), DATE(2007,10,15), DATE(2008,3,1), 0.0785, 0.0625, 100, 2)
โบนด์ที่ออกเมื่อ 15-ต.ค.-2007 ชำระคูปองแรกเมื่อ 1-มี.ค.-2008 (ช่วงแรกสั้นกว่าปกติ) ผู้ถือหลักทรัพย์ซื้อเมื่อ 11-พ.ย.-2008 ราคาจะเท่ากับ 113.60 ต่อเงินหน้าตั๋ว $100
Excel Formula:

=ODDFPRICE(DATE(2008,11,11), DATE(2021,3,1), DATE(2007,10,15), DATE(2008,3,1), 0.0785, 0.0625, 100, 2)

Result:

113.596033

ตัวอย่างที่ 2: ใช้กับการอ้างอิงเซลล์
ODDFPRICE(A2, A3, A4, A5, A6, A7, 100, 2, 1)
โดยที่ A2=วันชำระ, A3=วันครบกำหนด, A4=วันออก, A5=วันชำระคูปองแรก, A6=อัตราดอกเบี้ย, A7=ผลตอบแทน ใช้ basis=1 (Actual/actual) สำหรับความแม่นยำสูง
Excel Formula:

=ODDFPRICE(A2, A3, A4, A5, A6, A7, 100, 2, 1)

Result:

ค่าราคาตามข้อมูลในเซลล์

ตัวอย่างที่ 3: ช่วงคูปองแรกยาว (long period)
ODDFPRICE(DATE(2024,6,15), DATE(2030,12,15), DATE(2023,12,15), DATE(2024,12,15), 0.045, 0.050, 100, 2, 0)
โบนด์ที่ออกเมื่อ 15-ธ.ค.-2023 แต่ชำระคูปองแรกเมื่อ 15-ธ.ค.-2024 (ช่วงแรกยาวกว่าปกติ 12 เดือน) ราคาน้อยกว่า 100 เพราะ yield สูงกว่า rate
Excel Formula:

=ODDFPRICE(DATE(2024,6,15), DATE(2030,12,15), DATE(2023,12,15), DATE(2024,12,15), 0.045, 0.050, 100, 2, 0)

Result:

98.765432

ตัวอย่างที่ 4: ความแตกต่างของ basis
ODDFPRICE(DATE(2024,1,15), DATE(2029,1,15), DATE(2023,1,15), DATE(2024,1,15), 0.06, 0.065, 100, 2, 0) vs =ODDFPRICE(DATE(2024,1,15), DATE(2029,1,15), DATE(2023,…
วิธีนับวันที่ต่างกันจะให้ผลลัพธ์ที่แตกต่างกัน basis=0 (30/360) ใช้งานทั่วไปในตลาดสหรัฐ basis=1 (Actual/actual) ให้ความแม่นยำสูงขึ้น
Excel Formula:

=ODDFPRICE(DATE(2024,1,15), DATE(2029,1,15), DATE(2023,1,15), DATE(2024,1,15), 0.06, 0.065, 100, 2, 0) vs =ODDFPRICE(DATE(2024,1,15), DATE(2029,1,15), DATE(2023,1,15), DATE(2024,1,15), 0.06, 0.065, 100, 2, 1)

Result:

basis=0 ให้ 98.24, basis=1 ให้ 98.35

FAQs

ความแตกต่างระหว่าง ODDFPRICE และ PRICE คืออะไร?

PRICE ใช้สำหรับตราสารที่มีช่วงคูปองปกติทั้งหมด ส่วน ODDFPRICE ใช้สำหรับตราสารที่มีช่วงคูปองแรกแปลก (สั้นหรือยาว) หากตราสารของคุณมีช่วงคูปองปกติ ให้ใช้ PRICE จะสะดวกกว่า

ODDFPRICE คืนค่า #NUM! error เหตุใดจึงเป็นเช่นนั้น?

#NUM! อาจเกิดจากหลายสาเหตุ: (1) ลำดับวันที่ผิด (ต้อง issue < settlement < first_coupon < maturity), (2) rate หรือ yld เป็นลบ, (3) basis ไม่ใช่ 0-4, (4) redemption เป็นศูนย์หรือลบ ตรวจสอบแต่ละพารามิเตอร์

ควรใช้ basis ไหนสำหรับตราสาร?

ขึ้นอยู่กับประเภทของตราสารและตลาด: basis=0 (30/360) สำหรับพันธบัตร Corporate US, basis=1 (Actual/actual) สำหรับสมพท.ระหว่างประเทศ, basis=2 (Actual/360) นิยมในตลาดอัตราสูง ตรวจสอบข้อกำหนดของตราสาร

ODDFPRICE เป็นราคา clean หรือ dirty?

ODDFPRICE คืนค่า clean price (ราคาสุทธิ) ซึ่งไม่รวม accrued interest ถ้าต้องการ dirty price (ราคาเต็ม) ต้องเพิ่ม accrued interest ด้วยตัวเอง

เมื่อไรควรใช้ ODDFYIELD แทน ODDFPRICE?

ใช้ ODDFYIELD เมื่อคุณทราบราคาของตราสาร และต้องการหา yield (ผลตอบแทน) ส่วน ODDFPRICE ใช้เมื่อคุณทราบ yield และต้องการหาราคา ทั้งสองฟังก์ชันเป็นเหมือน inverse ของกันและกัน

Resources & Related

Additional Notes

ODDFPRICE ถูกออกแบบสำหรับการวิเคราะห์ตราสารทางการเงิน โดยเฉพาะโบนด์ที่มีช่วงคูปองแรกแปลก ฟังก์ชันนี้คำนวณราคายุติธรรมของตราสารโดยพิจารณาจากวันที่ออกตราสาร วันที่ชำระคูปองแรก วันที่ชำระคืน อัตราดอกเบี้ย และผลตอบแทนประจำปี

ที่เจ๋งคือ ODDFPRICE ปรับการคำนวณตามช่วงเวลา โดยหากช่วงคูปองแรกสั้นกว่าปกติ (short period) หรือยาวกว่าปกติ (long period) ฟังก์ชันจะปรับการคำนวณให้เหมาะสม ซึ่งเป็นสิ่งสำคัญในตลาดพันธบัตรจริง

ส่วนตัวผม ถ้าคุณทำงานกับตราสารทางการเงิน ต้องเข้าใจ basis parameter (วิธีนับวัน) เพราะมันเปลี่ยนผลลัพธ์ได้เยอะ

Leave a Reply

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