矿业权评估中,目前评估值的测算主要分为两个步骤,第一步:评估师根据各种已收集资料及经验,对评估主要参数进行选取。第二步:评估师将各种参数输入历史工作形成的Excel表格,然后测算出矿业权估值。但在第二步中,越复杂的矿山工作表越多,在折现现金流量法中,工作表多达8个甚至更多,在测算过程中需要在中间频繁切换,且工作表之间的勾稽关系相对复杂。对于审核人员以及后续的参数修改来说极其不便,一旦修改的次数多了,就容易漏修改某些参数,导致评估结论的错误。
经过我个人的思考,我觉得可以将这2步进行归纳整理,形成一种参数表——计算表——打印表的表格形式。核心思路为:在参数表中,评估师将本次评估需用到的参数一一列明;在计算表中,所有表格数据均来源于参数表,进行自动取数并计算;在打印表中,引用计算表中的计算结果,提前调整好格式,作为报告附表。这样做的好处是参数的修改只在第一张工作表中进行,规整不易错。计算表一次设定成功并检验后,后续可以直接使用,不必在每一次的项目中额外修改,且因为参数来源唯一,减少很多人工修改的错误。
因为我个人用的是wps,因此下文均用wps来展示表格模型的实现流程。
以下是我个人整理的目前遇到的问题及解决方案:
问题1:矿山服务年限的计算中,公式相对较多,一般涉及煤类矿山、金属贫化类矿山、非金属矿、石料类矿山。其中煤类矿山设计储量备用系数、金属贫化类矿山涉及贫化率、非金属矿只需要生产能力和可采储量、石料类矿山又需要吊装运输损失系数或板材率荒料率类参数。在后续的计算中涉及取什么数,取几个数的问题。
解决方案:参数表设立矿山类别行,并使用菜单—数据—下拉列表中设置对应的下拉菜单,在计算表中依据下拉菜单中的数据具体内容通过ifs函数来设置选用哪个公式,哪些参数来进行计算。
具体公式在计算表中可以这样写:=ifs(参数表!$C$28="煤矿",sum(I8:I13)/(参数表!C26*参数表!C29),参数表!$C$28="金属贫化率类",sum(I8:I13)/(参数表!C26*(1-参数表!C30),参数表!$C$28="荒料类",sum(I8:I13)*参数表!C31/(参数表!C26*(1+参数表!C32)),参数表!F11,参数表!$C$28="板材类",sum(I8:I13)*参数表!C32/(参数表!C26*(1+参数表!C32)),参数表!$C$28="无贫化类",sum(I8:I13)/(参数表!C26))
问题2:上一个问题中给出的公式既长又繁琐,相信很多读者不理解,且极其不便于后期的修改,这也是一个需要解决的问题,为了解决长公式后期方便读懂及审核修改的情况,wps中设计了名称管理器选项,可以对某一个单元内容进行命名,后期公式可以直接输入名字来引用当前单元格的内容,且不影响该单元格具体内容的更改。
解决方案:点击菜单—公式—名称管理器,然后进去对每一个你需要命名的内容单元格进行命名,比如生产规模处的数据是50,然后就对填写50这个数字的单元格进行命名(或者直接点击该单元格后,在屏幕的左上角位置,会有显示该单元格位置的一个格子,比如C26,直接对这个C26删除后,写入你想命名的内容也可),命名之后的公式就可以直接写生产规模,而不是显示参数表!C26之类的位置引用了。修改后的公式如下,可以对比一下,是不是更便于理解及后期修改了。
=IFS(服务年限矿种类型="煤矿",SUM(储量计算[评估利用可采储量])/(生产规模*储量备用系数),服务年限矿种类型="金属贫化率类",SUM(储量计算[评估利用可采储量])/(生产规模*(1-综合贫化率)),服务年限矿种类型="荒料类",SUM(储量计算[评估利用可采储量])*荒料率/(生产规模石材*(1+吊装运输损失系数))),服务年限矿种类型="板材类",SUM(储量计算[评估利用可采储量])*板材率/(生产规模*(1+吊装运输损失系数)),服务年限矿种类型="无贫化类",SUM(储量计算[评估利用可采储量])/生产规模)
问题3:上述公式虽然大大增强的可读性,但却因为中文语言结构比wps自带的函数语言相对复杂的原因,长度也增加了不少,有没有什么还能再简化一点的方法。当然有的,wps中可以对常用公式进行函数自定义。对于需要重复利用的函数而言,用次数越多,越可以减少公式的编辑难度及长度。
解决方案:也是在名称管理其中可以创建,具体的方法是使用LAMBDA函数来进行自定义函数,以后只需要输入你设定的函数名称及具体需要的参数,就可以输出计算结果,设定函数的用法与本身自带的函数一样。首先打开名称管理器,点击新建,在名称处输入你的函数名称比如“煤”,作为后期引用的方式,然后在引用位置栏输入LAMBDA函数,例如=LAMBDA(生产规模,可采储量,储量备用系数,可采储量/(生产规模*储量备用系数)),下一次在计算煤服务年限的时候,直接跟输入sum函数一样,在单元格内输入“=煤()”即可使用该函数。简化后的上述公式如下:
=IFS(服务年限矿种类型="煤矿",煤(生产规模,SUM(储量计算[评估利用可采储量]),储量备用系数),服务年限矿种类型="金属贫化率类",金属贫化(生产规模,SUM(储量计算[评估利用可采储量]),贫化率)服务年限矿种类型="荒料类",荒料(生产规模,SUM(储量计算[评估利用可采储量]),吊装运输损失系数,荒料率),服务年限矿种类型="板材类",板材(生产规模,SUM(储量计算[评估利用可采储量]),吊装运输损失系数,板材率),服务年限矿种类型="无贫化类",无贫化(生产规模,SUM(储量计算[评估利用可采储量]))
以上是我个人在矿业权评估建模中遇到的一些问题,以及对公式从冗长复杂到简洁好读的逐步优化过程。从最开始跨表引用单元格位置的超长原生公式,到通过名称管理器给参数单元格命名提升可读性,再到利用LAMBDA自定义函数拆分不同矿类的计算逻辑,最终把大段嵌套的长公式拆解成了和原生函数用法一致、语义清晰的短代码,整个表格模型的可读性、可维护性都得到了明显提升。自定义函数拆分逻辑后,后续如果某一类矿山的计算规则调整,只需要修改对应自定义函数的内容,不用再整体改动IFS嵌套的大公式,无论是自己修改还是审核人员核对,都能降低出错概率,也能加快评估过程中参数调整的效率。这套方法完全基于WPS现有的功能实现,不需要额外安装插件,只要熟悉基础操作就能快速搭建属于自己的标准化评估计算模型,适合所有日常用Excel/WPS做矿业权评估的从业者参考使用。
夜雨聆风