python吊打Excel?那是你不会用!附赠N个Excel公式

    技术2022-07-10  103

    相信大家总能在朋友圈刷到下图这种教育广告,python很强,但总是这么贬低Excel就没必要了吧。

    直到我看见了下面的回复,笑喷!

     

     

    实话实说,从数据分析的角度来看,excel的可视化要差一些,数据采集也不能跟python相比,这都不是excel的专业,但是excel在数理统计上的表现还是很不错的

    所以当数据分析量小、想要快速出结果、逻辑关系简单的情况下,excel很香![1]

    而python就是给你一堆原材料,水泥、砖头、钢筋等等,你的工作就是自己要从头摘,一步步把高楼给建造出来。

    Excel虽然人人都会,但如果想要用来数据分析,要掌握的函数操作还真不少。

    下文是Excel常用函数大全,建议收藏,不要吃灰!

    文末三连不要忘了哈

     

    (阅读、在看、分享)

    这是一份很好的Excel常用函数大全,也是工作中经常使用的函数操作,学习Excel常用函数,不要求面面俱到,而是选择常用的函数进行学习,当再次碰到了其它函数,再单独去学习即可。 ——黄同学

    1、excel函数需要掌握的基础功能

      下面都是在使用Excel过程中,所使用过的一些基础功能,限于篇幅这里就不详细介绍,大家可以自行下去操作一遍。

    相对引用绝对引用帮助功能显示公式自动/手动计算追踪引用单元格名称编辑器照相机

    2、函数分类

     

    3、学习函数的建议

    不要死记硬背,但是看着某些函数一定要眼熟。学会使用在线帮助功能(按F1键)。合理的逻辑思维,excel中函数的使用,和我们学习其他编程语言中使用函数一样,了解函数的功能、参数。

    4、绝对引用、相对引用与半绝对引用

    1)图示讲解含义

      注意:使用F4键,进行绝对引用和相对引用公式的切换。

     

      上图我们已经演示了“相对引用”和“绝对引用”的功能,那么到底什么是“相对引用”?什么又是“绝对引用”呢?下面我们分别对其下一个定义。

      在定义这两个概念之前,我们先来说明一下excel中的行与列。从上图可以看出,在excel中,行索引是一系列的数字(1,2,3...),列索引是一系列的大写字母(A,B,C...),。但是我们在表述某一个单元格时,常喜欢用类似“C2”的形式,表示某一个单元格,即把列写在前面,行写在后面。

      相对引用:针对某一单元格引用另外一个单元格的情况,不添加“ $ ”符号时,就表示相对引用。当我们将引用单元格,朝着右边、下边拖动填充的时候,该引用单元格会跟着被引用单元格变化,类似于图中的“A图”。

      绝对引用:也是针对某一单元格引用另外一个单元格的情况,行列都添加“ $ ”符号时,就表示绝对引用。当我们将引用单元格,朝着右边、下边拖动填充的时候,引用单元格不发生任何变化,类似于图中的“B图”。

      半绝对引用:同样是针对某一单元格引用另外一个单元格的情况,行或者列其中一个添加“ $ ”符号时,就表示半绝对引用。当仅针对行使用了“ $ ”符号,引用单元格朝下边拖拉填充的时候,引用单元格不会发生任何变化,类似于图中的“C图”。当仅针对列使用了“$”符号,引用单元格朝右边拖拉填充的时候,引用单元格不会发生任何变化,类似于图中的“D图”。

    2)利用九九乘法表讲述“绝对引用”和“相对引用”

    ① 最简单的一种

     

    从上述案例可以看出,我们在B41单元格输入了“=$A41*B$40”这个公式,这个公式表示B41单元格分别引用了“$A41和B$40”这两个单元格,但是为什么是在A和40前面加“$”符号呢?这个需要我们好好琢磨一下。

    我们可以先想象一下,当单元格B41从做左右拖拉填充的时候,是不是保持了“A41行不变,B40列变化”,因此40前面需要加一个“$”符号。当单元格B41从上往下拖拉填充的时候,是不是保持了“B40列不变,A41行变化”,因此40前面需要加一个“$”符号。

    ② 使用“&”连接符,显示较全的九九乘法表

     

    ③ 配合if()函数,显示上/下三角形式的九九乘法表

     

    5、函数讲解(最常用的个函数)

      使用函数之前,学会下方的四个提示和一个注意:  一:所有的函数均是以“=”开头;  二:所有的函数都是在“英文”状态下输入;  三:文本或日期等非单元格的引用,需要添加“双引号”;  四:连接符是“&”;  注意:在excel单元格中,数字和日期都是靠着单元格右侧,文本都是靠着单元格左侧。

     

    1)逻辑函数

    ① and

     

    ② or

     

    ③ if

     

    当使用了if()函数进行多层嵌套,很容易写错,那么怎么规避这个问题呢?

     

    2)字符串函数

    ① left

     

    ② right

     

    ③ mid

     

    ④ len(lenb自己下去学习)

     

    注意:len = 1中文 + 1英文;lenb = 2中文 + 1英文;这两个函数可以完成中英文的分离。len - lenb表示的是中文个数;2len - lenb表示的是英文个数。

    ⑤ lower

     

    ⑥ upper

     

    ⑦ proper

     

    ⑧ find

    注意:find()函数区分大小写,search()函数不区分大小写。

     

    ⑨ search

    注意:find()函数区分大小写,search()函数不区分大小写。

     

    ⑩ rept

     

    ⑪ replace

     

    ⑫ substitute

    注意:这个函数的最后一个参数很有用。如果一个文本中有几个重复的内容,最后一个参数可以指定,从第几个重复内容开始起,进行替换。

     

    ⑬ trim

    注意:该函数可以去掉字符串中所有的空格,但是会保留一个字符与字符之间的间隔空白符。

     

    3)数学函数

    ① abs

     

    ② round

     

    ③ roundup

     

    ④ rounddown

     

    ⑤ even

    注意:enen和odd都是朝着绝对值数字大的方向走的。

     

    ⑥ odd

    注意:enen和odd都是朝着绝对值数字大的方向走的。

     

    ⑦ int

     

    ⑧ trunc

     

    ⑨ power

     

    ⑩ ^

     

    ⑪ product

     

    ⑫ mod

     

    ⑬ rand

     

    ⑭ randbetween

     

    3)统计函数

    ① sum_sumif_sumifs

     

    ② average_averageif_averageif_averagea

    注意:averagea()函数用法较为特殊,需要特别留意一下即可。

     

    ③ count_countif_countifs_counta_countblack

     

    ④ max_maxa_min_mina_median

     

    ⑤ sumproduct

     

    ⑥ subtotal

    注意:这个函数可以实现我们之前学过的很多函数的功能,用起来也很方便,由于该函数涉及到的知识点太多,这里简单介绍一下。我们在excel中输入该函数,会有这么多提示:

     

    下面介绍一些操作展示:

     

    4)时间函数

    ① today_now:返回系统时间

     

    ② year_month_day:提取某个日期中的年、月、日

     

    ③ days_datedif:计算两个日期之间的年、月、日

     

    ④ edate_eomonth:将时间前、后移动指定月份

     

    ⑤ weekday:返回星期几的函数

    这个函数需要特别注意一下,默认情况下,显示的是国外的时间,也就是说星期天显示的是1。但是我们国家希望星期天显示的是7,星期一显示的是1,怎么办呢?我猜你肯定不知道,weekday()函数还有第二个参数,如下图所示。

     

    今天是2020年5月1号,按照国外默认来说,今天应该是周六,即显示结果为6。如果使用了第2个参数后,可以改成我们习惯的“星期”显示方式。

     

    ⑥ text:返回各种日期、时间格式的函数(强大)

    text()函数相当强大、有用,涉及到的知识点也是众多的,因此这里提供一个学习链接给大家,就不详细演示了:https://baijiahao.baidu.com/s?id=1615357210194597308&wfr=spider&for=pc[2]

     

    ⑦ networkdays_networkdays.inl:计算工作日的常用函数

     

    关于networkdays.inl的第4个参数,很有用,我们利用下图进行展示一下,从下图可以看出,每一个数字代表每一周的休息日是哪一天,例如“数字11”表示,休息日只有星期天,周六仍然需要上班,这就是我们所说的“单休”。

     

    5)行数、列数统计函数

    ① column_columns_row_rows

     

    6)匹配查找函数

    ① vlookup

    注意:多条件查询,需要添加辅助列。

     

    ② lookup及其高级应用

    注意:使用lookup()函数需要特别注意,“查找对象所在的列必须升序排列”,否则结果做出来都是错的。同时,这个进行多条件查询的时候,不需要添加辅助列。

     

    假如,我不想改动源数据,仍然想要使用lookup()做查找,应该怎么办呢?那么就需要使用lookup()高级应用了。关于lookup()高级应用,这里需要记住一句话:首先它会默认你的查找区域是升序排列,当查找值在查找区域中找不到目标值的时候,就会返回该区域中的“最大值”,这就是下面要讲述方法的“解题关键”。

     

    ③ index

     

    关于index()函数显示某一行值,涉及到数组的操作,下面我们录制了一个视频。

     

    ④ match

     

    注意:index()和match()进行搭配使用,进行多条件查找,相当有效,也特别好用。组合棋类的效果是这样的:index(查找区域,行号,列号)。

    ⑤ offset

     

    7)错误处理函数

    ① iferror

     

    6、函数实战操作

    1)and_or_if_left_right实战演示

    =IF(D3>100000,"是","否") ----1 =IF(OR(B3="北京",B3="上海"),"是","否") ----2 =IF(AND(E3>30000,E3<100000),"是","否") ----3 =B3&"--"&A3&"--"&E3 ----4 =LEFT(C3,7)&"" ----5 =LEFT(C3,3)&""&RIGHT(C3,4) ----6

    操作如下:

     

    if嵌套函数演示如下:

    =IF(B51<60,"不及格",IF(B51<70,"及格",IF(B51<80,"不错",IF(B51<90,"良好","非常好"))))

    操作如下:

     

    2)find_lower_left_right实战演示

    =LOWER(B3)                                  ---1 =RIGHT(B3,LENB(B3)-LEN(B3))                 ---2 =FIND(RIGHT(B3,LENB(B3)-LEN(B3)),B3)        ---3 =LEFT(B3,2*LEN(B3)-LENB(B3)-1)              ---4

    操作如下:

     

    3)abs_int_trunc_round_roundup_rounddown_even_odd实战演示

    =ABS(A2) =INT(A2) =TRUNC(A2,1) =ROUND(A2,1) =ROUNDUP(A2,1) =ROUNDDOWN(A2,1) =EVEN(A2) =IF(A3>0,EVEN(A3),EVEN(A3)+2) =ODD(A2) =IF(A2>0,ODD(A2),ODD(A2)+2)

    操作如下:

     

    4)rand_randbetween实战演示

    =RAND() =TRUNC((RAND()*10)) =RANDBETWEEN(1,11) =TEXT(RANDBETWEEN(1,TODAY()),"yyyy-mm-dd")

    操作如下:

     

    5)sum_sumif_sumifs实战演示

    =SUM(P2:P7326) =SUMIF(Q:Q,2018,P:P) =SUMIFS(P:P,Q:Q,2019,M:M,"上海") =SUMIFS(P:P,Q:Q,2019,M:M,"上海",N:N,"酒水")

    操作如下:

     

    6)average_averageif_averageif_averagea实战演示

    =AVERAGE(G:G) =AVERAGEIF(H:H,2018,G:G) =AVERAGEIFS(G:G,H:H,2019,F:F,"可乐")

    操作如下:

     

    7)count_countif_countifs_counta_countblack实战演示

    =COUNT(G:G) =COUNTIF(H:H,2019) =COUNTIFS(H:H,2019,D:D,"上海") '=COUNTIFS(H:H,2019,D:D,"上海",F:F,"可乐")

    操作如下:

     

    8)max_maxa_min_mina_median实战演示

    =MAX(G2:G7327) =MIN(G2:G7327) =MEDIAN(G2:G7327)

    操作如下:

     

    9)sumproduct实战演示

    =SUMPRODUCT(G:G,J:J) =SUMPRODUCT((H:H="2018")*1,G:G,J:J) =SUMPRODUCT((H2:H7326="2018")*G2:G7326*J2:J7326) =SUMPRODUCT((H:H="2019")*1,(D:D="上海")*1,G:G,J:J) =SUMPRODUCT((H:H="2019")*1,(D:D="上海")*1,(E:E="酒水")*1,G:G,J:J)

    操作如下:

    Processed: 0.042, SQL: 9