Excel深入学习
前言
游戏开发过程中用到的数据我们通常会采用Excel进行配置,这个归功于Excel强大的数据处理和表达能力。无论是Excel的自带的公式计算还是Excel内嵌支持的VBA自定义编程都使得Excel成为了数据配置的一大利器,用好Excel也是数值策划必备的技能之一。本章节通过深入学习Excel的使用,为未来自己的独立游戏的数据配置数值搭建打好基础。
需求
- 单表之间数值计算公式编写
- 跨表数据关联公式计算编写
- 自定义程序功能VBA编写(e.g. 导表)
Excel介绍
Excel is the world’s most used spreadsheet program
Excel is a powerful tool to use for mathematical functions
从上面教程的Excel简单介绍可以看出Excel的强大和运用广泛,本人用Excel主要用于游戏开发,核心目的是实现数值系统(即数据管理)。接下来我会跟着教程一步一步深入学习Excel,从基础的Excel使用到Excel公式,甚至自定义VBA编写程序来实现我们在游戏开发过程中的种种需求。
Excel基础学习
Excel自带功能
一个简单的数学运算运用
Excel主要由标题栏和Sheet组成
标题栏为Excel工具栏,可以实现各种Excel操作。而Sheet为Excel数据部分主要有多行多列组成,我们平时编写的行列数据都在Sheet里,一个Excel可以包含多个Sheet。
Excel公式运算
Excel公式用于数学运算,通常由=符号开始。
用一个比较现实的问题举例,我们通常用Excel记账时,通过填入物品名称,单价和数量,我们会需要算出总价,这个时候我们可以利用公式实现总价根据前面数据进行自动计算的功能。
可以看到在总价那一列编写公式:=B2*C2我们成功利用商品单价和数量自动计算出了商品总价。
接下来我们利用Excel自带提供的函数计算所有价格,数量以及总价的总数。
Excel引用
Excel的引用分为两种(Relative Reference和Absolute Reference)
- Relative Reference(相对引用 e.g. A1)
The relative reference makes the cells reference free. It gives the fill function freedom to continue the order without restrictions.
从上面的介绍来看,相对引用在拖拽填充时更加自由,会保持原有公式的相对计算规则。
好比前面我们通过SUM函数实现了总价总数的计算,然后我通过拖拽填充的方式自动实现了价格总数和数量总数的计算。 - Absolute Reference(绝对引用 e.g. $A$1)
Absolute reference is when a reference has the dollar sign (\$). It locks a reference in the formula.
从上面的介绍来看,绝对引用是通过加$符号标识的,加了$符号的绝对引用不会再拖拽填充的过程中变化,会一直保持原有定义。
接下来让我们把价格固定,然后利用绝对引用的方式,实现每个人不同购买数量的总价自动计算。
从上面可以看到,虽然我们通过拖拽填充的方式填充了C3到C5,但我们单价引用的$B$7是保持不变的,核心原因就是我们用的绝对引用。
- Relative Reference(相对引用 e.g. A1)
Excel自带函数
Excel的强大不单单是简单的加减乘除运算,更多的是Excel支持类似编程方式的函数库+VBA语言编写,从而使得Excel能实现很多强大的自定义功能。
接下来让我们学习几个Excel里常见的自带函数:- AND(The AND function is a premade function in Excel, which returns TRUE or FALSE based on two or more conditions.)(可以看出AND类似编程语言Lua里的And运算符,但Excel里的AND运算符区别是用于返回true和false)
- IF(The IF function is a premade function in Excel, which returns values based on a true or false condition.)(可以看到IF类似编程语言里的IF,通过我们给出的条件的判定结果返回我们指定的两种情况的值)
接下来让我们结合前面的例子,通过Excel自带函数IF和AND实现自动判定总价超过10和(总价超过10+数量超过5)的数据统计。
从上面可以看到IF通过编写逻辑判定成功返回了我们自定义的YES和NO,而AND通过编写两个条件成功返回了TRUE和FALSE。 - SUMIF(The SUMIF function is a premade function in Excel, which calculates the sum of values in a range based on a true or false condition.)(可以看出SUMMIF是一个带范围带条件匹配的总和运算)
- COUNTIF(The COUNTIF function is a premade function in Excel, which counts cells as specified.)(可以看出COUNTIF是一个带条件的统计符合条件数量的函数)
需求:- 纵向代表每个人,横向表示每天,✔️表示吃了,✘表示没吃,每天吃了要出3元,不吃要出1.5元,最后统计每个月每人餐饮伙食费
可以看到通过SUMIF我们成功统计出了指定单元格到指定单元格里包含✔️和✘的数量,然后乘以对应的单价再相加即得到我们要的统计总和。
更多的自带函数学习参考:Excel Function
- 纵向代表每个人,横向表示每天,✔️表示吃了,✘表示没吃,每天吃了要出3元,不吃要出1.5元,最后统计每个月每人餐饮伙食费
Excel VBA
常规的功能需求,Excel自带的函数和功能就能满足,但涉及到复杂的逻辑运算规则时,Excel自带的函数和功能就力不从心了,这时就需要VBA这样的编程语言的东西出马了。
那么什么是VBA了?
VBA stands for Visual Basic for Applications, an event-driven programming language from Microsoft.
我个人的理解,VBA就是内嵌到Excel的VB,支持了Excel常规需求的一些API接口,我们可以利用这些API实现自定义功能。
待学习……