清洗處理類
主要是文本、格式以及臟數(shù)據(jù)的清洗和轉(zhuǎn)換捏检。很多數(shù)據(jù)并不是直接拿來(lái)就能用的,需要經(jīng)過數(shù)據(jù)分析人員的清理熊楼。數(shù)據(jù)越多,這個(gè)步驟花費(fèi)的時(shí)間越長(zhǎng)鲫骗。
Trim
清除掉字符串兩邊的空格。
MySQL有同名函數(shù)执泰,Python有近似函數(shù)strip。
Concatenate
=Concatenate(單元格1术吝,單元格2……)
合并單元格中的內(nèi)容,還有另一種合并方式是&排苍。"我"&"很"&"帥"=我很帥。當(dāng)需要合并的內(nèi)容過多時(shí)淘衙,concatenate的效率快也優(yōu)雅。
MySQL有近似函數(shù)concat幔翰。
=CONCATENATE(A1,A2,A3)=A1&A2&A3
=A1&””&A2&A3
Replace
=Replace(指定字符串西壮,哪個(gè)位置開始替換,替換幾個(gè)字符款青,替換成什么)
替換掉單元格的字符串,清洗使用較多。
MySQL中有同名函數(shù)饰及,Python中有同名函數(shù)。
Substitute
和replace接近燎含,區(qū)別是替換為全局替換,沒有起始位置的概念
Left/Right/Mid
=Mid(指定字符串绘梦,開始位置,截取長(zhǎng)度)
截取字符串中的字符卸奉。Left/Right(指定字符串,截取長(zhǎng)度)榄棵。left為從左,right為從右疹鳄,mid如上文示意。
MySQL中有同名函數(shù)尚辑。
=LEFT(A1,1):從第左邊開始取,取一個(gè)長(zhǎng)度杠茬。
=RIGHT(A1,1):從右邊開始取,取一個(gè)長(zhǎng)度瓢喉。
=MID(A1,2,1):從第二個(gè)開始取,取一個(gè)長(zhǎng)度栓票。
Len/Lenb
返回字符串的長(zhǎng)度愕够,在len中,中文計(jì)算為一個(gè)惑芭,在lenb中,中文計(jì)算為兩個(gè)遂跟。
MySQL中有同名函數(shù)婴渡,Python中有同名函數(shù)。
=LEN(C1)
=RIGHT(A1,LEN(A1)-1)
Find
=Find(要查找字符边臼,指定字符串假消,第幾個(gè)字符)
查找某字符串出現(xiàn)的位置,可以指定為第幾次出現(xiàn)富拗,與Left/Right/Mid結(jié)合能完成簡(jiǎn)單的文本提取
MySQL中有近似函數(shù)find_in_set,Python中有同名函數(shù)媒峡。
Search
和Find類似葵擎,區(qū)別是Search大小寫不敏感,但支持*通配符
Text
將數(shù)值轉(zhuǎn)化為指定的文本格式酬滤,可以和時(shí)間序列函數(shù)一起看
————
關(guān)聯(lián)匹配類
在進(jìn)行多表關(guān)聯(lián)或者行列比對(duì)時(shí)用到的函數(shù),越復(fù)雜的表用得越多盯串。多說(shuō)一句,良好的表習(xí)慣可以減少這類函數(shù)的使用体捏。
Lookup
=Lookup(查找的值,值所在的位置河泳,返回相應(yīng)位置的值)
最被忽略的函數(shù),功能性和Vlookup一樣拆挥,但是引申有數(shù)組匹配和二分法。
Vlookup
=Vlookup(查找的值纸兔,哪里找,找哪個(gè)位置的值汉矿,是否精準(zhǔn)匹配)
Excel第一大難關(guān),因?yàn)樯婕暗倪壿媽?duì)新手較復(fù)雜负甸,通俗的理解是查找到某個(gè)值然后黏貼過來(lái)流强。
=VLOOKUP(A12,B2:E8,2,0)
Tips:2代表要查詢的目標(biāo)值距離A12值得相對(duì)位置打月。0位精確匹配,1為模糊匹配奏篙。只能匹配從匹配值開始右邊的列。
Tips:通過“數(shù)據(jù)驗(yàn)證”工具將某個(gè)值變成下拉列表秘通。
Index
=Index(查找的區(qū)域,區(qū)域內(nèi)第幾行肺稀,區(qū)域內(nèi)第幾列)
和Match組合,媲美Vlookup话原,但是功能更強(qiáng)大。
Match
=Match(查找指定的值繁仁,查找所在區(qū)域,查找方式的參數(shù))
和Lookup類似黄虱,但是可以按照指定方式查找,比如大于捻浦、小于或等于。返回值所在的位置默勾。
Row
返回單元格所在的行
Column
返回單元格所在的列
Offset
=Offset(指定點(diǎn),偏移多少行母剥,偏移多少列,返回多少行环疼,返回多少列)
建立坐標(biāo)系,以坐標(biāo)系為原點(diǎn)炫隶,返回距離原點(diǎn)的值或者區(qū)域。正數(shù)代表向下或向右伪阶,負(fù)數(shù)則相反煞檩。
————
邏輯運(yùn)算類
數(shù)據(jù)分析中不得不用到邏輯運(yùn)算斟湃,邏輯運(yùn)算返回的均是布爾類型,True和False凝赛。很多復(fù)雜的數(shù)據(jù)分析會(huì)牽扯到較多的邏輯運(yùn)算
IF
經(jīng)典的如果但是,在后期的Python中墓猎,也會(huì)經(jīng)常用到,當(dāng)然會(huì)有許多更優(yōu)雅的寫法毙沾。也有ifs用法,取代if(and())的寫法左胞。
MySQL中有同名函數(shù)勇皇,Python中有同名函數(shù)焚刺。
=IF(A1<200,5%,IF(A1<1000,10%))
Tips:IF(判斷條件,成立值,不成立值)敛摘;用$(F4)鎖定不可變的值兄淫。
And
全部參數(shù)為True,則返回True捕虽,經(jīng)常用于多條件判斷。
MySQL中有同名函數(shù)泄私,Python中有同名函數(shù)。
Or
只要參數(shù)有一個(gè)True晌端,則返回Ture,經(jīng)常用于多條件判斷咧纠。
MySQL中有同名函數(shù),Python中有同名函數(shù)漆羔。
IS系列
常用判斷檢驗(yàn)梧奢,返回的都是布爾數(shù)值True和False亲轨。常用ISERR,ISERROR瓶埋,ISNA,ISTEXT养筒,可以和IF嵌套使用。
——
計(jì)算統(tǒng)計(jì)類
常用的基礎(chǔ)計(jì)算晕粪、分析、統(tǒng)計(jì)函數(shù)巫湘,以描述性統(tǒng)計(jì)為準(zhǔn)。具體含義在后續(xù)的統(tǒng)計(jì)章節(jié)再展開尚氛。
Sum/Sumif/Sumifs
統(tǒng)計(jì)滿足條件的單元格總和,SQL有中同名函數(shù)阅嘶。
MySQL中有同名函數(shù),Python中有同名函數(shù)讯柔。
=SUMIFS(C1:C12,A1:A2,”李*”,B1:B2,”員工”)
=SUMIF(A1:A2,”李*”,C1:C12)
Tips:SUMIFS把求和列寫在前面,條件在后面魂迄;SUMIF把條件寫在前面,求和列在后面
Sumproduct
統(tǒng)計(jì)總和相關(guān)捣炬,如果有兩列數(shù)據(jù)銷量和單價(jià),現(xiàn)在要求賣出增加湿酸,用sumproduct是最方便的蒜田。
MySQL中有同名函數(shù)。
Count/Countif/Countifs
統(tǒng)計(jì)滿足條件的字符串個(gè)數(shù)
MySQL中有同名函數(shù)冲粤,Python中有同名函數(shù)页眯。
=COUNTIFS(C2:C7,”>”&B3,C2:C7,”<5000”)
Tips:運(yùn)算符和單元格之間用&進(jìn)行連接。
Max
返回?cái)?shù)組或引用區(qū)域的最大值
MySQL中有同名函數(shù)窝撵,Python中有同名函數(shù)。
Min
返回?cái)?shù)組或引用區(qū)域的最小值
MySQL中有同名函數(shù)碌奉,Python中有同名函數(shù)寒砖。
MOD
取余操作,IF(MOD(A1,2)
Tips:IF(MOD(A1,2)=0,"偶數(shù)","奇數(shù)")
Rank
排序哩都,返回指定值在引用區(qū)域的排名,重復(fù)值同一排名漠嵌。
SQL中有近似函數(shù)row_number()。
Rand/Randbetween
常用隨機(jī)抽樣儒鹿,前者返回0~1之間的隨機(jī)值,后者可以指定范圍约炎。
MySQL中有同名函數(shù)。
Averagea
求平均值章钾,也有Averageaif热芹,Averageaifs
MySQL中有同名函數(shù)贱傀,python有近似函數(shù)mean府寒。
Quartile
=Quartile(指定區(qū)域,分位參數(shù))
計(jì)算四分位數(shù)株搔,比如1~100的數(shù)字中,25分位就是按從小到大排列纤房,在25%位置的數(shù)字,即25炮姨。參數(shù)0代表最小值捌刮,參數(shù)4代表最大值舒岸,1~3對(duì)應(yīng)25、50(中位數(shù))蛾派、75分位
Stdev
求標(biāo)準(zhǔn)差,統(tǒng)計(jì)型函數(shù)洪乍,后續(xù)數(shù)據(jù)分析再講到
Substotal
=Substotal(引用區(qū)域,參數(shù))
匯總型函數(shù)壳澳,將平均值、計(jì)數(shù)钾埂、最大最小、相乘褥紫、標(biāo)準(zhǔn)差、求和髓考、方差等參數(shù)化,換言之氨菇,只要會(huì)了這個(gè)函數(shù),上面的都可以拋棄掉了查蓉。
參數(shù):
1:AVERAGE101
2:COUNT102
3:COUNTA103
4:MAX104
5:MIN105
6:PRODUCT106
7:STDEV.S107
8:STDEV.P108
9:SUM109(隱藏和篩選時(shí)有區(qū)別,手動(dòng)隱藏單元格時(shí)使用109豌研,先篩選,后隱藏)
10:VAR.S110
11:VAR.P111
Int/Round
取整函數(shù)鹃共,int向下取整,round按小數(shù)位取數(shù)霜浴。
round(3.1415,2)=3.14;
round(3.1415,1)=3.1
Indirect
數(shù)據(jù)引用跳轉(zhuǎn)
————
時(shí)間序列類
專門用于處理時(shí)間格式以及轉(zhuǎn)換,時(shí)間序列在金融晌纫、財(cái)務(wù)等數(shù)據(jù)分析中占有較大比重。時(shí)機(jī)序列的處理函數(shù)比我列舉了還要復(fù)雜缸匪,比如時(shí)區(qū)、分片凌蔬、復(fù)雜計(jì)算等。這里只做一個(gè)簡(jiǎn)單概述砂心。
Year
返回日期中的年
MySQL中有同名函數(shù)。
Month
返回日期中的月
MySQL中有同名函數(shù)辩诞。
Weekday
=Weekday(指定時(shí)間,參數(shù))
返回指定時(shí)間為一周中的第幾天译暂,參數(shù)為1代表從星期日開始算作第一天,參數(shù)為2代表從星期一開始算作第一天(中西方差異)外永。我們中國(guó)用2為參數(shù)即可。
MySQL中有同名函數(shù)伯顶。
Weeknum
=Weeknum(指定時(shí)間,參數(shù))
返回一年中的第幾個(gè)星期祭衩,后面的參數(shù)類同weekday,意思是從周日算還是周一掐暮。
MySQL中有近似函數(shù)week。
Day
返回日期中的日(第幾號(hào))
MySQL中有同名函數(shù)劫乱。
Date
=Date(年锥涕,月衷戈,日)
時(shí)間轉(zhuǎn)換函數(shù)层坠,等于將year(),month()破花,day()合并
MySQL中有近似函數(shù)date_format疲吸。
Now
返回當(dāng)前時(shí)間戳前鹅,動(dòng)態(tài)函數(shù)
MySQL中有同名函數(shù)。
Today
返回今天的日期舰绘,動(dòng)態(tài)函數(shù)
MySQL中有同名函數(shù)。
Datedif
=Datedif(開始日期捂寿,結(jié)束日期,參數(shù))
日期計(jì)算函數(shù)秦陋,計(jì)算兩日期的差。參數(shù)決定返回的是年還是月等驳概。
MySQL中有近似函數(shù)DateDiff。