excel函數(shù)學(xué)習(xí)
前期處理類
trim
去除空格,很多數(shù)據(jù)里面有空格对省,不方便處理
具體操作
選擇處理后的數(shù)據(jù)存放列,trim(需處理數(shù)據(jù))
PS:僅可去除字符串首尾空格炬藤,且中間會保留一位空格
MySQL有同名函數(shù),Python有近似函數(shù)strip
Concatenate
合并單元格中的內(nèi)容饺窿,還有另一種合并方式是&?
具體操作
xx&yy 得到 xxyy? ? ? xx&“-”&yy 得到 xx-yy
concatenate(xx,yy)得到 xxyy? ? concatenate(xx,"-",yy)得到 xx-yy
ps:當(dāng)需要合并的內(nèi)容過多時歧焦,concatenate的效率快
MySQL有近似函數(shù)concat
Replace
新字符串替換舊字符串,而且替換的位置和數(shù)量都是指定的
具體操作
=Replace(指定字符串肚医,哪個位置開始替換绢馍,替換字符數(shù),"新文本")
MySQL中有同名函數(shù)肠套,Python中有同名函數(shù)舰涌。
Substitute
和replace接近,區(qū)別是替換為全局替換你稚,沒有起始位置的概念
=substitute(需要替換的文本瓷耙,舊文本朱躺,新文本,第N個舊文本)
ps:substitute函數(shù)經(jīng)常用來去掉文本之間的空格
輸入公式=SUBSTITUTE(A1," ","")
我?愛?你? 我愛你
輸入公式=SUBSTITUTE(A1," ","",1)
我 愛 你? 我愛 你
Left/Right/Mid
幫助我們?nèi)〉媚硞€數(shù)值或者文本數(shù)據(jù)中我們需要特定值哺徊。left是從左邊的第一位開始取值室琢,right從右邊開始取值乾闰,mid則從指定位置開始取值落追。
操作
123456789
LEFT(123456789, 2)? 得到 12
right(12345678,3)?得到 678
=MID(12345678,2,3)?得到 234
組合應(yīng)用
從按照時間自動設(shè)置的編號“20150812145012”中提取年月日的數(shù)據(jù)
=LEFT(A2,4)&"年"&MID(A2,6,1)&"月"&MID(A2,7,2)&"日"
Find
查找某字符串出現(xiàn)的位置,可以指定為第幾次出現(xiàn)涯肩,與Left/Right/Mid結(jié)合能完成簡單的文本提取
操作
=Find(要查找字符轿钠,指定字符串,第幾個字符[一般都省略就是1])
Left(用來提取所需字符串的區(qū)域病苗,從左邊數(shù)所提取的字符串長度)
Search
Find函數(shù)是精確查找疗垛,區(qū)分大小寫。Search函數(shù)是模糊查找硫朦,不區(qū)分大小寫贷腕。
search函數(shù)的參數(shù)find_text可以使用通配符“*”,“咬展?”泽裳。
通配符——星號“*”可代表任何字符串,所以返回1
如果參數(shù)find_text就是問號或星號,則必須在這兩個符號前加上“~”符號
關(guān)聯(lián)匹配類
在進行多表關(guān)聯(lián)或者行列比對時用到的函數(shù)破婆,越復(fù)雜的表用得越多涮总。
Lookup
=Lookup(查找的值,值所在的位置祷舀,返回相應(yīng)位置的值)
注意:
lookup函數(shù)的使用要求查詢條件按照升序排列瀑梗,所以該函數(shù)之前需要對表格進行排序處理。
查詢的條件可以高于查詢條件列的最大值裳扯,但是不能低于查詢條件列的最小值抛丽。
Vlookup
=Vlookup(查找的值,哪里找饰豺,找哪個位置的值铺纽,是否精準匹配一般是0)
注意:
查找必須從開始列起,位置值也是從開始那列算起
入門應(yīng)用:查找
VLOOKUP函數(shù)查找時出現(xiàn)錯誤值的幾個原因
A哟忍、實在是沒有所要查找到的值
B狡门、查找的字符串或被查找的字符中含有空格或看不見的空字符,驗證方法是用=號對比一下锅很,如果結(jié)果是FALSE其馏,就表示兩個單元格看上去相同,其實結(jié)果不同爆安。
C叛复、參數(shù)設(shè)置錯誤。VLOOKUP的最后一個參數(shù)沒有設(shè)置成1或者是沒有設(shè)置掉。第二個參數(shù)數(shù)據(jù)源區(qū)域褐奥,查找的值不是區(qū)域的第一列咖耘,或者需要反回的字段不在區(qū)域里,參數(shù)設(shè)置在入門講里已注明撬码,請參閱儿倒。
D、數(shù)值格式不同呜笑,如果查找值是文本夫否,被查找的是數(shù)字類型,就會查找不到叫胁。解決方法是把查找的轉(zhuǎn)換成文本或數(shù)值凰慈,轉(zhuǎn)換方法如下:
文本轉(zhuǎn)換成數(shù)值:*1或--或/1
數(shù)值轉(zhuǎn)抱成文本:&""
進階應(yīng)用:多條件同時查找
結(jié)合
COLUMNS(A1) 返回值1 返回指定單元格的列數(shù)
ROW返回行號
應(yīng)用:模糊查找
VLOOKUP的第一個參數(shù)允許使用通配符“*”來表示包含的意思,把*放在字符的兩邊驼鹅,即"*" & 字符 & "*"
Vlookup的反向查找
一般情況下微谓,VLOOKUP函數(shù)只能從左向右查找。但如果需要從右向右查找输钩,則需要把區(qū)域進行“乾坤大挪移”豺型,把列的位置用數(shù)組互換一下。
VLOOKUP(A9,IF({1,0},B2:B5,A2:A5),2,0)
IF({1,0},B2:B5,A2:A5? 代表B A數(shù)列
整個代表在B列查找A9內(nèi)容张足,然后返回A的值
indirect
=INDIRECT(ref_text,[a1])
index
連續(xù)區(qū)域的引用
=index(array,row_num,column_num)
非連續(xù)區(qū)域的引用
=index((array_1,array_2,array_3....array_n),row_num,column_num,array_num) 触创,
MATCH
MATCH(lookup-value,lookup-array,match-type)
lookup-value:表示要在區(qū)域或數(shù)組中查找的值,可以是直接輸入的數(shù)組或單元格引用为牍。
lookup-array:表示可能包含所要查找的數(shù)值的連續(xù)單元格區(qū)域哼绑,應(yīng)為數(shù)組或數(shù)組引用。
match-type:表示查找方式碉咆,用于指定精確查找(查找區(qū)域無序排列)或模糊查找(查找區(qū)域升序排列)抖韩。取值為-1、1疫铜、0 茂浮。其中0為精確查找。
遇到反向壳咕,雙向等復(fù)雜的表格查找席揽,用INDEX+MATCH
offset
以指定的應(yīng)用為參考系,通過上下左右偏移得到新的區(qū)域的引用谓厘。返回的引用可以是一個單元格也可以是一個區(qū)域幌羞。并且可以引用指定行列數(shù)的區(qū)域。
以區(qū)域做參考系
最后的1,1?可以省略
以區(qū)域做參考系
邏輯運算類
IF
經(jīng)典的如果但是竟稳,在后期的Python中属桦,也會經(jīng)常用到熊痴,當(dāng)然會有許多更優(yōu)雅的寫法。
也有ifs用法聂宾,取代if(and())的寫法果善。
MySQL中有同名函數(shù),Python中有同名函數(shù)系谐。
And
全部參數(shù)為True巾陕,則返回True,經(jīng)常用于多條件判斷蔚鸥。
MySQL中有同名函數(shù)惜论,Python中有同名函數(shù)许赃。
and(logical1,logical2, ...)止喷,
其中Logical1, logical2為判斷條件
通過下拉填充公式就能快速把整列的考評結(jié)果給計算出來
注意:
1.條件值或表達式,最多為30個混聊。
2.Logical1,Logical2,Logical3……:參數(shù)必須是邏輯參數(shù)弹谁,否則會出錯。
Or
只要參數(shù)有一個True句喜,則返回Ture预愤,經(jīng)常用于多條件判斷。
MySQL中有同名函數(shù)咳胃,Python中有同名函數(shù)植康。
IS系列
常用判斷檢驗,返回的都是布爾數(shù)值True和False展懈。常用ISERR销睁,ISERROR,ISNA存崖,ISTEXT冻记,可以和IF嵌套使用。
計算統(tǒng)計類
sum/Sumif/Sumifs/SUMPRODUCT
統(tǒng)計滿足條件的單元格總和来惧,SQL有中同名函數(shù)冗栗。
MySQL中有同名函數(shù),Python中有同名函數(shù)供搀。
SUM:計算單元格區(qū)域中數(shù)值的和
SUMIF:對滿足一個條件的單元格求和
SUMIF(range隅居,criteria,sum_range)葛虐,
其中胎源,range是原表中用于條件判斷的區(qū)域,criteria是求和的條件與區(qū)域挡闰,sum_range是需要求和的區(qū)域乒融。
Sumproduct
統(tǒng)計總和相關(guān)掰盘,如果有兩列數(shù)據(jù)銷量和單價,現(xiàn)在要求賣出增加赞季,用sumproduct是最方便的愧捕。
MySQL中有同名函數(shù)。
Count/Countif/Countifs
統(tǒng)計滿足條件的字符串個數(shù)
MySQL中有同名函數(shù)申钩,Python中有同名函數(shù)次绘。
Max
返回數(shù)組或引用區(qū)域的最大值
MySQL中有同名函數(shù),Python中有同名函數(shù)撒遣。
Min
返回數(shù)組或引用區(qū)域的最小值
MySQL中有同名函數(shù)邮偎,Python中有同名函數(shù)。
Rank
排序义黎,返回指定值在引用區(qū)域的排名禾进,重復(fù)值同一排名。
SQL中有近似函數(shù)row_number() 廉涕。
Rand/Randbetween
常用隨機抽樣泻云,前者返回0~1之間的隨機值,后者可以指定范圍狐蜕。
MySQL中有同名函數(shù)宠纯。
Averagea
求平均值,也有Averageaif层释,Averageaifs
MySQL中有同名函數(shù)婆瓜,python有近似函數(shù)mean。
Quartile
=Quartile(指定區(qū)域贡羔,分位參數(shù))
計算四分位數(shù)廉白,比如1~100的數(shù)字中,25分位就是按從小到大排列治力,在25%位置的數(shù)字蒙秒,即25。參數(shù)0代表最小值宵统,參數(shù)4代表最大值晕讲,1~3對應(yīng)25、50(中位數(shù))马澈、75分位
Stdev
求標準差瓢省,統(tǒng)計型函數(shù),后續(xù)數(shù)據(jù)分析再講到
Substotal
=Substotal(引用區(qū)域痊班,參數(shù))
匯總型函數(shù)勤婚,將平均值、計數(shù)涤伐、最大最小馒胆、相乘缨称、標準差、求和祝迂、方差等參數(shù)化睦尽,換言之,只要會了這個函數(shù)型雳,上面的都可以拋棄掉了当凡。
Int/Round
取整函數(shù),int向下取整纠俭,round按小數(shù)位取數(shù)沿量。
round(3.1415,2) =3.14 ;
round(3.1415,1)=3.1