写点什么

游戏数值策划之常用 excel 函数

发布于: 2020 年 10 月 21 日

提前说明:

本人还不是数值策划,但仍在努力中。最近裸辞在家,一直想进入游戏行业,但任何行业或多或少都有门槛。好在以前的工作一直跟数据打交道,也有些代码基础会Python、vba、sql,所以想从事游戏行业的数据分析师或者是数值策划。接下来这一系列的文章,都是我看完《平衡掌控者游戏数值战斗设计》和《平衡掌控者游戏数值经济设计》这两本书的笔记,毕竟输出倒逼输入。如果你是游戏行业大佬,有看不惯的地方,请不啬赐教,如果你和我一样暂时还是小白,欢迎大家一起讨论。



这篇是本系列文章的第一篇,主要是介绍一些常用,但略微有些难度的excel函数,太简单的比如if,我就不会介绍了。



ADDRESS、MATCH、INDEX、ROW、ROWS、COLUMN、COLUMNS、INDIRECT等位置函数

ADDRESS函数

顾名思义这个函数会返回一个单元格地址,而且比较独特的是它地址返回有两种样式,分别是“A1”,“R1C1”,而且你还可以通过输入不同参数值,来对列和行进行绝对引用和相对引用。

如图:





我们能看到该函数有两个必须参数值,三个可选参数值,你如果平时有看技术官方文档的经验,你就应该知道用“[]”括起来的参数,都是可选参数,也就是说你可以不传值给可选参数。这五个参数对应的含义分别是,行号、列号、绝对引用或相对引用、返回值样式、单元格来源sheet页名称。



如果还不明白,那你应该用一下试着改变参数,毕竟实践出真知。



INDIRECT函数

INDIRECT函数会返回所给单元格地址的值,一般可以和ADDRESS函数组合使用。

你能看到INDIRECT函数也有a1可选参数,让你选择“A1”或者是“R1C1”类型的地址。



MATCH函数

MATCH函数会返回一个值在序列中的位置,比如你在{1,3,4,5}查找3,那么它会返回2,比如你在{“你好”,“笨”,“啊”}查找“你好”,它会返回1,切记它的位置不像其它编程语言是从0起始,而是从1开始。

如果你查找的是字符串,那么可以使用通配符“?”和“*”,但如果你本身要查的字符串里包括“?”,你要在前面加个“~”,比如你要查“你还好嘛?”,此时就要改写成“你还好嘛~?”。

如果你要查的是数值,那你需要注意的是match_type这个参数,该参数值为1时函数会返回小于等于查找值的值位置,并且序列必须升序排列,该参数为-1时则相反。而为0时则是精确查找,并且序列不用排序。具体使用如下,建议动手改参数,进行体验。





INDEX函数

INDEX函数跟MATCH函数相反,MATCH函数给定查找值返回相应位置,而INDEX是给定相对位置,返回特定值。并且MATCH函数经常跟INDEX函数联合使用,实现的功能与VLOOKUP函数相差无几,但通用性更强,因为VLOOKUP函数的查找值必须在查找范围的第一列,而用INDEX和MATCH相结合则能避免这种情形。





上图,我先用MATCH查找到对应行,然后通过对应行和列查找到相应值。有些人可能会疑惑为什么一个INDEX函数出现了两个提示。在这里我们讲解一下,第二个函数提示是告诉你可以选取多个不连续区域,既然是多个不连续区域,那么你就需要指定区域,所以下面的函数提示多了一个area_num可选参数。下面函数提示的具体用法如下:

在这个公式里我就把两个不连续区域,通过括号连接起来,所以area_num这个参数也就可以发挥作用。



ROW和ROWS函数

ROW函数和ROWS函数非常简单,ROW返回一个单元格范围的最小行数,ROWS返回单元格区域一共有几行。



你能看到即使我选了一个区域,但它的返回值仍是7。





ROWS函数稍有不同,它返回值是选取范围的行数,这里的行数不是在excel中的行数,而是把选取范围当数组,计算这个数组的行数。

COLUMN和COLUMNS函数跟ROW和ROWS函数一模一样,就不再讲解。



HLOOKUP、LOOKUP、LARGE、SMALL、FIND、SEARCH等查询函数

HLOOKUP函数

HLOOKUP函数跟VLOOKUP函数几乎一模一样,如果你英文足够好,你就能猜到H代表horizontal意味着水平,而V代表vertical代表垂直,这就暗示了它们两个的取值范围一个是行一个是列。





LOOKUP函数

LOOKUP函数则与HLOOKUP和VLOOKUP都有一些区别,它并不要求所选单元格区域为行或者列,但所选区域只能是一行或者一列。





而且还有一点不同的是,LOOKUP会查找<=lookup_value的最大值,所以有时它的返回值不会是你想要的。

LARGE函数

可能会有人把LARGE函数和MAX函数搞混,其实LARGE函数要比MAX函数功能更强大一些,因为它可以选择第k大的数值,而MAX只能选择最大值。





SMALL函数同理,就不再讲解了。



FIND函数



返回查找字符串的所在位置。





虽然说有start_num这个参数,但它的计数永远是从第一个字符开始计算,即使start_num>1。

而SEARCH函数在使用上与FIND函数几乎一样,只有两点不同,SEARCH函数不区分大小写,并且能够使用通配符。



CEILING、FLOOR、OFFSET等其它函数



CEILING函数

我们知道四舍五入时,可以用ROUND函数,但如果我们想要取一个逼近值,比如将value向上逼近最接近3的整数倍,此时我们就要用到CEILING函数。





需要注意的是,ceiling中文含义是天花板,当significance参数为负时,它的逼近方向是绝对值最大的负数,为正时则变成绝对值最大的正数。如果number参数为正,而significance为负则会报错,如果number为负,significance为正则返回值为0。

FLOOR英文是地板,也就是说FLOOR函数的功能与CEILING相反,就不再进行讲解。



OFFSET函数

OFFSET顾名思义,就是偏移,功能是根据你所选单元格进行相应偏移。并且OFFSET函数跟其它函数不太一样,它会返回一个range而非数组或者是值,也就是说这个函数必须与其它函数组合使用。





你能看到我原本选择的区域是“A12”,经过下挪一行,右挪一列,扩张两行两列,就重新选择了一个区域,然后对这个区域进行求和。



数组

数组并非一个公式,像平常我们使用函数,大多只针对几个单元格进行操作,而数组可以形成一一对应关系,进行统一操作,然后将数组传给类似SUM的聚合函数。其实很多函数的参数里面就有一个参数array数组,就是将单元格里面的值转化为数组。





你能看到整个公式外面多了一对大括号,请不要以为这是手动添加的,而是在写完原本的公式后按下contrl+shift+enter键后自动生成,代表公式里包含了数组。整个SUM函数与其它函数不同之处在于,里面有对两列值进行相乘,从而对相乘后的积进行求和。



聪明的你可能会问如果不把数值传给类似SUM这种聚合函数可以吗?当然可以,你可以选择把数组值赋值给多个单元格。



整个步骤是这样的,我们先选中一个区域,然后在右上角输入框输入公式,最后同时按下contrl+shift+enter键,你就会发现你选中的区域返回了数组值,如果你多选了的话会返回#N/A。



组合函数

上面就是我们经常会用到的函数功能,但在工作中显然很多事情不是一个公式就能解决的,你需要嵌套。



求一对多数据



我们要找到会用材料绿宝石的职业,其实如果你懂数据库的话会很简单“select 职业 where 材料1= ‘绿宝石’FROM 材料表 ”,可惜这里是excel,所以你不得不用这么复杂的函数嵌套实现这个功能。整个公式如何生效的,你可以通过选项栏的“公式求值”功能,来看整个公式是如何一步一步计算的,这里我就不具体讲解了,自己动脑琢磨琢磨,记得最后不要忘记按contrl+shift+enter键,否则会报错的。



去除重复值



这个组合公式,先是通过COUNTIF判断字符串出现次数,然后结合MATCH函数返回从未出现的字符串位置,最后得到最后结果。



其实这些组合函数,看起来复杂,但也是结合了相应数据特征,你只要掌握前面那些函数,再仔细辨认数据特征,就能写出来,不要慌就是干。



游戏数值策划用到的excel函数大概就这么多,其它函数你也可以通过搜素引擎搜到。这些函数只要你努力学习一下,很快就能掌握,加油,相信你的智商。

发布于: 2020 年 10 月 21 日阅读数: 36
用户头像

还未添加个人签名 2019.07.17 加入

还未添加个人简介

评论

发布
暂无评论
游戏数值策划之常用excel函数