清洗处理类
数据清洗主要用于文本、格式以及脏数据的清洗和转换。
Trim
清除掉字符串两边的空格。
MySQL有同名函数,Python有近似函数strip。
Concatenate
=Concatenate(单元格1,单元格2……)
合并单元格中的内容,还有另一种合并方式是& 。"我"&"很"&"帅" = 我很帅。当需要合并的内容过多时,concatenate的效率快也优雅。
MySQL有近似函数concat。
Replace
=Replace(指定字符串,哪个位置开始替换,替换几个字符,替换成什么)
替换掉单元格的字符串,清洗使用较多。
MySQL中有同名函数,Python中有同名函数。
Substitute
和replace接近,区别是替换为全局替换,没有起始位置的概念
Left/Right/Mid
=Mid(指定字符串,开始位置,截取长度)
截取字符串中的字符。Left/Right(指定字符串,截取长度)。left为从左,right为从右,mid如上文示意。
MySQL中有同名函数。
Len/Lenb
返回字符串的长度,在len中,中文计算为一个,在lenb中,中文计算为两个。
MySQL中有同名函数,Python中有同名函数。
Find
=Find(要查找字符,指定字符串,第几个字符)
查找某字符串出现的位置,可以指定为第几次出现,与Left/Right/Mid结合能完成简单的文本提取
MySQL中有近似函数 find_in_set,Python中有同名函数。
Search
和Find类似,区别是Search大小写不敏感,但支持*通配符
Text
将数值转化为指定的文本格式,可以和时间序列函数一起看
关联匹配类
Lookup
=Lookup(查找的值,值所在的位置,返回相应位置的值)
最被忽略的函数,功能性和Vlookup一样,但是引申有数组匹配和二分法。
Vlookup
=Vlookup( lookup_value ,table_array,col_index_num,[range_lookup] )
即= vlookup(找啥,在哪找,在他身上找什么,精确(false,0)找还是近似(true,1))
Index
=Index(查找的区域,区域内第几行,区域内第几列)
和Match组合,媲美Vlookup,但是功能更强大。
Match
=Match(查找指定的值,查找所在区域,查找方式的参数)
和Lookup类似,但是可以按照指定方式查找,比如大于、小于或等于。返回值所在的位置。
Index&Match组合必杀技:
Row
返回单元格所在的行
Column
返回单元格所在的列
Offset
=Offset(指定点,偏移多少行,偏移多少列,返回多少行,返回多少列)
建立坐标系,以坐标系为原点,返回距离原点的值或者区域。正数代表向下或向左,负数则相反。
逻辑运算类
数据分析中不得不用到逻辑运算,逻辑运算返回的均是布尔类型,True和False。很多复杂的数据分析会牵扯到较多的逻辑运算
IF
经典的如果但是,在后期的Python中,也会经常用到,当然会有许多更优雅的写法。也有ifs用法,取代if(and())的写法。
MySQL中有同名函数,Python中有同名函数。
And
全部参数为True,则返回True,经常用于多条件判断。
MySQL中有同名函数,Python中有同名函数。
Or
只要参数有一个True,则返回Ture,经常用于多条件判断。
MySQL中有同名函数,Python中有同名函数。
IS系列
常用判断检验,返回的都是布尔数值True和False。常用ISERR,ISERROR,ISNA,ISTEXT,可以和IF嵌套使用。
计算统计类
Sum/Sumif/Sumifs
=Sumif(条件区域,求和条件,实际求和区域),第二个求和条件参数在第一个条件区域里。
=Sumifs(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
sumifs(实际求和区域,第一个条件区域,第一个对应的求和条件,第二个条件区域,第二个对应的求和条件,第N个条件区域,第N个对应的求和条件)
统计满足条件的单元格总和,SQL有中同名函数。
MySQL中有同名函数,Python中有同名函数。
Sumproduct
统计总和相关,如果有两列数据销量和单价,现在要求卖出增加,用sumproduct是最方便的。
MySQL中有同名函数。
Count/Countif/Countifs
=Countif(条件区域,条件)
=COUNTIFS(条件匹配查询区域1,条件1,条件匹配查询区域2,条件2,以此类推......)
统计满足条件的字符串个数
MySQL中有同名函数,Python中有同名函数。
Max
返回数组或引用区域的最大值
MySQL中有同名函数,Python中有同名函数。
Min
返回数组或引用区域的最小值
MySQL中有同名函数,Python中有同名函数。
Rank
排序,返回指定值在引用区域的排名,重复值同一排名。
SQL中有近似函数row_number()
Rand/Randbetween
常用随机抽样,前者返回0~1之间的随机值,后者可以指定范围。
MySQL中有同名函数。
Averagea
求平均值,也有Averageaif,Averageaifs
MySQL中有同名函数,python有近似函数mean。
Quartile
=Quartile(指定区域,分位参数)
计算四分位数,比如1~100的数字中,25分位就是按从小到大排列,在25%位置的数字,即25。参数0代表最小值,参数4代表最大值,1~3对应25、50(中位数)、75分位
Stdev
求标准差,统计型函数,后续数据分析再讲到
Subtotal
=subtotal函数的语法是:SUBTOTAL(function_num,ref1,ref2, ...)
汇总型函数,将平均值、计数、最大最小、相乘、标准差、求和、方差等参数化,换言之,只要会了这个函数,上面的都可以抛弃掉了。
Int/Round
取整函数,int向下取整,round按小数位取数。
round(3.1415,2) =3.14 ;
round(3.1415,1)=3.1
时间序列类
专门用于处理时间格式以及转换,时间序列在金融、财务等数据分析中占有较大比重。时机序列的处理函数比我列举了还要复杂,比如时区、分片、复杂计算等。这里只做一个简单概述。
Year
返回日期中的年
MySQL中有同名函数。
Month
返回日期中的月
MySQL中有同名函数。
Weekday
=Weekday(指定时间,参数)
返回指定时间为一周中的第几天,参数为1代表从星期日开始算作第一天,参数为2代表从星期一开始算作第一天(中西方差异)。我们中国用2为参数即可。
Weeknum
=Weeknum(指定时间,参数)
返回一年中的第几个星期,后面的参数类同weekday,意思是从周日算还是周一。
MySQL中有近似函数 week。
Day
返回日期中的日(第几号)
MySQL中有同名函数。
Date
=Date(年,月,日)
时间转换函数,等于将year(),month(),day()合并
MySQL中有近似函数 date_format。
Now
返回当前时间戳,动态函数
MySQL中有同名函数。
Today
返回今天的日期,动态函数
MySQL中有同名函数。
Datedif
=Datedif(开始日期,结束日期,参数)
日期计算函数,计算两日期的差。参数决定返回的是年还是月等。
MySQL中有近似函数 DateDiff。