总第 679 期
【作 者】
王 洁
【作者单位】
(枣庄学院经济与管理学院 山东枣庄 277160)
【摘 要】
【摘要】当企业投资可选项目数量较多,又有许多限制条件,而且资金成本不固定时,手工条件下解决此类问题比较困难。本文通过一个实例,介绍了Excel中规划求解工具在多项目投资决策中的应用,为企业确定项目最优投资组合提供了一种快速高效的方法。
【关键词】最优投资组合 规划求解 约束条件 资金成本
一、引言
现实中,企业经常会面临多个项目的选择问题,并且,企业的资源往往是有限的,备选项目之间的关系可能还会构成一些限制。此外,企业资金成本随着筹资量的增加而升高。当可选项目较少时,用项目组合法能够得到正确的结果。但当可选项目较多时,因为可能的项目投资组合有2n-1(设有n个独立项目)个,要穷尽所有的项目投资组合工作量很大。而Excel提供的规划求解工具,可以非常便捷地求解线性规划模型的最优解。
二、实例分析
(一)问题描述
某公司2014年有10个独立的投资项目可供选择,相关部门收集到的数据如表1所示。
项目1、项目2、项目3和项目4为四选一项目,即这四个项目中必须选一个,且只能选一个。项目6是项目7的预备项目,即选择了项目6才可以选择项目7。项目8和项目10是互斥项目,即不能同时选择项目8和项目10。
该公司的资金成本不固定,具体而言,该公司筹资总额小于等于1 000万元时,资金成本为9%;筹资总额大于1 000万元、小于等于2 000万元时,资金成本为10%;筹资总额大于2 000万元时,资金成本为11%,该公司最多能筹集到资金4 000万元。经计算,每个项目的净现值均大于零。要求给出可行的最优投资组合。
(二)建立数学模型
1. 定义自变量和因变量。设Xi(i=1,2,3,…,10)为这10个项目的选择权变量,若投资组合中包含该项目,则取值1,否则取值0。设Y为投资组合总的净现值。
2. 确定目标函数。MaxY=NPV1×X1+NPV2×X2+NPV3×X3+…+NPV10×X10
求可行的最优投资组合,即求解出哪几个X取值为1时,能满足所有的约束条件,同时使Y最大。
3. 列出约束条件。
(1)Xi(i=1,2,3,…,10)只能取值1或0:X1,X2,X3,…,X10bin二进制。
(2)项目1、项目2、项目3和项目4为四选一项目:X1+X2+X3+X4=1。
(3)项目6是项目7的预备项目:X6≥X7。即:X6-X7≥0。
(4)项目8和项目10是互斥项目:X8+X10≤1。
(5)该公司最多能筹集到资金4 000万元:初始投资总额:Z1=-300X1-800X2-
1 900X3-900X4-600X5-400X6-300X7-1 200X8-900X9-1 100X10。
第1年现金流Z2=-100X1+230X2-100X3+270X4-300X5-200X6+120X7-300X8-100X9+280X10。
若Z2≤0,|Z1+Z2|≤4 000;Z2>0,|Z1|≤4 000。(三)在Excel中建立规划求解模型
1. 输入原始数据。打开一张Excel工作表,将题目所给原始数据输入,如表1所示。
2. 数据准备。如表2所示。
(1)选一个区域作为决策结果区。如本例选B13∶K13区域,由于现在决策结果未知,所以用“X1,…,X10”表示。
(2)计算初始投资总额Z1。选择C14单元格,输入公式“=SUMPRODUCT(B2∶K2,B13∶K13)”。Excel中的函数SUMPRODUCT()是用来求长度相等的数组或者区域对应元素乘积的和。
(3)计算第1年现金流Z2。选择C15单元格,输入公式“=SUMPRODUCT(B3∶K3,B13∶K13)”。
(4)计算该公司总共需要筹集多少资金。选择C16单元格,输入公式“=IF(C15<=0,ABS(C14+C15),ABS(C14))”。Excel提供了一个非常有用的逻辑判断函数IF()。该函数有三个参数,第一个参数是逻辑判断条件,当逻辑判断条件为真,公式所在单元格返回第二个参数的值或执行第二个参数的操作;当逻辑判断条件为假,公式所在单元格返回第三个参数的值或执行第三个参数的操作。函数ABS()是用来求绝对值的函数。
(5)确定资金成本。选择C17单元格,输入公式“=IF(C16<=1 000,9%,IF(C16<=2 000,10%,11%))”。
(6)计算各个项目的净现值。选择B18单元格,输入公式“=NPV($C$17,B3∶B11)+B2”,回车,移动鼠标到该单元格的右下角,当鼠标变成实心十字时,按住鼠标左键向右拖动至K18单元格。NPV()函数用来计算某项投资未来现金流量的总现值,它的第一个参数是该项目的资金成本,第二个参数是第一期期末的现金流,第三个参数是第二期期末的现金流,以此类推。由于该函数没有考虑第一期期初的现金流,即初始投资,所以该函数的值减去初始投资才是该项目的净现值。$C$17代表对C17单元格的绝对引用,这样,向右拖动时,该参数的值就不会发生变化。
(7)计算投资组合总的净现值Y。选择D19单元格,其为目标函数所在单元格,输入公式“=SUMPRODUCT(B18∶K18,B13∶K13)”。
(8)做约束条件的数据准备。项目1、项目2、项目3和项目4为四选一项目,选择E20单元格,输入公式“=B13+C13+D13+E13”。项目6是项目7的预备项目,选择E21单元格,输入公式“=G13-H13”。项目8和项目10是互斥项目,选择E22单元格,输入公式“=I13+K13”。该公司最多能筹集到资金4 000万元,选择E23单元格,输入公式“=C16”。
3. 设置规划求解工具中的要素。Excel中要有规划求解工具,要求安装Excel时选择“完全安装”。启用时,选择“工具”菜单下的“加载宏”,勾选“规划求解”,点“确定”。这样,“工具”菜单下就会有“规划求解”子菜单。选择“工具”菜单下的“规划求解”,打开规划求解参数对话框。
(1)设置目标单元格。选择因变量所在单元格$D$19,等于选最大值。
(2)设置可变单元格。可变单元格在求解时其数值不断调整,至满足所有约束条件,并使目标单元格达到最大值、最小值或目标值。本例选择$B$13∶$K$13区域,见图1。
(3)添加约束条件。点击“添加”按钮,打开添加约束对话框,添加自变量的0-1约束,如图2所示。接着点击添加约束对话框的“添加”按钮,依次输入其他四个约束条件。点击“确定”。
(四)规划求解
点击规划求解参数对话框的“求解”按钮,选择“保存规划求解结果”,点击“确定”,得到规划求解结果,如表3:
从表3中可知,最优解为:在现有的约束条件下,选择项目2、项目5、项目6、项目7、项目10,可以使该公司投资项目总的净现值最大,即为1 564.13万元。采用该投资组合方案,公司需要筹集资金3 200万元,资金成本为11%。
该模型建立后,如果项目的原始数据发生变化,如项目的现金流、约束条件、资金成本变动情况发生变化,只需将Excel中的原始数据和数据准备做相应调整,打开规划求解参数对话框,点击“求解”按钮,就能得到新的可行的项目最优投资组合结果。当备选的独立项目很多、限制条件很多时,该方法的优越性尤为明显。需要说明的是,有时候项目投资组合的最优解并不唯一,但Excel规划求解工具一次只能给出一个最优解,因此,这有待进一步完善。
主要参考文献
1. 陈国栋.净现值为随机值时多项目投资的最优决策.财会月刊,2012;33
2. 李滨江.基于投资组合理论的企业多项目投资管理研究.价值工程,2012;12