关于数值策划在使⽤Excel表时的⼀点想法
>>下载地址:
在之前的MMORPG项⽬中,我曾经迭代过3版⾃⼰设计的数值表,新的⼀版出来后都对上⼀版有很⼤的改进,也算是对我在做数值策划不断进步的⼀个见证。
最开始的⼀版设计出来后,粗略地看是有点晦涩难懂的,⽽且跟组内其他同事讲解设计思路的时候,需要⾃⼰顺着Excel表的公式引⽤⼀步步查,然后还要将Excel公式的意义还原,⽅便同事理解。这个时候,每⼀次讲解就相当于⾃⼰在脑海⾥重新设计⼀版数值了,耗费了⼤量的时间,效率很低。后来就开始琢磨迭代第⼀版数值,保证⾃⼰在过⼀遍的时候,能够⽐较顺畅,思路能够清晰,于是对每⼀步的结果是如何得到的都进⾏了说明和解释。当第⼆版数值出来的时候,我就去主策,跟主策讲解整张数值表,发现效果⽐之前要好很多,也快了不少。但是似乎还是不够,因为在讲解的过程中,发现主策是需要根据我⼀步⼀步的说明往下深⼊,直到我讲解完,才能够提供给我⼀个后续深⼊的想法或者优化意见。这时候发现,⾃⼰设计出的表让其他⼈去读,似乎并没有得到很⼤的改观,其他⼈需要到⼀张表的起始位置,然后结合我给出的说明⼀步步往前推,但中间的⼀些结果其实他们并不怎么关⼼。其实这个时候,⼤体就明⽩了建表的需求了。后来完成的第三版设计,有了更⼤的改进,也反过来验证了我的想法。整个的历程⼤致就是这样的,下⾯我就把⼀些在使⽤Excel表时的⼀些tips列出来供⼤家参考,也供⾃⼰后续不断反思。
数值表的需求
数值策划的需求:提供输⼊数据(参数)来源、必要的中间结果、最后的输出数据,⽅便数值检错、数值调优
其他⼈的需求:提供必要的⽂字说明、流畅的数据流体验,⽅便数据逻辑上的理解
对于数值策划的需求,这个是最基础的,也是必须的。必要的中间结果需要根据项⽬的具体系统提供具体内容,这步没有做好的话,在设计完数值表以后去检错、调优,效率会⽐较低。对于其他⼈的需求,其实这算是⽤户体验⽅⾯的内容了。这点上⾯感觉很少有⼈会去关注吧,之前在⼀个数值⾥看到⼀张图⽚,⼀个公式中嵌套了多个IF和其他函数,当时真是惊呆了,这样的公式⼀旦有个⼩改动就完蛋了。对于⼀个负责任的数值策划来说,不仅仅要将数值感受的体验做好做强(对外),也应该关注⼀下⾃⼰建表⽤表的体验、讲解Excel思路时其他⼈的体验(对内),不要求做的表格多好看,只要做的逻辑清晰、读表流畅就OK了。excel vlookup函数怎么用
Tips1:对数据进⾏分类处理
数据类型分类
⼀般⽽⾔,⼀张表中主要会产⽣四类数据:输⼊数据(参数变量)、中间结果数据、统计数据、输出
数据。
1. 输⼊数据(参数变量):这类数据是原始数据,需要在进⾏计算时事先提供,后续数值调优是根据调整输⼊数据来完成的
2. 中间结果数据:这类数据是在进⾏多步骤时的运算,保留下来的⼀些过程中的结果,后续的数值检错需要⽤到这些数据来进⾏定位
3. 统计数据:这类数据主要对中间结果数据或者后⾯的输出数据进⾏统计,可有可⽆,可归并到两者中,辅助⽤来观察数值调优的效果
4. 输出数据:这类数据就是我们设定的⽬标数据
可能不同的数值策划有⾃⼰不同的分类,但是做了分类处理,在数据的查上就不会太浪费时间。
数据区域分类
结合上⾯的数据类型,将不同类型的数据放置到不同的Excel表区域中。为了便于理解以及阅读习惯,区域按列从左往右进⾏划分,依次为输⼊数据(参数变量)、中间结果数据、统计数据、输出数据。
数据颜⾊分类
结合上⾯的数据类型,将不同类型的数据赋予不同的背景⾊。这样做的⽬的也是为了⽅便快速查,毕竟我们对不同颜⾊还是⾮常敏感的。这⾥,最好将背景⾊的区分度做强,将数据界线划分明显。
Tips2:不同表之间保持⼀致性
保持不同表之间数据类型分类的⼀致性
保持不同表之间数据区域分类的⼀致性
保持不同表之间数据颜⾊分类的⼀致性
如果你设计的第⼀张表的输⼊数据标识为绿⾊,那么后⾯其他的表的输⼊数据也应该设置为绿⾊背景⾊,尽可能保持低的理解认知成本。同样的,不同表之间的输⼊数据区域尽量统⼀放置在表的最左⽅。
Tips3:添加必要的⽂字和公式说明
这条tips的内容不同于我们平时写的数值⽂档,数值⽂档上⾯主要是包括数值策划提供的配置内容以及逻辑规则或公式,⽅便程序完成不同系统上数值⽅⾯的实现代码,只需要让程序知道如何实现即可,⾄于为什么是这样实现的则放在这⾥进⾏。
你需要在每⼀张Excel表中开出⼀块区域专门⽤来对表中计算的每⼀个数据进⾏必要的⽂字+公式说明。如果某些数据的计算是通过VBA实现的,可以在相关代码中进⾏标明,可以在每⼀个Sub的上⾯进⾏注解,也可以在Sub中的相关代码进⾏标注。
这⼀条tips存在⼀定的⼯作量,如果选择不做,可能你做出的表过⼀周就不记得结果是怎么⼀步⼀步得出来的;如果选择做,建议你可以在每天下班以后进⾏补充,这样不会影响建表效率,同时延后⼀点总结有助于进⾏数据检错。会有这么⼏个好处:
适当让⾃⼰慢下来,总结之前设计的思路和反思
数据检错,就像做完考题后再回过来进⾏检查,减少出错的⼏率
加深记忆,有了⽂字/公式说明,就不⽤过很久跟其他⼈讲解的时候花费更多的时间再去推导⼀遍
如果以后不得不离开公司,⽅便交接⼯作
Tips4:不同表之间的跳转
⼀个游戏的系统和玩法会很多,每个系统或玩法都⾄少需要⽤到1张表,做到后⾯你会发现你的Excel表已经有⼏⼗个分表了,这个时候就需要不同表之间快速跳转来免去我⼀张表⼀张表的查了。
Excel表有提供表与表之间的跳转功能,就是上图中红⾊区域,右键点击就会弹出⼀个选择不同表的框供跳转表格。个⼈觉得这个操作步骤有点多,所以基本上我不会去⽤这个功能,都⾃⼰会在第⼀张表建⽴⽬录,然后之后的每⼀张表都会提供⼀个返回⽬录的功能,极⼤的缩短了我表的时间。如果你的⽬录表设计的不错,就更不⽤为表⽽烦恼了:)。
Tips5:单元格公式的简化
函数个数的简化
如果⼀个单元格⽤到的公式⾥⾯包含了⼗⼏个函数,看着都累,还容易出错。所以,尽可能的减少公式⾥使⽤函数的个数,尽量控制在5个以内,最好是3个。如果存在IF语句嵌套,最好在2层IF语句以内。如果计算步骤实在多,完全可以使⽤辅助列来帮助解决问题。
函数替代
Excel中可以⽤很多函数来实现相同的功能,⽐如反向查功能,可以⽤sumifs函数实现,也可以⽤vlookup+if函数或者
vlookup+choose函数来实现。在这⾥,选择⼀个⾼效的函数是⼗分必要的,越是到后⾯,⾼效函数带来的效果越加明显。这⾥,没有很多规则可⾔,不过能不⽤数组计算就尽量不⽤。
这条tips做好了,能够减少Excel表的⽂件⼤⼩容量,第⼆版数值出来,我拿去跟第⼀版数值表对⽐的时候,我深有体会。同时,也能加快Excel的运算效率,⽅便后⾯进⾏数据调优。
Tips6:利⽤VBA处理复杂过程
如果计算时涉及到⼀些逻辑层⾯的复杂过程,可以考虑使⽤【按钮+VBA】或者⾃定义函数模式进⾏数据运算。
Tips7:输⼊数据(参数变量)做详细说明
这条tips的想法是来⾃于我转载的⽂章《AI中的参数系统设计》⼀⽂,把这篇⽂章的想法放到这⾥来也是通⽤的。
输⼊数据的详细说明尽可能满⾜以下⼏个部分
⽤于识别的名称(中⽂)、字段(英⽂)
数据类型:整型、浮点型、字符串、长整型、字节型......
当前值:该参数当前的合法值,保证数据能跑通
数据的定义域:数据的数值在定义域内是合法的,⽤来检查合法性使⽤
参数描述:对于该参数的简要描述
趋势描述:对于该参数的变化所带来的影响的简要描述
引⽤关联项数组:该参数所影响的参数项列表(P1,P2,...,Pn)
被引⽤关联项数组:影响该参数的参数项列表(P1,P2,...,Pn)
在具体落地实现的时候,其实只是将最早的数据名称+数值这种结构扩展到上⾯的参数系统结构⽽已,在Excel表中其实只是额外的增加了⼏列内容。⽽这⼏列内容能够在你进⾏数值调优的过程中,指导如何进⾏参数⼤⼩的调整来逐步逼近想要的结果。
Tips8:逻辑从左往右进⾏
跟上⾯的输⼊数据区域分类⼀样,保持上⼀步的计算结果显⽰在下⼀步的计算结果的左边列,主要是为了减少理解成本,跟代码中尽量减少使⽤loop语句是⼀个道理。
Tips9:禁⽌⼯作簿与⼯作薄之间的跨表链接
不同⼯作薄之间的跨表链接会带来很多问题,⽐如表打开时的数据更新问题、表⾃⾝的容量也会因跨表链接⽽增加等等。之前做的项⽬因为有使⽤跨表链接⽽带来了很多不必要的⿇烦,经常出现刷表失败,或者刷完表后进⼊游戏查看发现效果不变(因为你更新了⼀个⼯作薄的数据后,还必须打开关联的⼯作薄进⾏数据更新,当时简直哔了汪了)。
所以,不要进⾏⼯作薄与⼯作薄之间的跨表链接,同⼀⼯作薄内各个表之间的跨表链接是允许的,不会出现什么问题。如果因为⼯作表数⽬过多,⽽必须进⾏⼯作薄跨表链接,建议把需要跨表的数据放置在⼀个区域中,⽅便管理。
关于⾃⼰在使⽤Excel表时的⼀些⼩tips,⼤概收获的就是这么多了,后续在以后的⼯作中有想到,会接着在这⼀并补充 :)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论