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)容過多時(shí),concatenate的效率快
MySQL有近似函數(shù)concat
Replace
新字符串替換舊字符串,而且替換的位置和數(shù)量都是指定的
具體操作
=Replace(指定字符串,哪個(gè)位置開始替換,替換字符數(shù),"新文本")
MySQL中有同名函數(shù),Python中有同名函數(shù)。
Substitute
和replace接近,區(qū)別是替換為全局替換,沒有起始位置的概念
=substitute(需要替換的文本,舊文本,新文本,第N個(gè)舊文本)
ps:substitute函數(shù)經(jīng)常用來去掉文本之間的空格
輸入公式=SUBSTITUTE(A1," ","")
我?愛?你? 我愛你
輸入公式=SUBSTITUTE(A1," ","",1)
我 愛 你? 我愛 你
Left/Right/Mid
幫助我們?nèi)〉媚硞€(gè)數(shù)值或者文本數(shù)據(jù)中我們需要特定值。left是從左邊的第一位開始取值,right從右邊開始取值,mid則從指定位置開始取值。
操作
123456789
LEFT(123456789, 2)? 得到 12
right(12345678,3)?得到 678
=MID(12345678,2,3)?得到 234
組合應(yīng)用
從按照時(shí)間自動(dò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(要查找字符,指定字符串,第幾個(gè)字符[一般都省略就是1])
Left(用來提取所需字符串的區(qū)域,從左邊數(shù)所提取的字符串長度)
Search
Find函數(shù)是精確查找,區(qū)分大小寫。Search函數(shù)是模糊查找,不區(qū)分大小寫。
search函數(shù)的參數(shù)find_text可以使用通配符“*”,“?”。
通配符——星號“*”可代表任何字符串,所以返回1
如果參數(shù)find_text就是問號或星號,則必須在這兩個(gè)符號前加上“~”符號
關(guān)聯(lián)匹配類
在進(jìn)行多表關(guān)聯(lián)或者行列比對時(shí)用到的函數(shù),越復(fù)雜的表用得越多。
Lookup
=Lookup(查找的值,值所在的位置,返回相應(yīng)位置的值)
注意:
lookup函數(shù)的使用要求查詢條件按照升序排列,所以該函數(shù)之前需要對表格進(jìn)行排序處理。
查詢的條件可以高于查詢條件列的最大值,但是不能低于查詢條件列的最小值。
Vlookup
=Vlookup(查找的值,哪里找,找哪個(gè)位置的值,是否精準(zhǔn)匹配一般是0)
注意:
查找必須從開始列起,位置值也是從開始那列算起
入門應(yīng)用:查找
VLOOKUP函數(shù)查找時(shí)出現(xiàn)錯(cuò)誤值的幾個(gè)原因
A、實(shí)在是沒有所要查找到的值
B、查找的字符串或被查找的字符中含有空格或看不見的空字符,驗(yàn)證方法是用=號對比一下,如果結(jié)果是FALSE,就表示兩個(gè)單元格看上去相同,其實(shí)結(jié)果不同。
C、參數(shù)設(shè)置錯(cuò)誤。VLOOKUP的最后一個(gè)參數(shù)沒有設(shè)置成1或者是沒有設(shè)置掉。第二個(gè)參數(shù)數(shù)據(jù)源區(qū)域,查找的值不是區(qū)域的第一列,或者需要反回的字段不在區(qū)域里,參數(shù)設(shè)置在入門講里已注明,請參閱。
D、數(shù)值格式不同,如果查找值是文本,被查找的是數(shù)字類型,就會查找不到。解決方法是把查找的轉(zhuǎn)換成文本或數(shù)值,轉(zhuǎn)換方法如下:
文本轉(zhuǎn)換成數(shù)值:*1或--或/1
數(shù)值轉(zhuǎn)抱成文本:&""
進(jìn)階應(yīng)用:多條件同時(shí)查找
結(jié)合
COLUMNS(A1) 返回值1 返回指定單元格的列數(shù)
ROW返回行號
應(yīng)用:模糊查找
VLOOKUP的第一個(gè)參數(shù)允許使用通配符“*”來表示包含的意思,把*放在字符的兩邊,即"*" & 字符 & "*"
Vlookup的反向查找
一般情況下,VLOOKUP函數(shù)只能從左向右查找。但如果需要從右向右查找,則需要把區(qū)域進(jìn)行“乾坤大挪移”,把列的位置用數(shù)組互換一下。
VLOOKUP(A9,IF({1,0},B2:B5,A2:A5),2,0)
IF({1,0},B2:B5,A2:A5? 代表B A數(shù)列
整個(gè)代表在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ū)域的引用。返回的引用可以是一個(gè)單元格也可以是一個(gè)區(qū)域。并且可以引用指定行列數(shù)的區(qū)域。
以區(qū)域做參考系
最后的1,1?可以省略
以區(qū)域做參考系
邏輯運(yùn)算類
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é)果給計(jì)算出來
注意:
1.條件值或表達(dá)式,最多為30個(gè)。
2.Logical1,Logical2,Logical3……:參數(shù)必須是邏輯參數(shù),否則會出錯(cuò)。
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ì)類
sum/Sumif/Sumifs/SUMPRODUCT
統(tǒng)計(jì)滿足條件的單元格總和,SQL有中同名函數(shù)。
MySQL中有同名函數(shù),Python中有同名函數(shù)。
SUM:計(jì)算單元格區(qū)域中數(shù)值的和
SUMIF:對滿足一個(gè)條件的單元格求和
SUMIF(range,criteria,sum_range),
其中,range是原表中用于條件判斷的區(qū)域,criteria是求和的條件與區(qū)域,sum_range是需要求和的區(qū)域。
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ù)。
Max
返回?cái)?shù)組或引用區(qū)域的最大值
MySQL中有同名函數(shù),Python中有同名函數(shù)。
Min
返回?cái)?shù)組或引用區(qū)域的最小值
MySQL中有同名函數(shù),Python中有同名函數(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對應(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ù)化,換言之,只要會了這個(gè)函數(shù),上面的都可以拋棄掉了。
Int/Round
取整函數(shù),int向下取整,round按小數(shù)位取數(shù)。
round(3.1415,2) =3.14 ;
round(3.1415,1)=3.1