9  การวิเคราะห์โครงการและการตัดสินใจลงทุน (Capital Budgeting and Investment Analysis)

Modified

4 เมษายน 2569

Importantหมายเหตุ

ก่อนเริ่มการคำนวณเชิงสัญลักษณ์ด้วยซิมไพ ขอให้ผู้อ่านทำการเรียกใช้คำสั่งดังต่อไปนี้ก่อน

from sympy import symbols, Eq, solve, simplify, nsolve

เพื่อจะได้ไม่ต้องเรียกใช้งานทุกครั้ง

ในบทนี้ เราจะนำความรู้เรื่องมูลค่าเงินตามเวลา (Time Value of Money) มาประยุกต์ใช้ในการตัดสินใจเลือกโครงการลงทุน โดยใช้ซิมไพ (SymPy) ในการสร้างสมการเพื่อเปรียบเทียบความคุ้มค่า การหาจุดคุ้มทุน และการคำนวณอัตราผลตอบแทนภายในที่แท้จริง

9.1 การคำนวณมูลค่าปัจจุบันสุทธิ (Net Present Value: NPV)

มูลค่าปัจจุบันสุทธิ (NPV) คือเกณฑ์มาตรฐานในการตัดสินใจลงทุน หาก NPV มีค่าเป็นบวกแสดงว่าโครงการนั้นให้ผลตอบแทนมากกว่าต้นทุนของเงินทุน เราสามารถตั้งสมการเพื่อคำนวณ NPV ของกระแสเงินสดที่ไม่เท่ากันในแต่ละปีได้ดังนี้

ตัวอย่าง การวิเคราะห์ความคุ้มค่าของโครงการลงทุนด้วย NPV พิจารณาโครงการลงทุนที่มีกระแสเงินสดตามแผนภาพด้านบน โดยมีรายละเอียดดังนี้:

  1. เงินลงทุนเริ่มแรก (Outflow): จ่ายเงินลงทุนจำนวน 1,000,000 บาท ณ เวลาปัจจุบัน (\(t=0\))

  2. กระแสเงินสดรับ (Inflow): โครงการจะสร้างผลตอบแทนกลับคืนมาในช่วง 3 ปีแรก โดยปีที่ 1 รับเงิน 400,000 บาท, ปีที่ 2 รับเงิน 500,000 บาท และปีที่ 3 รับเงิน 6,000,000 บาท

หากกำหนดให้อัตราคิดลด (Discount Rate) ของโครงการเท่ากับ 10% ต่อปี เราสามารถคำนวณหามูลค่าปัจจุบันสุทธิ (NPV) เพื่อตัดสินใจว่าควรลงทุนในโครงการนี้หรือไม่

แผนภาพกระแสเงินสด: การเปรียบเทียบเงินลงทุนและรายรับ

แผนภาพกระแสเงินสด: การเปรียบเทียบเงินลงทุนและรายรับ
# 1. กำหนดตัวแปรสัญลักษณ์ r แทน Discount Rate
r = symbols('r')

# 2. กำหนดกระแสเงินสด (Cash Flows)
# ลงทุนเริ่มแรก 1,000,000 บาท และรับเงินคืนในปีที่ 1, 2 และ 3
c0 = -1000000
c1, c2, c3 = 400000, 500000, 600000

# 3. สร้างนิพจน์ NPV
npv_expr = c0 + (c1/(1+r)**1) + (c2/(1+r)**2) + (c3/(1+r)**3)

# 4. แทนค่า r ด้วย 10% (0.10) เพื่อหาผลลัพธ์
result_npv = npv_expr.subs(r, 0.10)

print(f"NPV ที่อัตราคิดลด 10% คือ: {result_npv:,.2f} บาท")
NPV ที่อัตราคิดลด 10% คือ: 227,648.38 บาท

9.2 การหาอัตราผลตอบแทนภายใน (Internal Rate of Return: IRR)

IRR คืออัตราคิดลดที่ทำให้มูลค่าปัจจุบันของกระแสเงินสดรับเท่ากับเงินลงทุนเริ่มแรกพอดี (NPV = 0) ในกรณีที่กระแสเงินสดมีหลายงวด สมการจะมีลักษณะเป็นพหุนามอันดับสูงซึ่งยากต่อการแก้ด้วยมือ แต่ซิมไพสามารถหาคำตอบได้โดยการตั้งสมการ Eq

ตัวอย่าง การวิเคราะห์หาอัตราผลตอบแทนภายใน (IRR) อัตราผลตอบแทนภายใน หรือ IRR เป็นดัชนีชี้วัดความสามารถในการทำกำไรของโครงการ โดยเป็นอัตราคิดลดที่ทำให้มูลค่าปัจจุบันของกระแสเงินสดรับ (PV of Inflow) มีค่าเท่ากับเงินลงทุนเริ่มแรกพอดี จากแผนภาพกระแสเงินสด เราต้องการทราบว่า

“ที่อัตราผลตอบแทนกี่เปอร์เซ็นต์ (\(r\)) จึงจะทำให้เงินลงทุน 1,000,000 บาท ในวันนี้ มีมูลค่าเท่ากับเงินที่จะได้รับคืนในอีก 3 ปีข้างหน้าพอดิบพอดี?”

ในทางคณิตศาสตร์ เราต้องแก้สมการพหุนามเพื่อหาค่า \(r\) ที่ทำให้สมการ NPV มีค่าเท่ากับศูนย์ ซึ่งการแก้สมการนี้ด้วยมือทำได้ยากและต้องใช้วิธีการสุ่มตรวจ (Trial and Error) แต่ด้วยซิมไพ เราสามารถใช้คำสั่ง nsolve เพื่อหาคำตอบที่แม่นยำได้ดังนี้:

การวิเคราะห์หาค่า IRR จากจุดที่มูลค่าปัจจุบันสุทธิ (NPV) เท่ากับศูนย์

การวิเคราะห์หาค่า IRR จากจุดที่มูลค่าปัจจุบันสุทธิ (NPV) เท่ากับศูนย์
r = symbols('r')

# ตั้งสมการ NPV = 0
irr_eq = Eq(-1000000 + (400000/(1+r)**1) + (500000/(1+r)**2) + (600000/(1+r)**3), 0)

# ใช้ nsolve เพื่อหาคำตอบเชิงตัวเลข (Numerical Solution) 
# โดยกำหนดค่าเริ่มต้นในการเดา (Guess) ไว้ที่ 0.1
irr_value = nsolve(irr_eq, r, 0.1)

print(f"อัตราผลตอบแทนภายใน (IRR) คือ: {irr_value*100:.2f} %")
อัตราผลตอบแทนภายใน (IRR) คือ: 21.65 %

9.3 ระยะเวลาคืนทุนแบบคิดลด (Discounted Payback Period)

ในบางครั้งผู้ลงทุนต้องการทราบว่าต้องใช้เวลากี่ปี (\(n\)) จึงจะได้รับเงินลงทุนคืนทั้งหมดเมื่อคำนึงถึงค่าของเงินตามเวลา หากโครงการมีกระแสเงินสดรับเท่ากันทุกปี (Annuity) เราสามารถหาค่า \(n\) ได้จากการแก้สมการ log

ตัวอย่าง การหาระยะเวลาคืนทุนแบบคิดลด (Discounted Payback Period)

ในการลงทุนทั่วไป หากเราพิจารณาเพียงระยะเวลาคืนทุนปกติ (Simple Payback) เราจะนำกระแสเงินสดรับในอนาคตมาหักลบกับเงินลงทุนโดยตรง แต่ในทางคณิตศาสตร์การเงินที่ถูกต้อง เราจำเป็นต้อง “คิดลด” (Discount) กระแสเงินสดเหล่านั้นกลับมาเป็นมูลค่าปัจจุบันก่อน เพื่อให้สะท้อนค่าเสียโอกาสของเงินตามเวลา

ระยะเวลาคืนทุนแบบคิดลด (n)

ระยะเวลาคืนทุนแบบคิดลด (\(n\))

จากแผนภาพกำหนดให้:

  1. เงินลงทุนเริ่มแรก: 1,000,000 บาท

  2. กระแสเงินสดรับคงที่ (Annuity): ปีละ 250,000 บาท อย่างต่อเนื่อง

  3. อัตราคิดลด (Discount Rate): 8% ต่อปี

โจทย์ข้อนี้คือการหาค่า \(n\) (จำนวนปี) ที่ทำให้มูลค่าปัจจุบันของเงินรับทั้งหมด (Present Value of Annuity) มีค่าเท่ากับเงินต้นพอดี ซึ่งในเชิงคณิตศาสตร์คือการแก้สมการที่มีตัวแปร \(n\) เป็นเลขชี้กำลัง (Exponential Equation) โดยซิมไพจะทำหน้าที่หาคำตอบของค่า \(n\) ออกมาโดยอัตโนมัติผ่านฟังก์ชัน solve ดังนี้:

n, r_rate = symbols('n r_rate')
annual_cashflow = 250000
initial_investment = 1000000
r_val = 0.08  # สมมติอัตราคิดลด 8%

# ใช้สูตร Present Value of Annuity ตั้งสมการให้เท่ากับเงินลงทุน
payback_eq = Eq(annual_cashflow * ((1 - (1+r_val)**-n) / r_val), initial_investment)

# แก้สมการหาค่า n
n_years = solve(payback_eq, n)[0]

print(f"ระยะเวลาคืนทุนแบบคิดลดคือ: {n_years:.2f} ปี")
ระยะเวลาคืนทุนแบบคิดลดคือ: 5.01 ปี

9.4 การวิเคราะห์จุดคุ้มทุนเปรียบเทียบโครงการ (Crossover Rate)

เมื่อมีสองโครงการที่มีลักษณะกระแสเงินสดต่างกัน เราสามารถหาอัตราคิดลดที่ทำให้ทั้งสองโครงการมีค่า NPV เท่ากัน เพื่อประกอบการตัดสินใจว่าควรเลือกโครงการใดภายใต้อัตราดอกเบี้ยที่กำหนด

ตัวอย่าง การวิเคราะห์จุดคุ้มทุนเปรียบเทียบโครงการ (Crossover Rate)

ในกรณีที่ผู้ลงทุนมีโครงการให้เลือกมากกว่าหนึ่งโครงการ (เช่น โครงการ A และ B) ซึ่งมีลักษณะของกระแสเงินสด (Cash Flow Profile) ที่แตกต่างกัน การตัดสินใจเลือกโครงการใดโครงการหนึ่งอาจขึ้นอยู่กับ “อัตราคิดลด” ที่ใช้

จากแผนภาพเราจะเห็นความแตกต่างของสองโครงการดังนี้:

  1. โครงการ A (เน้นรับเงินเร็ว): มีรายรับสูงในปีแรกๆ (600,000 และ 550,000 บาท) แต่สิ้นสุดโครงการเร็ว

  2. โครงการ B (เน้นความสม่ำเสมอ): มีรายรับต่อปีน้อยกว่า (400,000 บาท) แต่ได้รับต่อเนื่องยาวนานกว่า (จนถึงปีที่ 3)

การวิเคราะห์จุดคุ้มทุนเปรียบเทียบโครงการ (Crossover Rate)”

การวิเคราะห์จุดคุ้มทุนเปรียบเทียบโครงการ (Crossover Rate)”

โจทย์ที่สำคัญคือการหา Crossover Rate หรืออัตราคิดลดที่ทำให้มูลค่าปัจจุบันสุทธิ (NPV) ของทั้งสองโครงการมีค่าเท่ากันพอดี (\(NPV_A = NPV_B\)) เพื่อใช้เป็นจุดตัดสินใจ (Decision Point) ว่าหากต้นทุนของเงินทุนเปลี่ยนไป เราควรจะเปลี่ยนใจไปเลือกอีกโครงการหนึ่งหรือไม่

ซึ่งซิมไพสามารถคำนวณหาจุดตัดของผลตอบแทนนี้ได้อย่างแม่นยำผ่านฟังก์ชัน solve ดังนี้:

r = symbols('r')

# โครงการ A: เน้นรับเงินเร็วในตอนต้น
npv_a = -1000000 + (600000/(1+r)) + (550000/(1+r)**2)
# โครงการ B: เน้นรับเงินสม่ำเสมอต่อเนื่อง
npv_b = -1000000 + (400000/(1+r)) + (400000/(1+r)**2) + (400000/(1+r)**3)

# หาอัตรา r ที่ทำให้ NPV ทั้งสองโครงการเท่ากัน
crossover_eq = Eq(npv_a, npv_b)
rates = solve(crossover_eq, r)

# เลือกเฉพาะค่าที่เป็นบวกและเป็นจำนวนจริง
valid_rates = [v for v in rates if v > 0]
print(f"Crossover Rate คือ: {valid_rates[0]*100:.2f} %")
Crossover Rate คือ: 8.81 %

9.5 แบบฝึกหัด

  1. การวิเคราะห์ NPV ของโครงการขยายสาขา บริษัทแห่งหนึ่งต้องการลงทุนขยายสาขาใหม่ โดยต้องใช้เงินลงทุนเริ่มแรก 2,500,000 บาท คาดการณ์ว่าจะมีกระแสเงินสดรับสุทธิในปีที่ 1 จำนวน 800,000 บาท, ปีที่ 2 จำนวน 1,200,000 บาท และปีที่ 3 จำนวน 1,500,000 บาท หากบริษัทมีต้นทุนของเงินทุน (WACC) อยู่ที่ 12% ต่อปี ให้คำนวณหามูลค่าปัจจุบันสุทธิ (NPV) และระบุว่าบริษัทควรตัดสินใจลงทุนในโครงการนี้หรือไม่

  2. การหาค่า IRR ของเครื่องจักรใหม่ โรงงานอุตสาหกรรมพิจารณาซื้อเครื่องจักรราคา 1,200,000 บาท ซึ่งจะช่วยลดต้นทุนการผลิตได้ปีละ 450,000 บาท เป็นระยะเวลา 4 ปี (สมมติว่าไม่มีราคาซาก) ให้ตั้งสมการเพื่อหาอัตราผลตอบแทนภายใน (IRR) ของเครื่องจักรนี้ โดยใช้คำสั่ง nsolve และเปรียบเทียบว่าหากโรงงานกู้เงินมาซื้อเครื่องจักรโดยเสียดอกเบี้ย 15% ต่อปี การลงทุนนี้จะคุ้มค่าหรือไม่

  3. ระยะเวลาคืนทุนแบบคิดลด (Discounted Payback) นักลงทุนรายหนึ่งซื้อคอนโดมิเนียมเพื่อปล่อยเช่าในราคา 3,000,000 บาท โดยคาดว่าจะได้รับค่าเช่าสุทธิหลังหักค่าใช้จ่ายปีละ 180,000 บาท อย่างต่อเนื่อง (Annuity) หากกำหนดอัตราดอกเบี้ย 5% ต่อปี นักลงทุนรายนี้จะต้องใช้เวลากี่ปี (\(n\)) จึงจะคืนทุนในเชิงมูลค่าปัจจุบัน

  4. การวิเคราะห์ Crossover Rate ระหว่างระบบ Automation ฝ่ายไอทีของธนาคารกำลังเปรียบเทียบระบบซอฟต์แวร์ 2 ระบบ:

    • ระบบ A: ลงทุน 2,000,000 บาท ประหยัดค่าใช้จ่ายได้ปีละ 1,200,000 บาท เป็นเวลา 2 ปี

    • ระบบ B: ลงทุน 2,000,000 บาท ประหยัดค่าใช้จ่ายได้ปีละ 850,000 บาท เป็นเวลา 4 ปี

    4.1 ให้หาค่า Crossover Rate ที่ทำให้ทั้งสองระบบมีความคุ้มค่าเท่ากัน

    4.2 หากธนาคารมีอัตราคิดลดที่ 10% ธนาคารควรเลือกใช้ระบบใด

  5. จงสร้างสมการเพื่อหาค่าเงินลงทุนเริ่มแรก (\(C_0\)) ที่ทำให้โครงการที่มีรายรับปีละ 500,000 บาท เป็นเวลา 5 ปี มีค่า IRR เท่ากับ 18% พอดี