1,什么是函数,什么是公式?
在正式讲Excel函数与公式的技巧之前,我们需要先弄明白这个问题。
什么是函数?什么是公式?
总不能咱们学了半天,连他俩是谁都没弄清楚,对吧?
这就好比一男和一素未谋面的女神网恋,付出精力和金钱,有一天却发现……
……Excel警方温馨提示:网恋有陷阱,花钱需谨慎哦~
![281213109ec70274f85c518221e3350d.png](https://i-blog.csdnimg.cn/blog_migrate/3ac4e6683d97067cd418ede9b918cd2a.jpeg)
什么是公式呢?
在Excel中,公式是以“=”为引导,通过运算符按照一定的顺序进行数据运算处理的等式。
什么是函数呢?
函数则是Excel内部预先定义,并按照特定顺序和结构执行运算任务的功能模块,比如SUM函数,它是一个具有求和功能的模块。
简单而言,函数是Excel设计好的功能模块,从广义角度讲,函数可以看作是一种特殊的公式。但我们通常会说Excel函数,而很少说Excel公式……
以上定义貌似啥用都木有?
你最帅,但你说的不对,这事我们以后会细讲;接下来我们先了解几个对学习函数而言至关重要的基础知识。
2,什么是单元格引用?
我们通常所说的Excel是指Excel工作簿,一个Excel工作簿由一到多张工作表组成的,一张工作表又有上百亿个单元格构成,1048576行*16384列=17179869184个单元格
我的天,我真没想到我每天面对着上百亿个单元格,瞬间有一种独自一人面对千军万马而面不改色的英雄气概……
Excel绝大部分数据都是储存在单元格中的,我们平时用Excel处理数据,实际上也就是在处理单元格,要么增减移动单元格,要么将单元格内的数据重新排列——Excel函数也不例外,因此对于单元格的认识也就成了最基础同时也是最重要的事儿。
以工作表左上角的第一个单元格为原点,向下为行,向右为列,由此构成了一个由行列组成的坐标体系。是的,这就像我们学生时代接触过的x轴y轴坐标体。
![773e09e8cd86004c85efdd08b3ac1b17.png](https://i-blog.csdnimg.cn/blog_migrate/e229800cdba793faf615a4668f88360c.jpeg)
使用坐标的方式可以表示单元格在工作表中的地址,我们将以此实现对存储在单元格中数据的调用——这种方法被称为单元格引用。
单元格引用有两种样式。
一种是A1引用样式,这是系统默认的,也是最为常用的。其中A是指列标,1是指行号,例如C5单元格,也就是指C列和第5行交叉处的单元格。
![da76d0fad1b01aa85d6035bb138d675d.png](https://i-blog.csdnimg.cn/blog_migrate/2924965753259116fbd6bedd712fe7ba.jpeg)
另一种是R1C1引用样式,比较少见,偶尔有妙用,这里顺便介绍下,你也就随便了解下。
R是英文ROW的首字母,代表行。C是英文COLUMN的首字母,代表列。R5C3单元格也就是第5行和第3列交叉处的单元格,等同于A1引用样式中的C5单元格。
有时候您可能会收到列标变为数字的表格,这可能是因为制表者在无意间设置了R1C1的单元格引用样式,取消的方法很简单,依次单击【文件】→【选项】→【公式】,然后撤销R1C1引用样式即可。
![acf6d721639892e511472fe292ad989c.png](https://i-blog.csdnimg.cn/blog_migrate/1d5ed7dd67ab8e0c5d1ac47524833137.jpeg)
3,单元格引用的相对性
聊完了什么是单元格引用,我们就来聊下本章的重点——单元格引用的相对性。
在很长一段时间里,Excel只所以强悍甚至伟大便是因为拥有灵活而又丰富的函数公式,而函数公式只所以灵活好用则是因为单元格引用的相对性。
什么是单元格引用的相对性呢?我去,这么高大上的名字有点吓人啊~难不成和爱因斯坦的相对论有关?
![c4a0d7c4b132b14f6491ece15fbe0e30.png](https://i-blog.csdnimg.cn/blog_migrate/c17c01de5b5b96e115b32f5e60c98080.jpeg)
举个例子。
在A1单元格输入公式:=B1
B1就是A1的引用单元格,A1的值引用自B1,B1是A1的主人。
A1就是B1的从属单元格,A1什么都得听B1的,B1是什么值A1就会是什么值,所以A1是B1的从属。
从属单元格(仆人)和引用单元格(主人)之间的关系被称为引用的相对性,由此产生了三种不同的情况,也就是我们通常所说的相对引用、绝对引用和混合引用。
1)先来看一下相对引用。
![6108568cd46015137871a471aff66617.png](https://i-blog.csdnimg.cn/blog_migrate/ed04043cbf5e425ee965ef4c1607e4a4.jpeg)
我现在手上有一份诸位的成绩表,嗯,看起来相当优秀,现在我要计算总分。揍开啦,你不要给我计算器,Excel在手,我要计算器干啥子类?
D2单元格输入公式:
=B2+C2
得出A2单元格会员A的总分。
选中D2单元格,双击右下角的填充柄,可以将D2单元格的公式填充到D2:D7单元格区域,也就得出了每一位会员的成绩总分。
![c909c9ac9b4ca532be233832e6a3f66e.gif](https://i-blog.csdnimg.cn/blog_migrate/2bf059caa8f8bba6a21b873b2aba41e6.gif)
这事儿看起来似乎平常无奇,但有一个问题,为什么我在D2单元格输入的公式,复制填充到其它单元格区域,可以正确的计算出其它会员的成绩?
观察D3:D7单元格的公式,会发现公式的内容相比于D2已经自动发生了改变,例如B3+C3、B4+C4、B5+C5……
![4692d88e0ecbb1550d96d45431ef00bc.png](https://i-blog.csdnimg.cn/blog_migrate/112e91a17d7cabcd1346d5c31fa58e90.jpeg)
这种随着公式所在位置不同而相应的改变单元格引用地址的方式被称为相对引用。
相对引用所遵循的规则是:从属单元格(仆人)和引用单元格(主人)的相对位置,也就是行列的距离,保持绝对不变。
正是由于这个特点,一个函数公式才能够在不同的单元格中重复使用,而不用每一个单元格的函数公式都需要手工输入。
如果上面这句话你一时半会理解不了,那只需要记得下面这句话就好了。
相对引用的单元格地址会变。
2)绝对引用
绝对引用的意思是不管公式被复制到哪,所引用的单元格地址绝对不会发生改变。
例如我们在B2单元格输入公式=$A$1,则无论公式向右还是向下复制填充,都始终保持=$A$1不变。
对比下相对引用,我们同样在B2单元格输入公式=A1,则无论公式复制到哪,它都在变……
![7af12153cb0cdf1f3076b437ed53a66b.gif](https://i-blog.csdnimg.cn/blog_migrate/0b4156841073e0003e8952bd4b4dac25.gif)
没有对比就没有伤害,所以有个经受过严重感情挫折的人说相对引用是朝三暮四随风倒,甘做墙头一棵草;绝对引用是海枯石烂心不变,一生一世到永远~
=$A$1
=A1
对比一下绝对引用和相对引用的单元格地址会发现绝对引用比相对引用多了符号$。
我们不妨把$看成一把锁,它锁住了列标$A,也锁住了行号$1,所以不管公式复制到哪儿,单元格地址都不会发生变化。
当然,你也可以把$看成美金,毕竟这本来就是美金符号。但这难免有些伤感,意思就是你有钱,他是绝对引用,一心一意跟着你,你没钱,不好意思,他就成了相对引用,变了心,能走多远走多远……好可怜一男人
3)混合引用
我们上面说$是一把锁,锁住了列标也锁住了行号,所以绝对引用状态下的单元格无论走到哪地址都不会改变。
但若是我只锁行号不锁列标呢?比如B2单元格输入公式=A$1,结果会发现公式向右复制时列标在变,但行号不变。
![e757a195b33284b1cbc220ba296daed3.gif](https://i-blog.csdnimg.cn/blog_migrate/e7e75abe3ee596ddedfe534a5d0bd561.gif)
反过来只锁列标不锁行号,比如B2单元格输入公式=$A1,公式向下移动则列标不变,行号会变。
![28b69d9ff7905af534a87535792045b3.gif](https://i-blog.csdnimg.cn/blog_migrate/b4bedfedb7f67b5a137a39a3644b59a2.gif)
这种不完全的绝对引用,或者说不完全的相对引用,我们称之为混合引用。
小贴士:
虽然不同的引用方式可以通过手工输入$来设置,但较为烦琐,使用功能键则可以在以下四种引用方式中循环切换。
绝对引用→行绝对列相对引用→行相对列绝对引用→相对引用
向F4致敬,误会了这么多年,原来他不只是流星花园。
4,单元格和单元格区域
最后来稍微讲一下单元格和单元格区域的区别。
本来确实没打算讲,大纲里也没这部分内容,我是默认大家都会的。但前两天在我微博上看到大家在讨论一个新人写的函数公式=VLOOKUP(A:A,C:D,2,0)
有意思的是VLOOKUP的查找值是A:A,而不是A1、A2这样的单个单元格。在现实中也确实见到不少人使用A:A的写法,问题显然在于他们没有明白单元格区域和单元格的区别。
什么是单元格呢?单元格是构成工作表的最基础元素,如我们前面所讲,行列交叉即可表示单元格地址,比如A1,也就是A列和第1行交叉位置的单元格。单元格是一个个体。
什么是单元格区域呢?多个单元格所构成的单元格群组被称为单元格区域,比如A:A,是有A列1048576个单元格构成的单元格群组。
A:A中的半角冒号我们称之为区域运算符,是引用运算符的一种。通过冒号连接前后两个单元格的地址,表示引用一个矩形区域。通常,冒号两端的单元格分别指向区域的左上角和右下角单元格。比如A3:C6,引用的是左上角为A3单元格,右下角为C6单元格构成的矩形的单元格区域。
![e81f872ac3c74275119e347976a74158.png](https://i-blog.csdnimg.cn/blog_migrate/66bb34a3534a3456cdc97b19f07e3500.jpeg)
所以,千万不要将单元格和单元格区域混为一谈哦~
PS:
(以下内容仅供了解,不用理解)
也许你会感兴趣,为什么明明=VLOOKUP(A:A,C:D,2,0)的书写方式不正确,却依然可以得到正确的计算结果?
这是由于它无意间使用了隐式交叉引用的缘故。VLOOKUP函数所计算的查找值是公式所在行和A:A列交叉产生的单元格,比如公式在C3,则查找值为A列和第3行交叉产生的A3单元格。
当A列存在大量数据时这种方计算效率会偏差,毕竟计算交叉单元格的地址也是需要花费时间的。
![b08dc408c82d40ab487af1a3c0e83340.png](https://i-blog.csdnimg.cn/blog_migrate/f816c5f86badb6936c38598629c6e7fe.jpeg)