1. 程式人生 > >資料分析常用Excel函式

資料分析常用Excel函式

不寫一遍看來我是記不住了…………

預處理:

  • Trim(text):清除掉text兩邊的空格
  • Concatenate(text1,[text2], ...):將多個文字字串合併成一個
  • Replace(old_text,start_num, num_chars, new_text)=Replace(原字串,替換開始位置,替換字元個數,替換字串):將一個字串中的部分字元用另一個字串替換
  • Substitute(text,old_text, new_text, [instance_num])=Substitute(待替換的文字,舊文字,新文字,[替換第n次出現的舊文字]):將字串中的部分字元以新字串替換。

[instance_num]可選引數是數值形式,預設全部替換

  • Right(text,[num_chars])=Right(指定字串,[擷取長度]):從一個文字字元的最後一個字元開始返回指定個數的字元
  • Left同上,從第一個字元開始返回
  • Mid(text, start_num,num_chars):從文字字串中指定的起始位置起返回指定長度的字元
  • Len(text):返回文字字串中的字元個數,漢字算一個字元
  • Lenb(text):返回文字中所包含的字元數,漢字算兩個字元
  • Find(find_text,within_text, [start_num]):返回一個字串在另一個字串中出現的起始位置(區分大小寫)

[start_num]表示第幾位開始查詢,預設為1。

注意返回值為find_text在整個字串中的位置而不是從查詢位開始的位置。

  • Search(find_text,within_text, [start_num]):返回一個指定字元或文字字串在字串中第一次出現的位置,從左到右查詢(忽略大小寫)。與Find的區別是不區分大小寫且支援萬用字元*,*代表任意n個字元(n從0開始)
  • Text(value,format_text):根據指定的數值格式將數字轉換成文字。format_text參照單元格格式,常與時間序列一起用

關聯匹配:

  • Lookup(lookup_value,lookup_vector, [result_vector])=Lookup(查詢的值,查詢列,返回值所在列)

Lookup(lookup_value, array)=Lookup(查詢的值,查詢及返回值所在陣列)

從單行或單列或從陣列中查詢一個值。array的第一列為查詢列,最後一列為返回值所在列

  • Vlookup(要查詢的值、要在其中查詢值的區域、區域中包含返回值的列號、精確匹配或近似匹配– 指定為 0/FALSE 或 1/TRUE):搜尋表區域首列滿足條件的元素,確定待檢索單元格在區域中的行序號,再進一步返回選定單元格的值。
  • Index(array,row_num, [column_num])

Index (reference, row_num, [column_num], [area_num])

在給定的單元格區域中,返回特定行列交叉處單元格的值或引用。

row_num,[column_num]中只能省略一個,取0代表所有行/列;

reference可寫為(區域1,區域2,…),[area_num]指定第幾個區域。

  • Match(lookup_value,lookup_array, [match_type]):返回符合特定值特定順序的項在陣列中的相對位置。

[match_type]可取-1,0,1。

-1:查詢大於或等於 lookup_value 的最小值,lookup_array 引數中的值必須按降序排列;

0:查詢完全等於 lookup_value 的第一個值,lookup_array 引數中的值可按任何順序排列;

1:查詢小於或等於 lookup_value 的最大值,lookup_array 引數中的值必須以升序排序。

  • Row ([reference]):返回一個引用的行號。如果省略 reference,則假定是對函式 ROW 所在單元格的引用,Reference 不能引用多個區域
  • Column ([reference]):返回一引用的列號
  • Offset (reference, rows, cols, [height], [width]):以指定的引用為參照系,通過給定偏移量返回新的引用。

Rows:需要左上角單元格引用的向上或向下行數。Rows可為正數(這意味著在起始引用的下方)或負數(這意味著在起始引用的上方)。

Cols:需要結果的左上角單元格引用的從左到右的列數。Cols 可為正數或負數

高度:需要返回的引用的行高。 Height 必須為正數。

寬度:需要返回的引用的列寬。 Width 必須為正數。

如果省略 height 或 width,則假設其高度或寬度與 reference 相同。

邏輯運算:

  • If(logical_test,[value_if_true], [value_if_false]):判斷是否滿足某個條件,如果滿足返回一個值,不滿足返回另一個值

[value_if_true], [value_if_false]忽略則返回ture/false

  • And(logical1,[logical2], …):檢查是否所有引數均為true,若是返回true,否則返回false
  • Or(logical1,[logical2], …):若任一引數值為true即返回true,所有引數為false時返回false
  • Is系列:引數只有一個(value),返回皆為true/false

ISBLANK:值為空白單元格

ISERR:值為任意錯誤值(除去 #N/A

ISERROR:值為任意錯誤值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!)

ISLOGICAL:值為邏輯值

ISNA:值為錯誤值 #N/A(值不存在)

ISNONTEXT:值為不是文字的任意項。 (注意,此函式在值為空單元格時返回 TRUE)

ISNUMBER:值為數字

ISREF:值為引用

ISTEXT:值為文字

統計計算:

  • Sum(number1,[number2],…):計算單元格區域中所有數值的和
  • Sumif(range,criteria, [sum_range]):對滿足條件的單元格求和

Range:根據條件進行計算的單元格的區域。

Criteria:用於確定對哪些單元格求和的條件,其形式可以為數字、表示式、單元格引用、文字或函式。例如,條件可以表示為 32、">32"、B5、"32"、"蘋果" 或 TODAY()。(注意:任何文字條件或任何含有邏輯或數學符號的條件都必須使用雙引號 (") 括起來。 如果條件為數字,則無需使用雙引號。)

sum_range:要求和的實際單元格(如果要對未在 range 引數中指定的單元格求和)。如果省略 sum_range 引數,Excel 會對在 range 引數中指定的單元格(即應用條件的單元格)求和。

可以在 criteria 引數中使用萬用字元 (包括問號 (?) 和星號 (*))。問號匹配任意單個字元;星號匹配任意一串字元。如果要查詢實際的問號或星號,請在該字元前鍵入波形符 (~)。

sum_range 引數與 range 引數的大小和形狀可以不同。 求和的實際單元格通過以下方法確定:使用 sum_range 引數中左上角的單元格作為起始單元格,然後包括與 range 引數大小和形狀相對應的單元格。

  • Sumifs(sum_range,criteria_range1,criteria1, [criteria_range2, criteria2], ...):對一組給定條件指定的單元格求和

[criteria_rangeN, criteriaN]成對出現,表示[條件作用域,條件]

  • Sumproduct (array1, [array2],[array3], ...):在給定的幾組陣列中,將陣列間對應的元素相乘,並返回乘積之和。注意:陣列引數必須具有相同的維數
  • Count(value1,[value2],…):計算區域中包含數字的單元格的個數

如果引數為數字、日期或者代表數字的文字(例如,用引號引起的數字,如"1"),則將被計算在內。

邏輯值和直接鍵入到引數列表中代表數字的文字被計算在內。

如果引數是一個數組或引用,則只計算其中的數字。 陣列或引用中的空白單元格、邏輯值、文字或錯誤值將不計算在內。

  • Countif(range,criteria):計算某個區域中滿足給定條件的單元格數目
  • Countifs(criteria_range1,criteria1, [criteria_range2, criteria2],…):統計一組給定條件所指定的單元格數(同時滿足一組給定條件的資料條數)
  • Counta(value1,[value2],…):計算區域中非空單元格的個數
  • Countblank(range):計算某個區域中空單元格的數目,包含返回 ""(空文字)的公式的單元格也會計算在內
  • Max(number1,[number2],…):返回一組數值中的最大值,忽略邏輯值及文字
  • Maxa:不忽略邏輯值和字串
  • Min:返回一組數值中的最小值,忽略邏輯值及文字
  • Mina:不忽略邏輯值和字串
  • Rank (number,ref,[order])同Rank.EQ(number,ref,[order]):返回某數字在一列數字中相對於其他數值的大小排名,如果多個數值排名相同,則返回該組數值的最佳排名

Number:要找到其排位的數字。

Ref:數字列表的陣列,對數字列表的引用。 Ref 中的非數字值會被忽略。

Order:一個指定數字排位方式的數字。

如果 order 為 0(零)或省略,按照降序排列。

如果 order 不為零,按照升序排列

  • Rank.AVG(number,ref,[order]):同上,如果多個數值排名相同,則返回平均值排名
  • Rand():返回大於或等於0且小於1的平均分佈隨機數
  • Randbetween(bottom,top):返回一個介於指定的數字之間的隨機數
  • Average(number1,[number2],…):返回其引數的算數平均值;引數可以是數值或包含數值的名稱、陣列或引用
  • Averagea(value1,[value2],…):同上,字串和false相當於0,true相當於1
  • Quartile(array,quart)同Quartile.INC(array,quart):基於從0-1之間(含0與1)的百分點值,返回一組資料的四分位點

Array:要求得四分位數值的陣列或數字型單元格區域

Quart:指定返回哪一個值,取0:最小值;取1:第一個四分位數(第25 個百分點值);取2:中分位數(第 50 個百分點值);取3:第三個四分位數(第 75 個百分點值);取4:最大值

如果 array 為空,則QUARTILE 返回 錯誤值 #NUM!。

如果 quart 不為整數,將被截尾取整。

如果 quart < 0 或 quart > 4,則 QUARTILE 返回 錯誤值 #NUM!。

當 quart 分別等於 0、2 和 4 時,函式 MIN、MEDIAN 和 MAX 返回的值與函式QUARTILE 返回的值相同。

  • Stdev.P(number1,[number2],…):計算基於給定的樣本總體的標準偏差(忽略邏輯值及文字)
  • Stdevpa(value1,[value2],…):同上,包括邏輯值和字串,字串和邏輯值false為0,邏輯值true為1
  • Stdev.S(number1,[number2],…):估算基於給定樣本的標準偏差(忽略樣本中的邏輯值及文字)
  • Stdeva(value1,[value2],…):同上,包括邏輯值和字串,字串和邏輯值false為0,邏輯值true為1
  • Substotal(text,old_text, new_text, [instance_num]):將字串中的部分字串以新字串替換

[instance_num]表示替換在text中第幾次出現的old_text,省略則全部替換

  • Int(number):將數值向下取整為最接近的整數
  • Round(number,num_digits)= Round(要舍入的數字,舍入位數):按指定的位數對數值進行四捨五入
  • Rounddown(number,num_digits):向下舍入數字

如果 num_digits 大於0(零),則將數字向下舍入到指定的小數位數。

如果 num_digits 為0,則將數字向下舍入到最接近的整數。

如果 num_digits 小於0,則將數字向下舍入到小數點左邊的相應位數。

  • Roundup(number,num_digits):向上舍入數字,引數含義同上

時間序列:

  • Year(serial_number):返回日期的年份值(1900-9999),serial_number 為DATE 函式輸入的日期
  • Month(serial_number):返回月份值(1-12)
  • Weekday(serial_number,[return_type]):返回代表一週中的第幾天的數值(1-7)

Return_type:用於確定返回值型別的數字。取1或省略:數字 1(星期日)到 7(星期六);取2:數字 1(星期一)到 7(星期日)。

  • Weeknum(serial_number,[return_type]):返回某日期在一年中的週數

Return_type:一數字,確定星期從哪一天開始。預設值為 1。1或省略:一週的第一天為星期日,包含 1 月 1 日的周為該年的第 1 周;2:一週的第一天為星期一,包含 1 月1 日的周為該年的第 1 周;21:一週的第一天為星期一,包含該年的第一個星期四的周為該年的第 1 周。

  • Day(serial_number):返回一個月中的第幾天(1-31)
  • Days(end_date,start_date):返回兩個日期之間的天數
  • Date(year,month,day):返回在MS Excel日期時間程式碼中代表日期的數字
  • Now():返回日期時間格式的當前日期和時間,xxxx/xx/xx xx:xx
  • Today():返回日期格式的當前日期