RATE เป็นฟังก์ชันการเงินที่ใช้สำหรับคำนวณอัตราดอกเบี้ยต่องวด (Interest Rate Per Period) สำหรับเงินกู้หรือการลงทุนที่มีการชำระเงินเป็นงวดๆ ด้วยจำนวนเงินคงที่ เหมาะสำหรับวิเคราะห์อัตราผลตอบแทนจากการให้กู้ยืมหรือการลงทุนในหลักทรัพย์
=RATE(nper, pmt, pv, [fv], [type], [guess])
=RATE(nper, pmt, pv, [fv], [type], [guess])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| nper | Number | Yes | จำนวนงวดทั้งหมด ต้องเป็นตัวเลขบวกเท่านั้น ตัวอย่าง: เงินกู้ 5 ปี ผ่อนเดือนละ 1 ครั้ง = 5*12 = 60 งวด, เงินลงทุน 10 ปี = 10 งวด | |
| pmt | Number | Yes | จำนวนเงินชำระต่องวด (Payment per Period) – ต้องคงที่ตลอด เครื่องหมายสำคัญ: ผ่อนชำระ (เงินออก) = ลบ (-), เงินรับ (เงินเข้า) = บวก (+) เช่น เงินกู้ผ่อน 1000 = -1000, ได้เงินหุ้นจ่ายปละ 500 = +500 | |
| pv | Number | Yes | Present Value – มูลค่าปัจจุบัน (เงินต้น) ที่ได้รับ หรือจ่ายในเบิ้งแรก เครื่องหมาย: เงินกู้ (ได้เงิน) = บวก (+), เงินลงทุน (จ่ายเงิน) = ลบ (-) เช่น กู้เงิน 50000 = 50000, ลงทุน 50000 = -50000 | |
| fv | Number | Optional | 0 | Future Value – มูลค่าในอนาคต (เงินที่เหลือ) หลังจากสิ้นสุดทุกงวด ค่า Default = 0 หมายถึงไม่มีเงินค้างเหลือ เช่น ลงทุน 50000 ต้องการให้เป็น 60000 ใน 5 ปี = 60000, เงินกู้ต้องชำระจนหมดตัว = 0 (ไม่ต้องใส่ก็ได้) |
| type | Number | Optional | 0 | ระบุเวลาการชำระเงิน: 0 = สิ้นสุดงวด (End of Period) – ค่า Default, 1 = ต้นงวด (Beginning of Period) ตัวอย่าง: เงินกู้ผ่อนต้นเดือน = 1, ผ่อนปลายเดือน = 0 |
| guess | Number | Optional | 0.1 (10%) | ค่าประมาณของอัตราดอกเบี้ยที่คาดหวัง (Initial Guess) – ช่วย RATE ลู่เข้าหาคำตอบได้เร็วขึ้น ค่า Default = 0.1 (10%) หากไม่บรรจบ (Converge) อาจต้องเปลี่ยนค่านี้ เช่น guess = 0.05 (5%), guess = 0.15 (15%) |
RATE(60, -1000, 50000)=RATE(60, -1000, 50000)
0.00830 หรือ 0.83% ต่อเดือน
RATE(5, 0, -50000, 65000)=RATE(5, 0, -50000, 65000)
0.0696 หรือ 6.96% ต่อปี
RATE(360, -11544, 2500000)*12=RATE(360, -11544, 2500000)*12
0.05 หรือ 5% ต่อปี
RATE(20, 5000, -100000, 100000)=RATE(20, 5000, -100000, 100000)
0.0471 หรือ 4.71% ต่อปี
RATE(60, -1000, 50000, 0, 0) และ =RATE(60, -1000, 50000, 0, 1)=RATE(60, -1000, 50000, 0, 0) และ =RATE(60, -1000, 50000, 0, 1)
Type=0: 0.8297% | Type=1: 0.8050%
RATE(120, -5000, 500000, 0, 0, 0.05)=RATE(120, -5000, 500000, 0, 0, 0.05)
0.00813 หรือ 0.813% ต่อเดือน (9.756% ต่อปี)
RATE(60, -1000, 50000, -25000)*12=RATE(60, -1000, 50000, -25000)*12
0.0596 หรือ 5.96% ต่อปี
RATE(60, -1000, 50000)*12 | =RATE(60, -980, 50000)*12 | =RATE(72, -750, 50000)*12=RATE(60, -1000, 50000)*12 | =RATE(60, -980, 50000)*12 | =RATE(72, -750, 50000)*12
ธนาคาร A: 9.96% | ธนาคาร B: 9.35% | บริษัท C: 10.67%
Error #NUM! แปลว่า “No Solution Found” – RATE หาคำตอบไม่ได้ครับ 😅
**สาเหตุหลักๆ:**
1. **ข้อมูลขัดแย้งกัน** (ไม่สามารถหาอัตราให้เป็นจริงได้)
– ตัวอย่าง: กู้เงิน 50,000 ผ่อนเดือนละ 100 บาท เป็นเวลา 60 เดือน (จ่ายรวมแค่ 6,000) → ไม่มีอัตราดอกเบี้ยไหนที่สมเหตุสมผล
– แก้: ตรวจสอบ nper, pmt, pv, fv ให้ตรงกับความเป็นจริง
2. **Guess ไม่เหมาะ** (ค่าเริ่มต้น 10% อาจไม่ลู่เข้า)
– เหตุ: RATE ใช้ Iteration 20 ครั้ง ถ้า guess เริ่มต้นห่างไกลจากคำตอบจริง อาจไม่ลู่เข้า
– วิธีแก้: ลองเปลี่ยน guess เป็น 0.05 (5%), 0.01 (1%), 0.15 (15%) เป็นต้น
“`
=IFERROR(RATE(60, -1000, 50000, 0, 0, 0.05), RATE(60, -1000, 50000, 0, 0, 0.10))
“`
3. **Nper = 0 หรือค่าไม่สมเหตุสมผล**
– ตัวอย่าง: RATE(0, -1000, 50000) → Error!
– แก้: ตรวจสอบว่า nper ≥ 1 เสมอ
4. **Pmt และ Pv มีเครื่องหมายเดียวกัน**
– ตัวอย่าง: RATE(60, 1000, 50000) ← ทั้ง pmt และ pv เป็นบวก
– หมายความ: ได้เงิน 50,000 แล้วยังได้เงินเพิ่มเดือนละ 1,000 → ไม่เข้าท่า!
– แก้: ให้เครื่องหมายตรงกันข้าม pmt = -1000, pv = 50000
**วิธี Debug ที่ผมใช้:**
“`
=IFERROR(RATE(nper, pmt, pv, fv, type, guess), “ลองเปลี่ยน guess”)
“`
แล้วลองค่า guess ต่างๆ จนกว่าจะได้ผล
ใช่ครับ คำถามนี้ถามบ่อยมาก 😊
**ความเหมือน:**
– ทั้ง RATE และ IRR ต่างก็คำนวณอัตราผลตอบแทน (Discount Rate)
– ทั้งสองใช้ Iteration วนซ้ำ
– ทั้งสองอาจคืน Error #NUM! ได้
**ความต่างกัน:**
| สิ่ง | RATE | IRR |
|——|——|—–|
| **Input** | nper (เลข), pmt (คงที่), pv, fv | Cash Flow Series (Array) |
| **ใช้เมื่อ** | ชำระเงินเป็นจำนวนคงที่ทุกงวด (Annuity) | กระแสเงินสดแปรผัน (Variable Cash Flows) |
| **ตัวอย่าง** | เงินกู้ผ่อนคงที่ 1,000/เดือน | ลงทุนแล้วได้เงินต่างจำนวนแต่ละปี |
| **สูตร** | =RATE(60, -1000, 50000) | =IRR({-50000, 5000, 8000, 10000, …}) |
| **ง่ายต่อการใช้** | ง่าย (พารามิเตอร์ชัดเจน) | ซับซ้อนกว่า (ต้องจัดเรียง Cash Flow) |
**คำแนะนำจากผม:**
– ใช้ **RATE** เมื่อ: เงินกู้, ผ่อนราคาเท่า, เงินฝาก/เงินออม
– ใช้ **IRR** เมื่อ: ลงทุนแล้วได้เงินแบบ Variable (หุ้น, โครงการลงทุน)
– ใช้ **NPER/PMT/PV** ร่วมกับ RATE เมื่อต้องการหาตัวแปรอื่นๆ
นี่คือจุดที่ผ่อนหนักมากครับ! 😅 เครื่องหมายไม่ถูก = ผลลัพธ์ผิด
**กฎเบื้องต้น:**
– **เงินเข้า** (Inflow) = **บวก** (+)
– **เงินออก** (Outflow) = **ลบ** (-)
**ตัวอย่างการกู้ยืม:**
“`
กู้เงิน 50,000 → เงินเข้า → pv = +50000
ผ่อนเดือนละ 1,000 → เงินออก → pmt = -1000
ได้ค่าตัดจำหน่ายส่วนกลับ → เงินเข้า → fv ??? (ไม่มี = 0)
“`
**ตัวอย่างลงทุน:**
“`
ลงทุน 50,000 → เงินออก → pv = -50000
ไม่มีการชำระซ้ำ → pmt = 0
ได้เงินกลับ 65,000 → เงินเข้า → fv = +65000
“`
**ถ้าลืมใส่เครื่องหมาย:**
❌ ผิด:
“`
=RATE(60, 1000, 50000) ← pmt เป็นบวก
→ ได้ผลผิด หรือ Error #NUM!
“`
✅ ถูก:
“`
=RATE(60, -1000, 50000) ← pmt เป็นลบ
→ ได้ผล 0.83% ต่อเดือน
“`
**วิธีจำให้ง่าย:**
ลองคิดว่า “เงินของฉัน” ไหล่ไปไหน:
– ออกจากกระเป๋า (ผ่อนชำระ) = ลบ (-)
– เข้ากระเป๋า (ได้เงินคืน) = บวก (+)
💡 **Pro Tip:** ถ้าไม่แน่ใจ ลองคำนวณ 2 แบบแล้วเทียบดู คำตอบที่เหมาะสมขึ้นอยู่กับความเป็นจริง
**กฎเบื้องต้น:** RATE คืนค่าต่องวด ต้องปรับให้เป็นต่อปี
**สูตรการปรับ:**
– เงินกู้รายเดือน → **คูณ 12**
– เงินกู้รายไตรมาส → **คูณ 4**
– เงินกู้รายครึ่งปี → **คูณ 2**
– เงินกู้รายปี → **ไม่ต้องคูณ** (ใช้ได้เลย)
**ตัวอย่าง:**
“`
Annual Rate = RATE(nper, pmt, pv, fv, type, guess) × m
เมื่อ m = จำนวนงวดต่อปี (12 สำหรับเดือน)
“`
**ตัวอย่างจริง:**
**1. เงินกู้รายเดือน:**
“`
=RATE(60, -1000, 50000) = 0.00830 (0.83% ต่อเดือน)
อัตราต่อปี = 0.00830 × 12 = 0.0996 = 9.96% ต่อปี
“`
**2. ฝากเงิน (คูณโดยตรง):**
“`
=RATE(60, -1000, 50000)*12 = 9.96%
“`
**3. การปรับ APR (Effective Annual Rate):**
ถ้าต้องการดอกเบี้ยที่เคลียร์เงื่อนไข (Effective Annual Rate) ต้องใช้สูตรอื่น:
“`
EAR = (1 + r)^m – 1
เมื่อ r = RATE ต่องวด, m = งวดต่อปี
ตัวอย่าง:
r = 0.00830, m = 12
EAR = (1 + 0.00830)^12 – 1 = 0.1040 = 10.40%
“`
**ความแตกต่าง APR vs EAR:**
– **APR** (Annual Percentage Rate) = ผลรวมอัตราต่องวด × 12 = 9.96%
– **EAR** (Effective Annual Rate) = พิจารณาดอกเบี้ยทบต้น = 10.40%
– ทั่วไปธนาคารประกาศ APR เพราะดูต่ำกว่า 😅
💡 **ส่วนตัวผมแนะนำ:** ใช้ APR (คูณ 12) เพราะเป็นมาตรฐานสากล และคำนวณง่าย
**RATE เป็น Financial Function** ใน Excel ที่อยู่กลุ่มเดียวกับ:
**ครอบครัว PMT Functions (Financial Calculations):**
| Function | ใช้หา | สูตร |
|———-|——–|——-|
| **RATE** | อัตราดอกเบี้ย | =RATE(nper, pmt, pv, fv) |
| **PMT** | เงินชำระต่องวด | =PMT(rate, nper, pv, fv) |
| **NPER** | จำนวนงวด | =NPER(rate, pmt, pv, fv) |
| **PV** | เงินต้น | =PV(rate, nper, pmt, fv) |
| **FV** | เงินในอนาคต | =FV(rate, nper, pmt, pv) |
| **PPMT** | ส่วนต้นในงวด | =PPMT(rate, per, nper, pv, fv) |
| **IPMT** | ส่วนดอกในงวด | =IPMT(rate, per, nper, pv, fv) |
**ความสัมพันธ์:**
ทั้งหมดใช้สมการเดียวกัน เพียงแต่แก้หาตัวแปรต่างกัน:
**PV + FV = PMT × [ (1+rate)^nper – 1 ] / rate × (1+type×rate)**
**ตัวอย่างใช้ร่วมกัน:**
**เงินกู้ 50,000 บาท อัตรา 10% ต่อปี = 0.833% ต่อเดือน:**
“`
ดึง pmt รายเดือน:
=PMT(0.833%/100, 60, -50000) = -1,055 บาท
หรือดึง rate:
=RATE(60, -1000, 50000) = 0.83% ต่อเดือน
หรือดึง nper:
=NPER(0.833%/100, -1000, 50000) = 60 เดือน
หรือดึง pv:
=PV(0.833%/100, 60, -1000) = 50,000 บาท
“`
**Function ที่คล้ายในเวอร์ชันใหม่:**
– **XLOOKUP** (ไม่เกี่ยว) – สำหรับค้นหา
– **IRR** – สำหรับ Internal Rate of Return (กระแสเงินแปรผัน)
– **XIRR** – สำหรับ IRR ของเงินที่ไม่คงที่และช่วงเวลาไม่เท่า
💡 **ส่วนตัวผมแนะนำ:** เรียนรู้ RATE + PMT + NPER + PV + FV ให้ครบ เพราะสามารถแก้ปัญหาการเงินได้ครอบจักรวาลเลย 😎
ใช่ครับ นี่คือเหตุผลที่ RATE ใช้ **Iteration** (วนซ้ำ) 😊
**เหตุผล:**
**1. ไม่มีสูตรปิด (Closed-form Solution)**
– สมการที่ RATE ต้องแก้: `PV + PMT×[(1+r)^nper-1]/r + FV/(1+r)^nper = 0`
– ไม่สามารถแก้เพื่อหา r ด้วยพีชคณิตได้โดยตรง (ต่างจาก PMT ที่เป็นสูตรเชิงเส้น)
– บังคับต้อง “ลองหา” ด้วย Newton-Raphson Method
**2. วิธี Iteration ของ RATE:**
“`
Iteration ที่ 1: ลองค่า r = 0.1 (10%) → ตรวจสอบผล
Iteration ที่ 2: ลองค่า r = 0.08 → ตรวจสอบผล (ใกล้เข้ามา)
Iteration ที่ 3: ลองค่า r = 0.0083 → ตรวจสอบผล (ใกล้เข้ามา)
…
Iteration ที่ 20: ถ้าลู่เข้า → คืนค่า หรือ Error #NUM!
“`
**3. ประสิทธิภาพ:**
– โดยปกติ RATE บรรจบใน 3-5 iteration (เร็ว)
– แต่ถ้า guess ห่างจากคำตอบจริง อาจต้อง 10-20 iteration
– Excel กำหนด Limit 20 iteration หากไม่ลู่เข้า → Error #NUM!
**ตัวอย่างความเร็ว:**
“`
Calculate RATE(60, -1000, 50000):
– Iteration 1-5: ประมาณ 0.0083 ±5% ← บรรจบ!
– ลำดับเวลา: < 1 millisecond ← เร็วมาก!
แต่ถ้า guess ผิด guess = 0.5 (50%):
– Iteration 1-20: ปรับลงมา 0.0083 ± 0.001
– ลำดับเวลา: 1-2 milliseconds ← ช้ากว่าเล็กน้อย
“`
**จะช้ามากไหม (Performance Impact)?**
ปกติ **ไม่** มีปัญหา เพราะ:
– RATE วนแค่ 20 ครั้งสูงสุด (ไม่ได้เยอะ)
– ใน Excel sheet 1,000 เซลล์ก็คำนวณเสร็จใน < 100ms
**แต่ถ้า…**
– ใช้ RATE ใน **Data Table** (recalculate หลายพัน times) → เหนื่อย
– ใช้ RATE ใน **Array Formula** ของหมื่นแถว → โปรแกรมช้า
**วิธีเร่งความเร็ว:**
1. ใช้ `Guess` ที่ดี (default 0.1 มักดี)
2. ถ้าใช้ RATE เยอะๆ ปิด Automatic Calculation: `Ctrl+Alt+F9`
3. ใช้ **Goal Seek** แทน RATE สำหรับกรณี 1-2 การคำนวณ
4. ใช้ VBA/Macro เขียน Solver ที่เร็วกว่า (เท่านั้น)
💡 **สรุป:** RATE ไม่ช้า เพียงแต่ "ลองหา" แทนที่จะคำนวณตรง เหตุในการใช้งานปกติจะไม่มีปัญหา
RATE เป็นฟังก์ชันการเงินที่ใช้คำนวณอัตราดอกเบี้ยต่องวด ซึ่งมีประโยชน์มากสำหรับทางด้านการเงินครับ 😊
ตัวอย่างการใช้งาน ได้แก่:
ที่ต้องระวังคือ RATE ใช้วิธี Iteration (วนซ้ำคำนวณ) เพื่อหาคำตอบ และอาจคืนค่าผิดพลาด #NUM! ได้ถ้าสูตรไม่ลู่เข้า นอกจากนั้น ต้องระวังเรื่องเครื่องหมายเงิน (บวก-ลบ) ให้ถูกต้องด้วยครับ