整理下自身常用或可能会用到的函数,用于自身复习查询,如果对别人有用那更好了。
1.VLOOKUP()
基本用法
=VLOOKUP(要查找的值,要查找的范围,回传列数,精准查找/模糊查找)
主要用于垂直查找
举个简单的例子:我们想从物品表中获取法杖的单价,那我们就可以用=VLOOKUP(D2,A2:B7,2,TRUE)快速完成查找了


进阶版1
那如果我的数据列很多,我懒得数了,或者回传列数可能会改变咋办,也不能来回改吧。那么我们就需要与其他函数配合了,可以使用MATCH()函数来查找“磨损值”所在的列数,然后再使用VLOOKUP就可以了。这样不管我们新增列还是删除列都不会影响回传数据。
=MATCH(要查找的值,要查找的范围,查找方式)


进阶版2
想要对比两个表格的差异也可以使用VLOOKUP索引另一个表格的区域,如果有对应的文本就会显示文本,否则就会报错(需注意的一点是需要使用精准查找),然后我们可以利用ISNA 函数,**=ISNA(值,如果为「#N/A」返回TRUE,否则返回FALSE),再配合if函数判断即可,=IF(条件,如果为TRUE返回…,否则返回…)**


2.INDEX() +MATCH()
基本用法
=INDEX(范围,回传第几行,回传第几列)
这两个函数经常搭配使用,MATCH我们上次涉及过,介绍下INDEX,它的功能与VLOOKUP()类似,但是更加灵活,可以查找最左侧内容,输入下图公式,就会查找A2:A7区域中第三行第一列的内容了。

**进阶用法1
将回传第几行,回传第几列使用MATCH公式替代,我们需要记住一个原理,公式内手动填写数字都最好使用公式替代,这样方便后续使用,不会因为表格的行列数改变而改变。因此我们需要知道“法杖”所在的行数,以及“单价”所在的列数,就可以实现了,即使增减单元格也不会改变。

3.OFFSET()
常规用法
=OFFSET(单元格原点,移动行数,移动列数,【返回区域行数】,【返回区域列数】)
用于单元格索引,例如以A1为原点,移动偏差单元格或区域。(于此类似,向上或向左就是负数)


4.INDIRECT()
常规用法
=INDIRECT(所选范围,引用方式)
同样用于单元格索引,但它是一种灵活的引用函数.
我们可以看到下两图都索引的物品,但内容有些许不同,这是因为第一个A2代表的是就是一个文本,不会引用到数据,第二个A6表示工作表中的一个单元格,所以会返回A2单元格的数据


并且它也可以跨表格来引用数据,如图通过D1中的“商店2”索引商店2中的单元格。


5.COUNT()
常规用法
=COUNT(所选范围,所选第二范围)
COUNT用于计算范围内数字形式(1.数字 2.百分比 3.日期 4.时间)单元格数量

6.COUNTA()
常规用法
=COUNTA(所选范围,所选第二范围)
COUNTA相比于COUNT,可以计算更多形式的单元格,计算非空单元格数量(1.文字、数字 2.含有空格的单元格 3.日期 4.时间 5.错误:#NAME!、#VALUE!等 6.布尔值:TRUE、FALSE等)

7.COUNTIF()
常规用法
=COUNTIF(所选范围,条件)
COUNTIF可以计算所选范围内符合条件的单元格数量

8.COUNTIFS()
常规用法
=COUNTIFS(所选范围1,条件1,所选范围2,条件2,…)
COUNTIFS相比于COUNTIF可以增加更多的条件筛选。

9.SUM()
常规用法
=SUM(数值或所选范围1,数值或所选范围2)
用于计算范围求和,很简单不列图了。
10.SUMIF()
常规用法
=SUMIF(所选范围,条件,要求和的区域)
用于计算符合条件下所选区域的和

11.SUMIFS()
常规用法
=SUMIFS(要求和的区域,所选范围1,条件1,所选范围2,条件2,…)
与SUMIF区别在于可以增加更多的筛选条件

12.AVERAGE()
常规用法
=AVERAGE(数字或所选范围1,数字或所选范围2)
用于计算范围内平均值,这个也属于基本函数了,不列图了。
13.REPLACE()
常规用法
=REPLACE(文本或替换字元所在单元格,替换字元起始位置,替换字元数量,替换后字元)
用于替换文本

14.SUBSTITUTE()
常规用法
=SUBSTITUTE(替换字元所在单元格,替换字元,替换后字元,【替换位置】)
同样用于替换文本,与REPLACE区别在于,REPLACE用于字元所在位置替换,而SUBSTITUTE()用于你提供的新字元来替换

15.MID()
常规用法
=MID(文本或提取字元所在单元格,提取字元起始位置,提取字元数量)
用于字符串提取内容

进阶用法
基本用法肯定不能够自动化,因为一旦单元内字数位置发生改变,对应的状态内容也会无效,因此想让他无论怎么改都可以显示正确的内容的话,可以搭配使用FIND()函数
=FIND(要查找的内容,要查找所在的字符串,【开始位置】)
还是那句话,一切有数字的都可以公式代替,那我们将后两个代替掉即可,关键标识符为“()”,利用find识别这两个之间的内容即可。可以看到,无论我们怎么修改,都会返回括号内字符。

16.LEFT()
常规用法
=LEFT(文本或提取字元所在单元格,从左数字元起始位置)
同样用于字符串提取内容,区别在于这个是从最左侧开始

进阶用法
同MID()函数
17.RIGHT()
常规用法
=RIGHT(文本或提取字元所在单元格,从右数字元起始位置)
与LEFT()函数类似,不列图了
进阶用法
同MID()函数
18.MAX()
常规用法
=MAX(数字1或范围1,【数字2或范围2】…)
用来求区域最大值的,需要注意的一点是,他可以忽略空单元格的情况,但不能忽略有错误单元格,可以利用IFERROR()函数来将其转化为空单元格。

进阶用法
如果我们还想知道单价最高所对应的物品名称呢,可以利用下我们之前的INDEX()+MATCH()函数实现

19.MIN()
常规用法
=MIN(数字1或范围1,【数字2或范围2】…)
用来求区域最小值的,与MAX()类似,不列图了
20.LARGE()
常规用法
=LARGE(数字1或范围1,序列)
同样是用来求最大值,可以用来返回一组数据中的第几个最大值。

21.FIND()
常规用法
=FIND(要查找的内容,要查找所在的字符串,【开始位置】)
上面有,略过
22.ROUND()
常规用法
=ROUND(要被计算的数字,要求小数点后几位)
将数字四舍五入

进阶用法1
=ROUNDDOWN(要被计算的数字,要求小数点后几位)
可将大于4的的小数也舍掉,向下舍入数字
进阶用法1
=ROUNDUP(要被计算的数字,要求小数点后几位)
可将小于5的的小数也取入,向上舍入数字
23.MOD()
常规用法
=MOD(要被计算的数字,除数)
用于计算余数

24.COLUMN()
常规用法
=COLUMN(【返回单元格或区域】)
用于返回对应单元格列数的

25.ROW()
常规用法
=ROW(【返回单元格或区域】)
用于返回对应单元格行数的

26.AND()
常规用法
=AND(条件1,条件2)
多用于IF函数配合,两个条件均为TRUE,最后结果才为TRUE,只要有一个为FALSE,结果就为FALSE。
27.OR()
常规用法
=OR(条件1,条件2)
多用于IF函数配合,只要有一个为TRUE,最后结果就为TRUE,只有两个都为FALSE,结果才为FALSE。
28.NOT()
常规用法
=NOT(条件)
多用于IF函数配合,当条件为TRUE,结果为FALSE,条件为FALSE,结果为TRUE
29.SUBTOTAL()
常规用法
=SUBTOTAL(索引,范围)
复合函数,可以看到它可以索引到以下任意函数,它的不同之处在于它是一个可以能统计用户可见单元格的函数,也就是说你筛选或隐藏的单元格可以利用它来选择是否计算到公式内。

30.ISODD()
常规用法
=ISODD(数字)
用于判断数字是否为奇数,是则返回TRUE,反之FALSE

31.TRIM()
常规用法
=TRIM(文字)
用于删除文字多余的空白格,虽然它可以删掉两侧多余的空白格,但他还是会在两字中间留下一个空白格,如果要全部删除空白格,可以用=SUBSTITUTE (A2,” “,“”)

32.LEN()
常规用法
=LEN(文字)
用于计算长度,但是空格也会被计算在内

进阶用法 1
=LENB(文字)
用于计算单元格内字节数量,可以看到数量比len的数量多,那是因为它会将汉字视为两个字节,我们可以利用LENB()-LEN()就可以得出汉字的数量了。

进阶用法 2
与RIGHT()或LEFT()函数配合,利用LENB()-LEN()求出汉字数量,再利用LEFT()函数得出汉字

33.万能公式
常规用法
=INDEX()+SMALL()+IF()
万能公式,如果想提取指定数值对应的内容时,我们知道要用INDEX() +MATCH()这两个函数,但如果指定数值对应多个内容怎么办,这里介绍下万金油公式的用法。首先介绍下SMALL()函数
=SMALL(单元格或数组,序列)
SMALL函数是用来返回一组数据中的第几个最小值。
首先我们要明白什么是数组以及数组公式,很简单A1:A10就是一组数组,我们点击公式页面右上角的开始计算就可以直观的看到


可以看到,我们的数据以数组的形式保存在这里了。
数组公式举个例子,我们想要让所有单价均+固定值,按正常思路是不是=B1+$H$2再下拉。

但利用数组公式就可以直接选择总价区域,再公式内输入单价区域+单元格,最后按CTRL+SHIFT+ENTER(很重要,切勿使用ENTER)即可。


这样好像跟正常的差不多,但对于两个数组的公式来说很方便,例如求不同数量对应价格,利用数组公式就可以很轻松解决

好继续看我们的万能公式,我们想要知道400对应的物品有什么,但是它对应着多个物品,如果用INDEX() +MATCH()也仅能返回一个,首先我们要想我们如何获取对应物品的行数,因为知道行数用INDEX()就可以轻松得出物品,因此首先用IF()函数来判断B2:B11数组是否等于F2,如果等于就利用ROW()返回对应的行数,否则就让他等一个超大值无法索引。

=IF($B$2:$B$11=$F$2,ROW($B$2:$B$11),99),因此我们的公式就出来了,点击开始计算看下数组没错,是3,6,7行,之后我们利用SMALL,SMALL函数是用来返回一组数据中的第几个最小值。这个序列我们可以用ROW()来代替,ROW(B1)即为1。

=SMALL(IF($B$2:$B$11=$F$2,ROW($B$2:$B$11),99),ROW(B1)),将这个数组从小到大排列,我们CTRL+SHIFT+ENTER看下,没错。

最后就是利用INDEX()去求对应的值了,很明显99是不存在索引的,因此我们再加上个IFERROR()来跳过错误。
最后公式应如此=IFERROR(INDEX($A$1:$A$11,SMALL(IF($B$2:$B$11=$F$2,ROW($B$2:$B$11),99),ROW(B1))),"")
