กับดักของ Simple Return vs ความจริงของ XIRR
สมมติลงทุนรวม 90,000 บาท ปลายปีได้ 100,000 บาท (กำไร 10,000 บาท) ตัวเลขเดียวกัน แต่วิธีคิดต่างกัน ผลลัพธ์หนังคนละม้วน
Simple Return
สูตรนี้ 10,000 / 90,000 ตั้งสมมติฐานว่าเงินทั้ง 90,000 บาท "จม" อยู่ในการลงทุนตั้งแต่วันแรกของปี ซึ่งไม่จริงสำหรับการทยอยลงทุน (DCA)
XIRR (Time Value)
ให้เครดิตกับ "เวลา" เงินก้อนหลังเพิ่งเข้ามาทำงานไม่นานแต่ช่วยสร้างมูลค่ารวมได้สูง แสดงว่าพอร์ตนี้มีประสิทธิภาพสูงกว่าที่ตาเห็น
🧮 จำลองการคำนวณ XIRR
ลองเปลี่ยนวันที่หรือจำนวนเงิน เพื่อดูความแตกต่างของผลตอบแทน
⚠️ Note: XIRR คือผลตอบแทน "ต่อปี" (Annualized)
ตารางกระแสเงินสด (Cash Flows)
| วันที่ | จำนวนเงิน |
|---|
ไทม์ไลน์กระแสเงินสด (Cash Flow Timeline)
กราฟแสดงระยะห่างระหว่างการลงทุนแต่ละครั้ง (Time Gaps)
วิธีใช้งาน XIRR ในเครื่องมือต่างๆ
เลือกเครื่องมือที่คุณถนัดเพื่อดูตัวอย่างโค้ดและวิธีการเตรียมข้อมูล
📋 การเตรียมข้อมูลใน Excel
ต้องเตรียมข้อมูลเป็น 2 คอลัมน์ คือ วันที่ และ กระแสเงินสด โดยใช้สูตร:
=XIRR(values, dates)
| A (วันที่) | B (กระแสเงินสด) | |
|---|---|---|
| 1 | Header | Header |
| 2 | 2023-01-01 | -50,000 |
| 3 | 2023-06-01 | -20,000 |
| 4 | 2023-09-01 | -20,000 |
| 5 | 2023-12-31 | 100,000 |
| 6 | ผลลัพธ์ (XIRR): | 14.81% |
* ในเซลล์ B6 ใส่สูตร: =XIRR(B2:B5, A2:A5)
TIP กรณีได้รับเงินปันผล (Dividends)
หากระหว่างปีมีการจ่ายเงินปันผลออกมา ให้ แทรกแถว ตามวันที่ได้รับจริง และใส่จำนวนเงินเป็น ค่าบวก (+) เพราะถือเป็นเงินที่ไหลกลับเข้ากระเป๋า (Cash Inflow)
| วันที่ | กระแสเงินสด | คำอธิบาย |
|---|---|---|
| ... | ... | ... |
| 2023-06-01 | -20,000 | ลงทุนเพิ่ม |
| 2023-08-15 | +1,500 | ได้รับเงินปันผล |
| 2023-09-01 | -20,000 | ลงทุนเพิ่ม |
from pyxirr import xirr # ข้อมูลวันที่ (yyyy-mm-dd) dates = ["2023-01-01", "2023-06-01", "2023-09-01", "2023-12-31"] # จำนวนเงิน (ลงทุนติดลบ, รับเงินบวก) amounts = [-50000, -20000, -20000, 100000] # คำนวณ rate = xirr(dates, amounts) print(f"XIRR: {rate:.2%}") # Output: 14.81%
แนะนำให้ใช้ไลบรารี pyxirr เนื่องจากเขียนด้วย Rust และมีความแม่นยำสูง
import { xirr } from 'node-xirr'; const transactions = [ { amount: -50000, when: new Date(2023, 0, 1) }, { amount: -20000, when: new Date(2023, 5, 1) }, { amount: -20000, when: new Date(2023, 8, 1) }, { amount: 100000, when: new Date(2023, 11, 31) } ]; console.log(xirr(transactions)); // Output: 0.1481...
ข้อควรระวัง: เมื่อไหร่ที่ XIRR อาจไม่ใช่คำตอบที่ดีที่สุด
1. ระยะเวลาการลงทุนที่สั้นเกินไป (Short Duration)
หากคุณลงทุนเพียงแค่ 1 เดือนแล้วได้กำไร 5% สูตร XIRR จะคำนวณโดยสมมติว่าคุณทำกำไรได้ 5% ซ้ำๆ กันทุกเดือนไปจนครบปี ซึ่งจะทำให้ค่า XIRR พุ่งสูงผิดปกติ (อาจสูงถึง 70-80% ต่อปี) ซึ่งในความเป็นจริงอาจทำไม่ได้แบบนั้น
2. กระแสเงินสดที่ผันผวนสลับไปมา (Multiple Sign Changes)
ในกรณีที่มีการนำเงินเข้าและถอนออกสลับกันไปมาหลายๆ รอบ ตัวสูตรคณิตศาสตร์อาจคำนวณหาค่าคำตอบได้หลายค่า (Multiple Solutions) หรือหาค่าไม่ได้เลย