Reference:七周數(shù)據(jù)分析師-excel
excel中的絕對引用和相對引用
A.清洗處理類
主要是文本、格式以及臟數(shù)據(jù)的清洗和轉換。很多數(shù)據(jù)并不是直接拿來就能用的,需要經(jīng)過數(shù)據(jù)分析人員的清理。數(shù)據(jù)越多,這個步驟花費的時間越長。
(1)Trim ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel-trim的用法
清除掉字符串兩邊的空格。
MySQL有同名函數(shù),Python有近似函數(shù)strip。
(2)Concatenate ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel-concatenate
=Concatenate(單元格1,單元格2……)
合并單元格中的內(nèi)容,還有另一種合并方式是& 。"我"&"很"&"帥" = 我很帥。當需要合并的內(nèi)容過多時,concatenate的效率快也優(yōu)雅。
MySQL有近似函數(shù)concat。
(3)Replace ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:?excel-replace
=Replace(指定字符串,哪個位置開始替換,替換幾個字符,替換成什么)
替換掉單元格的字符串,清洗使用較多。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(4)Substitute ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:substitute
和replace接近,區(qū)別是替換為全局替換,沒有起始位置的概念
(5)Left/Right/Mid ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-left
=Mid(指定字符串,開始位置,截取長度)
截取字符串中的字符。Left/Right(指定字符串,截取長度)。left為從左,right為從右,mid如上文示意。
MySQL中有同名函數(shù)。
(6)Len/Lenb ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
返回字符串的長度,在len中,中文計算為一個,在lenb中,中文計算為兩個。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(7)Find ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 百度經(jīng)驗: ?excel-find
=Find(要查找字符,指定字符串,第幾個字符)
查找某字符串出現(xiàn)的位置,可以指定為第幾次出現(xiàn),與Left/Right/Mid結合能完成簡單的文本提取
MySQL中有近似函數(shù) find_in_set,Python中有同名函數(shù)。
(8)Search ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-search
和Find類似,區(qū)別是Search大小寫不敏感,但支持*通配符
(9)Text ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-text
將數(shù)值轉化為指定的文本格式,可以和時間序列函數(shù)一起看
關聯(lián)匹配類
在進行多表關聯(lián)或者行列比對時用到的函數(shù),越復雜的表用得越多。多說一句,良好的表習慣可以減少這類函數(shù)的使用。
(1)Lookup ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-lookup
=Lookup(查找的值,值所在的位置,返回相應位置的值)
最被忽略的函數(shù),功能性和Vlookup一樣,但是引申有數(shù)組匹配和二分法。
(2)Vlookup ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗: excel-vlookup
=Vlookup(查找的值,哪里找,找哪個位置的值,是否精準匹配)
Excel第一大難關,因為涉及的邏輯對新手較復雜,通俗的理解是查找到某個值然后黏貼過來。
(3)Index ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-index
=Index(查找的區(qū)域,區(qū)域內(nèi)第幾行,區(qū)域內(nèi)第幾列)
和Match組合,媲美Vlookup,但是功能更強大。
(4)Match ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel-match
=Match(查找指定的值,查找所在區(qū)域,查找方式的參數(shù))
和Lookup類似,但是可以按照指定方式查找,比如大于、小于或等于。返回值所在的位置。
(5)Row ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-row
返回單元格所在的行
(6)Column
返回單元格所在的列
(7)Offset ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel-offset
=Offset(指定點,偏移多少行,偏移多少列,返回多少行,返回多少列)
建立坐標系,以坐標系為原點,返回距離原點的值或者區(qū)域。正數(shù)代表向下或向右,負數(shù)則相反。
邏輯運算類
數(shù)據(jù)分析中不得不用到邏輯運算,邏輯運算返回的均是布爾類型,True和False。很多復雜的數(shù)據(jù)分析會牽扯到較多的邏輯運算
(1)IF ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:?excel-if
經(jīng)典的如果但是,在后期的Python中,也會經(jīng)常用到,當然會有許多更優(yōu)雅的寫法。也有ifs用法,取代if(and())的寫法。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(2)And ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-and
全部參數(shù)為True,則返回True,經(jīng)常用于多條件判斷。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(3)Or ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-or
只要參數(shù)有一個True,則返回Ture,經(jīng)常用于多條件判斷。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(4)IS系列 ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-is系列
常用判斷檢驗,返回的都是布爾數(shù)值True和False。常用ISERR,ISERROR,ISNA,ISTEXT,可以和IF嵌套使用。
計算統(tǒng)計類
常用的基礎計算、分析、統(tǒng)計函數(shù),以描述性統(tǒng)計為準。具體含義在后續(xù)的統(tǒng)計章節(jié)再展開。
(1)Sum/Sumif/Sumifs ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
百度經(jīng)驗:excel-sumif? ? ? ?excel-sum? ?excel-sumifs
統(tǒng)計滿足條件的單元格總和,SQL有中同名函數(shù)。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(2)Sumproduct ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-sumproduct
統(tǒng)計總和相關,如果有兩列數(shù)據(jù)銷量和單價,現(xiàn)在要求賣出增加,用sumproduct是最方便的。
MySQL中有同名函數(shù)。
(3)Count/Countif/Countifs ? 百度經(jīng)驗:excel-countif? ? ? ? ? ?excel-count
統(tǒng)計滿足條件的字符串個數(shù)
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(4)Max ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-max
返回數(shù)組或引用區(qū)域的最大值
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(5)Min ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:
返回數(shù)組或引用區(qū)域的最小值
MySQL中有同名函數(shù),Python中有同名函數(shù)。
(6)Rank ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel-rank
排序,返回指定值在引用區(qū)域的排名,重復值同一排名。
SQL中有近似函數(shù)row_number() 。
(7)Rand/Randbetween ? ?百度經(jīng)驗:excel-rand? ? ??excel-randbetween
常用隨機抽樣,前者返回0~1之間的隨機值,后者可以指定范圍。
MySQL中有同名函數(shù)。
(8)Averagea ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-average和averagea區(qū)別
求平均值,也有Averageaif,Averageaifs
MySQL中有同名函數(shù),python有近似函數(shù)mean。
區(qū)別average函數(shù)和averagea函數(shù),averagea函數(shù)的作用是求數(shù)值的算術平均值,功能與average相同,計算規(guī)則上有少許不同。
(9)Quartile
=Quartile(指定區(qū)域,分位參數(shù))
計算四分位數(shù),比如1~100的數(shù)字中,25分位就是按從小到大排列,在25%位置的數(shù)字,即25。參數(shù)0代表最小值,參數(shù)4代表最大值,1~3對應25、50(中位數(shù))、75分位
(10)Stdev? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-stdev
求標準差,統(tǒng)計型函數(shù),后續(xù)數(shù)據(jù)分析再講到
(11)Substotal ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-subtotal ? ? ? ? ? ? ? ? ? ??
=Substotal(引用區(qū)域,參數(shù))
匯總型函數(shù),將平均值、計數(shù)、最大最小、相乘、標準差、求和、方差等參數(shù)化,換言之,只要會了這個函數(shù),上面的都可以拋棄掉了。
(12)Int/Round
取整函數(shù),int向下取整,round按小數(shù)位取數(shù)。
round(3.1415,2) =3.14 ;
round(3.1415,1)=3.1
時間序列類
專門用于處理時間格式以及轉換,時間序列在金融、財務等數(shù)據(jù)分析中占有較大比重。時機序列的處理函數(shù)比我列舉了還要復雜,比如時區(qū)、分片、復雜計算等。這里只做一個簡單概述。
(1)Year ? ? ? ? ? ? ? ? ? ? ? ? ? ? 百度經(jīng)驗:excel-year,month,day
返回日期中的年
MySQL中有同名函數(shù)。
(2)Month
返回日期中的月
MySQL中有同名函數(shù)。
(3)Weekday ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel-weekday
=Weekday(指定時間,參數(shù))
返回指定時間為一周中的第幾天,參數(shù)為1代表從星期日開始算作第一天,參數(shù)為2代表從星期一開始算作第一天(中西方差異)。我們中國用2為參數(shù)即可。
MySQL中有同名函數(shù)。
(4)Weeknum
=Weeknum(指定時間,參數(shù))
返回一年中的第幾個星期,后面的參數(shù)類同weekday,意思是從周日算還是周一。
MySQL中有近似函數(shù) week。
(5)Day
返回日期中的日(第幾號)
MySQL中有同名函數(shù)。
(6)Date ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??百度經(jīng)驗:excel_date
=Date(年,月,日)
時間轉換函數(shù),等于將year(),month(),day()合并
MySQL中有近似函數(shù)date_format。
(7)Now ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel_now
返回當前時間戳,動態(tài)函數(shù)
MySQL中有同名函數(shù)。
(8)Today
返回今天的日期,動態(tài)函數(shù)
MySQL中有同名函數(shù)。
(9)Datedif ? ? ? ? ? ? ? ? ? ? ? ? ? ?百度經(jīng)驗:excel--datedif
=Datedif(開始日期,結束日期,參數(shù))
日期計算函數(shù),計算兩日期的差。參數(shù)決定返回的是年還是月等。
MySQL中有近似函數(shù)DateDiff。