Excel搞定數據有妙招,超全函數合集(含解釋和案例)!

01

簡介

1.什麼是函數

可以把函數理解爲一個可以控制的黑箱子,輸入X到黑箱子中,他就會輸出Y,參數就是黑箱子的控制開關,打到不同的檔位,黑箱子會輸出不同的Y。

2.常見函數分類

  • 文本清洗函數

  • 關聯匹配函數

  • 邏輯運算函數

  • 計算統計函數

  • 時間序列函數

02

文本清洗函數

1.常用的文本清洗函數

  • 清除字符串空格:TRIM

  • 合併單元格:CONCATENATE

  • 截取字符串:LEFT / RIGHT / MID

  • 替換單元格中的內容:REPLACE / SUBSTITUTE

  • 查找文本在單元格中的位置:FIND / SEARCH

2.清除字符串空格

TRIM:清除字符串text左右的空格。

=TRIM(text)

清除A1單元格左右的空格

3.合併單元格

CONCATENATE:將幾個文本字符串合併爲一個文本字符串。

=CONCATENATE(text1, text2, ...)

合併字符串以及單元格內容

4.截取字符串

LEFT:從text中,提取num_chars個字符(從左開始)。

=LEFT(text, num_cahrs)

RIGHT:從text中,提取num_chars個字符(從右開始)。

=RIGHT(text, num_chars)

MID:從text中,從stat_num開始,提取num_chars個字符串。

=MID(text, start_num, num_chars)

例子:

在A2中從左開始提取2個字符

在A1中從右開始提取2個字符

在A1中,從位置3開始,提取2個字符

5.替換單元格中內容

REPLACE:替換指定位置,從“原字符串”的“開始位置”開始,選擇“字符個數”個,替換爲“新字符串”。

=REPLACE(原字符串, 開始位置, 字符個數, 新字符串)

例子:

從A1的位置1開始,選取4個字符串,替換爲新的字符串“2018”。

將2019替換爲2018

SUBSTITUTE:替換指定文本,在text中用new_text替換old_text,instance_num指定要替換第幾次出現的old_text,如果不指定則替換old_text。

=SUBSTITUTE(text, old_text, new_text, instance_num) 

例子:

用“k”替換A1中第二次出現的“應屆”

6.查找文本在單元格中的位置

FIND & SEARCH:從within_test中查找FIND_text,返回查找字符的起始位置編號。

=FIND(FIND_text, within_text, start_num)
=SEARCH(要查找字符, 字符所在的文本, 從第幾個字符開始查找)

FIND 和 SEARCH 兩個函數幾乎相同,區別在於FIND 精確查找,區分大小寫;SEARCH 模糊查找,不區分大小寫。

例子:

從A1中查找k,並返回第一個k的起始位置編號

03

關聯匹配函數

VLOOKUP 函數總共有4個參數,分別是:用誰去找、匹配對象範圍、返回第幾列、匹配方式(0/FALSE表示精確匹配,1/TRUE表示模糊匹配)。

1.四種查詢方式

  • 單條件查找

根據工號,將左邊檢索區域的“電腦銷售額”匹配到右邊對應位置,只需要使用VLOOKUP函數,結果存在則顯示對應的“電腦銷售額”;結果不存在則顯示#N/A。

=VLOOKUP(F2,$A$2:$D$55,4,0)

單條件查詢

注意:檢索關鍵字必須在檢索區域的第1列,也就是說如果是根據“姓名”檢索,那麼檢索區域應該從B列開始。

  • 反向查找

當檢索關鍵字不在檢索區域的第1列,可以使用虛擬數組公式IF來做一個調換。

=VLOOKUP(G2,IF({1,0},B2:B8,A2:A8),2,0)

反向查找

反向查找的固定公式用法:

=VLOOKUP(檢索關鍵字,IF({1,0},檢索關鍵字所在列,查找值所在列),2,0)

注意:其實反向查找除了檢索區域改成一個虛擬數組公式IF之外,其他和單條件查找沒有區別。

  • 多條件查詢

在匹配數據時,往往條件不是單一的,那麼就可以利用&將字段拼接起來,並且利用IF數組公式構建出一個虛擬的區域。

=VLOOKUP(F2&G2,IF({1,0},A2:A53&B2:B53,D2:D53),2,0)

多條件查找

注意:所有使用了數組的公式,不能直接回車,需要使用Ctrl+Shift+Enter,否則會出錯。

  • 查詢返回多列

COLUMN

查找返回多列需要用到另外一個輔助函數——COLUMN函數。

返回結果爲單元格引用的列數。例如:column(B1)返回值爲2,因爲B1爲第2列。

=COLUMN(待查詢單元格/區域)

需要注意的是第三個參數“返回第幾列”的寫法。

=VLOOKUP($G2,$A$2:$E$55,COLUMN(D1),0)

多條件查找

返回多列的固定公式用法:

=VLOOKUP(混合引用關鍵字,查找範圍,COLUMN(xx),0)

返回第幾列就用COLUMN函數引用第幾列的單元格即可。

HLOOKUP

=HLOOKUP(用誰去找, 匹配對象範圍, 返回第幾行, 匹配方式)

和VLOOKUP的區別:HLOOKUP返回的值與查找的值在同一列上,而VLOOKUP返回的值與查找的值在同一行上。

INDEX

返回數組array中指定索引的單元格的值。

=INDEX(array, Row_num, Column_num)

返回指定區域第2行第2列的單元格內容

MATCH

  • 功能:在區域內查找指定的值,返回第一個查找值的位置。

  • lookup_value:需要查找的值。

  • lookup_array:查找的區域。

  • match_type:-1、0或1,0表示查找等於lookup_value的值。

=MATCH(lookup_value, lookup_array, [match_type])

查找A1到A4中6的位置

Index & Match聯合使用 = VLookup

ROW & COLUMN

  • ROW:返回指定引用的行號。

  • COLUMN:返回指定引用的列號。

=ROW(reference)
=COLUMN(reference)

例子:

求C列爲第幾列

OFFSET

  • OFFSET:以指定的引用reference爲起點,按照偏移量偏移之後,返回值。

  • rows:向下偏移多少行。

  • columns:向右偏移多少列。

  • height:返回多少行。

  • width:返回多少列。

=OFFSET(reference, rows, columns, height, width)

例子:

A1向下偏移一行,向右偏移一列

計算返回的兩行兩列的和,如果不求和,則會報錯,因爲一個cell不能填充四個cell的內容。

HYPERLINK

HYPERLINK:創建一個超鏈接指向link_location,以friendly_name的字符串進行顯示,link_location可以是URL鏈接或文件路徑。

=HYPERLINK(link_location, friendly_name)

插入超鏈接

04

邏輯運算函數

一般用於條件運算,在Excel中,True代表數值1,False代表0。

IF

如果滿足判斷條件,則返回“真值”,否則返回“假值”。

=IF(判斷條件, 真值, 假值)
=IF(AND(條件1, 條件2), 真值, 假值)
=IF(OR(條件1, 條件2), 真值, 假值)

例子:

05

計算統計函數

1.求最值

MAX MIN

  • MAX:求某區域中的最大值。

  • MIN:求某區域中的最小值。

2.求數目

COUNT COUNTIF COUNTIFS

  • COUNT:計數

  • COUNTIF:單條件計數

  • COUNTIFS:多條件計數

=COUNTIF(區域, 條件)
=COUNTIFS(區域1, 條件1, [區域2, 條件2], ...)

例子:

單條件計數:

A1到A3中大於等於10的數量

多條件計數:

A1到A3中大於5小於10的數量

3.求和

SUM

功能:計算單元格區域中所有數值的和。

SUMIF

功能:求滿足條件的單元格的和。

=SUMIF(條件判斷區域, 判斷條件, 求和區域)

計算一班的總成績

SUMPRODUCT

將數組間的對應元素相乘,並返回乘積之和。

=SUMPRODUCT(array1, array2, ......)

例子:

如果只選取一列,和SUM一樣只是求和。

只選一列

選取多列,就會返回對應元素乘積之和。

選取多列

4.取整

INT ROUND

  • INT:向下取整

  • ROUND:四捨五入取整,num_digits指定精確到哪一位

=INT(number)
=ROUND(number, num_digits)

例子:

向下取整

0表示精確到個位數

06

排序

RANK

  • 功能:計算number在reference中排名

  • order:0或默認,則爲降序排列;其他數值則爲升序排列

=RANK(number, reference, order)

升序排列

07

描述統計

  • AVERAGEA:求算數平均值。

  • QUARTILE:求分位數。

  • STDEV:求標準差。

  • SUBTOTAL:該函數相當於以上幾個函數的彙總,通過輸入function_num參數,選擇不同的函數。

=SUBTOTAL(function_num, ref1, ref2, ...)

08

時間序列函數

時間的本質是數字。

YEAR MONTH DAY

分別返回日期序號的年、月、日。

=MONTH(日期序號)
=DAY(日期序號)

DAY

DATE

將year,month,day組合成一個日期,相當於這三個函數的逆操作。

=DATE(year, month, day)

DATE

WEEKDAY WEEKNUM

  • WEEKDAY:根據一個日期是星期幾來返回一個數字。

  • return_type:設置返回數字的規則。

WEEKNUM:根據一個日期是今年的第幾周來返回一個數字。 

=WEEKDAY(serial_number, return_type)
=WEEKNUM(serial_number, return_type)

例子:

2019/2/28屬於第九周星期四。

WEEKDAY

WEEKNUM

NOW TODAY

返回當前的時間,now精確到時間,today只精確到日期。

=NOW()
=TODAY()

End.

作者:數據醫生

來源:騰訊雲

本文爲轉載分享,如轉載請聯繫作者

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章