- 平衡掌控者:游戏数值经济设计
- 似水无痕
- 1511字
- 2021-03-31 21:23:24
2.3 数学函数与统计函数
数学函数与统计函数也是实际工作中的常用函数,特别是在运算模拟、公式验证和数据分析中它们使用频繁。
2.3.1 最大值和最小值
我们经常会遇到这样的问题——希望将输出的数值限制在最大值和最小值之间。而在一般的情况下,通常会使用IF函数进行多次判断来解决这个问题。比如,A3:A6单元格区域中的值通过IF条件判断后得到B3:B6单元格区域中的值,如图2-39所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_40_1.jpg?sign=1739627294-EEaNO0hn5NZPklZlx7tNMebkZgpP5PPs-0-545c4e8fdcdf93db257941aeb2a9c600)
图2-39
除此之外,还可以用MIN+MAX组合函数来解决这个问题。思路比较容易理解,在MAX函数中放入最小值参数,在MIN函数中放入最大值参数。当通过MAX函数判断最大值时,因为存在最小值参数,所以无论你的数值多么小,最终输出的肯定是最小值参数值,因为它比你的数值大(你的数值太小了)。而MIN函数的操作刚好相反。
在实际工作中,以上两种方式都可以解决问题,希望大家可以养成良好的逻辑思维能力。
2.3.2 数列
我们经常会遇到一种情况,那就是希望生成一个特定的数列,比如等比或等差数列,此外还有一种用得较多的数列,那就是带有一定规律的循环数列。下面介绍两种常用数列。
第1种数列是由商数的整数部分组成的数列。这种数列常常作为递增常量参与实际的运算,大家可以在表格中修改E1单元格中的步长值来观察数据的变化情况。A列为原始数列,B列为经过公式计算后得到的数列,如图2-40所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_41_1.jpg?sign=1739627294-jhOnfoEumgcCf8Zlii163cJRA1PRkZO9-0-e5e64205fad8fe0f6a21256a6f1f4c23)
图2-40
第2种数列是由两个数值表达式做除法运算后的余数部分组成的数列。这种数列常常用于参数填充,比如在某类型武器编号结束之后,又开始新的类型武器编号,如图2-41所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_41_2.jpg?sign=1739627294-VZal0hlKvTPXHGO92nLuhX40hxpvZVul-0-9dffb27be12229270bc0461c938d8bbb)
图2-41
2.3.3 不重复排名
针对传统的排名问题,可以使用RANK函数来直接解决,但是RANK函数无法实现无并列排名,即不重复排名。下面使用的是用C列作为辅助列,将COUNTIF函数作为辅助函数来解决不重复排名问题。
下面进行举例说明。A列是需要统计的分数,首先在B列中使用RANK函数对这些分数进行一次排名。可以看到,前两个人的分数相同,所以在RANK函数排名后,他们的名次也是一样的。然后使用COUNTIF函数在C列进行判断,在每次统计到与上一个值重复的值的时候,就会将排名+1,最终实现不重复排名。具体的公式如图2-42所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_42_1.jpg?sign=1739627294-GXcTbOYc5fMzt2z57SxpnBLFPmkHTg1O-0-d3e9887602bfa6d6cbfeeb4e1c79acda)
图2-42
2.3.4 档位划分
在实际工作中,时常会遇到档位划分问题,很多人都使用VLOOKUP函数来解决这个问题,其实用LOOKUP函数会更方便一些,如图2-43所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_43_1.jpg?sign=1739627294-h62xxUho2W4K6wCiTskAHwcpwihK8gWo-0-05aea9688d2e07133b9f8d07cf865bcf)
图2-43
我们希望根据A列单元格的值来划分相应的档位,并将相应的档位填入B列单元格中。档位规则如下:大于或等于500且小于1000的评分对应低档位;大于或等于1000且小于5000的评分对应中档位;大于或等于5000且小于9999的评分对应高档位;大于或等于9999的评分对应超强档位。
可以看到,通过LOOKUP函数来实现上述要求是符合预期的,但小于500的评分由于没有匹配到对应的档位,所以显示为错误值,这其实是因为我们没有定义小于500评分的档位导致的。大家在实际操作中一定要考虑取值范围,以免出现错误值(也可以添加额外的档位来控制下限取值档位)。
2.3.5 频度统计
频度统计在数据统计中的用途非常广泛,也极具代表性,下面就来解析频度统计,如图2-44所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_43_2.jpg?sign=1739627294-qVnpiN4Al1yeNhMCeV6Uhy7kg6plO3HR-0-52dd1e112b2353deceee4a0ec970461d)
图2-44
A列中有30个随机数(图2-44中只显示了前10个随机数),这些随机数都是1和30之间的正整数。我们希望统计出这30个随机数中每个数字的出现次数。
首先在D2单元格中求出出现次数为0的随机数有多少个。此处通过COUNTIF函数计算了1~30分别在随机数中出现了几次,并得到了1~30出现次数的数组,如图2-45和图2-46所示。
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_44_1.jpg?sign=1739627294-yy1ZtJm5wCzX1r9NCtRjbO1i4Foh0mGd-0-46b00beb0722794d952c97e0c6f6b68c)
图2-45
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_44_2.jpg?sign=1739627294-7zZCsIWr4UXvtESehA7FvdlHq0WCP9OB-0-e878825e45dd7a218c47651ff97e990c)
图2-46
然后将不符合ROW()-2条件的数变为FALSE(这样在求和的时候这个值为0),而将符合条件的数变为TRUE,最后求和计算后就得到了出现次数为0的数有多少个。此处使用ROW()-2作为判断条件是为了方便直接下拉填充公式(当统计出现次数为1的随机数有多少个时,就可以直接将D2单元格中的公式下拉到D3单元格中)。
最后如果希望得到出现次数对应的数值,那么可以在E2单元格中使用数组公式:
![](https://epubservercos.yuewen.com/77630B/18096060601210406/epubprivate/OEBPS/Images/39363_44_3.jpg?sign=1739627294-1omvy70Pi8WX4uWsyictjJxWdE8lT8bZ-0-c74005a5fdc4e2eedf66f23a5dc16304)