資料分析常用的Excel函式
Excel是我們工作中經常使用的一種工具,對於資料分析來說,這也是處理資料最基礎的工具。
本文對資料分析需要用到的函式做了分類,並且有詳細的例子說明,文章已做了書籤處理,點選可跳轉至相應位置。
函式分類:
-
關聯匹配類
-
清洗處理類
-
邏輯運算類
-
計算統計類
-
時間序列類
一、關聯匹配類
經常性的,需要的資料不在同一個excel表或同一個excel表不同sheet中,資料太多,copy麻煩也不準確,如何整合呢?這類函式就是用於多表關聯或者行列比對時的場景,而且表越複雜,用得越多。
包含函式:VLOOKUP、HLOOKUP、INDEX、MATCH、RANK、Row、Column、Offset
1、VLOOKUP
功能:用於查詢首列滿足條件的元素。
語法:=VLOOKUP(要查詢的值,要在其中查詢值的區域,區域中包含返回值的列號,精確匹配(0)或近似匹配(1) )。
(1) 單表查詢
把選手Tian的戰隊找到之後,接下來把滑鼠放到G8單元格右下角位置,出現十字元號後往下拉,Excel會根據單元格的變化自動填充G9和G10單元格的公式。
(2) 跨多工作表查詢
假設我有一個工資表格檔案,裡面每個部門有一張表,有4個部門對應的部門工資表和一個需要查詢工資的查詢表,為方便說明這裡的姓名取方便識別的編號,你也可以用真正的姓名。
在查詢表中,要求根據提供的姓名,從銷售~人事4個工作表中查詢該員工的基本工資。
如果,我們知道A1是銷售部的,那麼公式可以寫為:=VLOOKUP(A2,銷售!A:C,3,0)
如果,我們知道A1可能在銷售或財務表這2個表中,公式可以寫為:=IFERROR(VLOOKUP(A2,銷售!A:C,3,0),VLOOKUP(A2,財務!A:C,3,0))
意思是,如果在銷售表中查詢不到(用IFERROR函式判斷),則去財務表中再查詢。
如果,我們知道A1可能在銷售、財務或服務表中,公式可以再次改為:=IFERROR(VLOOKUP(A2,銷售!A:C,3,0),IFERROR(VLOOKUP(A2,財務!A:C,3,0),VLOOKUP(A2,服務!A:C,3,0)))
如果,有更多的表,如本例中4個表,那就一層層的套用下去,如果4個表都查不到就設定為"無此人資訊":=IFERROR(VLOOKUP(A2,銷售!A:C,3,0),IFERROR(VLOOKUP(A2,財務!A:C,3,0),IFERROR(VLOOKUP(A2,服務!A:C,3,0),IFERROR(VLOOKUP(A2,人事!A:C,3,0),"無此人資訊"))))
2、HLOOKUP
當查詢的值位於查詢範圍的首行,並且返回的值在查詢範圍的第幾行,可以使用 hlookup 函式
語法:=HLOOKUP(要查詢的值,查詢的範圍,返回的值在查詢範圍的第幾行,精確匹配(0)或近似匹配(1) )。
區別:HLOOKUP按行查詢,返回的值與需要查詢的值在同一列上,VLOOKUP按列查詢,返回的值與需要查詢的值在同一行上。
3、INDEX
在Excel中,除了VLOOKUP函式常用來查詢引用外,INDEX函式和MATCH函式組合也可用來做查詢引用工作,這組函式有效彌補了VLOOKUP函式查詢目標不在查詢範圍資料首列的缺陷。
功能:返回表格或區域中的值。
語法:= INDEX(要返回值的單元格區域或陣列,所在行,所在列)
4、MATCH
功能:用於返回指定內容在指定區域(某行或者某列)的位置。
語法:= MATCH (要查詢的值,查詢的區域,查詢方式),查詢方式0為等於查詢值,1為小於查詢值,-1為大於查詢值
5、RANK
功能:求某一個數值在某一區域內的數值排名。
語法:=RANK(參與排名的數值, 排名的數值區域, 排名方式-0是降序-1是升序-預設為0)。
6、Row
功能:返回單元格所在的行
語法:ROW()或ROW(某個單元格)
7、Column
功能:返回單元格所在的列
語法:COLUMN()或COLUMN(某個單元格)
8、Offset
功能:從指定的基準位置按行列偏移量返回指定的引用
語法:=Offset(指定點,偏移多少行(正數向下,負數向上),偏移多少列(正數向右,負數向左),返回多少行,返回多少列)
二、清洗處理類
資料處理之前,需要對提取的資料進行初步清洗,如清除字串空格,合併單元格、替換、擷取字串、查詢字串出現的位置等。
-
清除字串前後空格:使用Trim
-
合併單元格:使用concatenate
-
擷取字串:使用Left/Right/Mid
-
替換單元格中內容:Replace/Substitute
-
查詢文字在單元格中的位置:Find/Search
- 獲取字元長度:Len/Lenb
9、Trim
功能:主要用於把單元格內容前後的空格去掉,但並不去除字元之間的空格,如果是想要去掉所有的空格,需要用substitute函式。。
語法:=TRIM(單元格)
10、concatenate
語法:=Concatenate(單元格1,單元格2……)
合併單元格中的內容,還有另一種合併方式是&,需要合併的內容過多時,concatenate效率更快。
11、Left
功能:從左擷取字串
語法:=Left(值所在單元格,擷取長度)
12、Right
功能:從右擷取字串
語法:= Right (值所在單元格,擷取長度)
13、Mid
功能:從中間擷取字串
語法:= Mid(指定字串,開始位置,擷取長度)
Text函式表示將數值轉化為自己想要的文字格式,語法=TEXT(value,format_text)
14、Replace
功能:替換掉單元格的字串
語法:=Replace(指定字串,哪個位置開始替換,替換幾個字元,替換成什麼)
15、Substitute
和replace接近,不同在於Replace根據位置實現替換,需要提供從第幾位開始替換,替換幾位,替換後的新的文字;
而Substitute根據文字內容替換,需要提供替換的舊文字和新文字,以及替換第幾個舊文字等。因此Replace實現固定位置的文字替換,Substitute實現固定文字替換。
16、Find
功能:查詢文字位置
語法:=Find(要查詢字元,指定字串,從第幾個字元開始查起)
17、Search
功能:返回一個指定字元或文字字串在字串中第一次出現的位置 ,從左到右查詢
語法:=search(要查詢的字元,字元所在的文字,從第幾個字元開始查詢)
Find和Search這兩個函式功能幾乎相同,實現查詢字元所在的位置,區別在於Find函式精確查詢,區分大小寫;Search函式模糊查詢,不區分大小寫。
18、Len
功能:返回字串的字元數
語法:=LEN(字串)
字串是指包含數字、字母、符號等的一串字元。
19、Lenb
功能:返回字串的位元組數。
區別在於,len是按字元數計算的,lenb是按位元組數計算的。數字、字母、英文、標點符號(半形狀態下輸入的哦)都是按1計算的,漢字、全形狀態下的標點符號,每個字元按2計算。
綜合應用
三、邏輯運算類
IF AND OR
20、IF
功能:使用邏輯函式 IF 函式時,如果條件為真,該函式將返回一個值;如果條件為假,函式將返回另一個值。
語法:=IF(條件, true時返回值, false返回值)
21、AND
功能:邏輯判斷,相當於“並”。
語法:全部引數為True,則返回True,經常用於多條件判斷。
22、OR
功能:邏輯判斷,相當於“或”。
語法:只要引數有一個True,則返回Ture,經常用於多條件判斷。
四、計算統計類
在利用excel表格統計資料時,常常需要使用各種excel自帶的公式,也是最常使用的一類。重要性不言而喻。不過excel都自帶快捷功能。
-
MIN函式:找到某區域中的最小值
-
MAX函式:找到某區域中的最大值
-
AVERAGE函式:計算某區域中的平均值
-
COUNT函式: 計算某區域中包含數字的單元格的數目
-
COUNTIF函式:計算某個區域中滿足給定條件的單元格數目
-
COUNTIFS函式:統計一組給定條件所指定的單元格數
-
SUM函式:計算單元格區域中所有數值的和
-
SUMIF函式:對滿足條件的單元格求和
-
SUMPRODUCT函式:返回相應的陣列或區域乘積的和
- STDEV函式:求標準差
- SUBTOTAL函式:彙總型函式,將平均值、計數、最大最小、相乘、標準差、求和、方差等引數化
- INT/ROUND函式:取整函式,int向下取整,round按小數位取數。
23、MIN
功能:找到某區域中的最小值
24、MAX
功能:找到某區域中的最大值
25、AVERAGE
功能:計算某區域中的平均值
26、COUNT
功能:計算純數字的單元格的個數。
27、COUNTIF
功能:計算某個區域中滿足給定條件的單元格數目
語法:=COUNTIF(單元格1: 單元格2 ,條件)
28、COUNTIFS
功能:統計一組給定條件所指定的單元格數
語法:=COUNTIFS(第一個條件區域,第一個對應的條件,第二個條件區域,第二個對應的條件,第N個條件區域,第N個對應的條件)
29、SUM
計算單元格區域中所有數值的和
30、SUMIF
功能:求滿足條件的單元格和
語法:=SUMIF(單元格1: 單元格2 ,條件,單元格3: 單元格4)
31、SUMPRODUCT
功能:返回相應的陣列或區域乘積的和
語法: =SUMPRODUCT(單元格1: 單元格2 ,單元格3: 單元格4)
32、Stdev
統計型函式,求標準差,衡量離散程度。
33、Subtotal
語法:=Subtotal(引數,區域)
彙總型函式,將平均值、計數、最大最小、相乘、標準差、求和、方差等引數化,換言之,只要會了這個函式,上面的都可以拋棄掉了。
為 1 到 11(包含隱藏值)或 101 到 111(忽略隱藏值)之間的數字,指定使用何種函式在列表中進行分類彙總計算。
1 AVERAGE(算術平均值) 2 COUNT(數值個數) 3 COUNTA(非空單元格數量) 4 MAX(最大值) 5 MIN(最小值) 6 PRODUCT(括號內所有資料的乘積) 7 STDEV(估算樣本的標準偏差) 8 STDEVP(返回整個樣本總體的標準偏差) 9 SUM(求和) 10 VAR(計算基於給定樣本的方差) 11 VARP(計算基於整個樣本總體的方差)
34、Int/Round
取整函式,int取整(去掉小數),round按小數位取數(四捨五入)。
語法:ROUND(數值, 位數)
round(3.1415,2)=3.14 ;
round(3.1415,1)=3.1
五、時間序列類
專門用於處理時間格式以及轉換。
-
TODAY函式:返回今天的日期,動態函式。
-
NOW函式:返回當前的時間,動態函式。
- YEAR函式:返回日期的年份。
- MONTH函式:返回日期的月份。
- DAY函式:返回以序列數表示的某日期的天數。
- WEEKDAY函式:返回對應於某個日期的一週中的第幾天。
- Datedif函式:計算兩個日期之間相隔的天數、月數或年數。
35、TODAY
功能:返回今天的日期,動態函式。
語法:=TODAY(),如不顯示應該是單元格格式問題,單元格格式應是常規或日期型
36、NOW
功能:返回當前的日期和時間,動態函式。
語法:=NOW()
37、YEAR
功能:返回日期的年份。
語法:=YEAR(日期)
38、MONTH
功能:返回日期的月份。
語法:=MONTH(日期)
39、DAY
功能:返回以序列數表示的某日期的天數。
語法:=DAY(日期)
40、WEEKDAY
功能:返回對應於某個日期的一週中的第幾天。 預設情況下, 1(星期日)到 7(星期六)範圍內的整數。
語法:=Weekday(指定時間,引數),引數設為2,則星期一為1,星期日為7
41、Datedif
功能:計算兩個日期之間相隔的天數、月數或年數。
語法:=Datedif(開始日期,結束日期,引數)
引數3:為所需資訊的返回時間單位程式碼。各程式碼含義如下:
"y"返回時間段中的整年數
"m”返回時間段中的整月數
"d"返回時間段中的天數
"md”引數1和2的天數之差,忽略年和月
"ym“引數1和2的月數之差,忽略年和日
"yd”引數1和2的天數之差,忽略年。按照月、日計算天數