工具用的順手嗎?
你的回饋能幫助我們做得更好
提供Excel常用函式分類速查,展示語法、引數與實戰示例。
所收錄Excel函式的語法與用途參考,不執行公式。公式字串保留原例中的文字,結果顯示、日期解析和可用函式受版本及區域設定影響;現值NPV示例已把初始投資放在函式外,FIND例的位置已修正。使用前對照所用版本的官方說明。 參考來源
所收錄Excel函式的語法與用途參考,不執行公式。公式字串保留原例中的文字,結果顯示、日期解析和可用函式受版本及區域設定影響;現值NPV示例已把初始投資放在函式外,FIND例的位置已修正。使用前對照所用版本的官方說明。 參考來源
返回文字字串中的字元數(含空格)。
LEN(text)=LEN("Excel") 返回 5返回文字所佔的位元組數,雙位元組字元(如中文)按 2 計算。
LENB(text)=LENB("你好") 返回 4從文字字串左側提取指定數量的字元。
LEFT(text, [num_chars])=LEFT("Toolkk",4) 返回 "Tool"從文字字串右側提取指定數量的字元。
RIGHT(text, [num_chars])=RIGHT("Toolkk",2) 返回 "kk"從指定位置開始提取文字中指定長度的字元。
MID(text, start_num, num_chars)=MID("Excel函数",1,5) 返回 "Excel"將多個文字字串或區域合併為一個字串。
CONCAT(text1, [text2], ...)=CONCAT(A1:A3) 把 A1:A3 串联將多個文字字串合併為一個字串。
CONCATENATE(text1, [text2], ...)=CONCATENATE("Excel","很好用")使用指定的分隔符連線多個文字,可忽略空單元格。
TEXTJOIN(delimiter, ignore_empty, text1, ...)=TEXTJOIN(",",TRUE,A1:A5)按指定的數字格式將數值轉換為文字。
TEXT(value, format_text)=TEXT(1234.5,"#,##0.00") 返回 "1,234.50"將代表數字的文字字串轉換為數字。
VALUE(text)=VALUE("123") 返回 123刪除文字中多餘的空格,僅保留單詞之間的一個空格。
TRIM(text)=TRIM(" Hello World ") 返回 "Hello World"刪除文字中無法列印的字元(ASCII 0-31)。
CLEAN(text)=CLEAN(A1)將文字全部轉換為大寫字母。
UPPER(text)=UPPER("toolkk") 返回 "TOOLKK"將文字全部轉換為小寫字母。
LOWER(text)=LOWER("TOOLKK") 返回 "toolkk"將每個單詞的首字母轉換為大寫。
PROPER(text)=PROPER("hello world") 返回 "Hello World"在文字中查詢另一個文字的位置,區分大小寫。
FIND(find_text, within_text, [start_num])=FIND("k","Toolkk") 返回 5查詢文字位置,不區分大小寫,支援萬用字元。
SEARCH(find_text, within_text, [start_num])=SEARCH("e","Excel") 返回 1用新文字替換文字中指定的舊文字。
SUBSTITUTE(text, old_text, new_text, [instance_num])=SUBSTITUTE("2024-01-01","-","/") 返回 "2024/01/01"按位置和長度將文字中的部分內容替換為新文字。
REPLACE(old_text, start_num, num_chars, new_text)=REPLACE("abcdef",2,3,"XYZ") 返回 "aXYZef"將文字重複指定的次數。
REPT(text, number_times)=REPT("-",5) 返回 "-----"比較兩個文字是否完全相同,區分大小寫。
EXACT(text1, text2)=EXACT("Excel","excel") 返回 FALSE返回單元格區域中所有數值的和。
SUM(number1, [number2], ...)=SUM(A1:A10)對滿足單一條件的單元格求和。
SUMIF(range, criteria, [sum_range])=SUMIF(B:B,">100",C:C)對滿足多組條件的單元格求和。
SUMIFS(sum_range, criteria_range1, criteria1, ...)=SUMIFS(C:C,A:A,"销售",B:B,">100")對多個陣列的對應元素先相乘再求和。
SUMPRODUCT(array1, [array2], ...)=SUMPRODUCT(A1:A5,B1:B5)返回所有引數的乘積。
PRODUCT(number1, [number2], ...)=PRODUCT(2,3,4) 返回 24返回數字的絕對值。
ABS(number)=ABS(-12) 返回 12按指定的位數對數值進行四捨五入。
ROUND(number, num_digits)=ROUND(3.1415,2) 返回 3.14向遠離零的方向(向上)對數值進行舍入。
ROUNDUP(number, num_digits)=ROUNDUP(3.111,1) 返回 3.2向接近零的方向(向下)對數值進行舍入。
ROUNDDOWN(number, num_digits)=ROUNDDOWN(3.199,1) 返回 3.1向下取整為最接近的整數。
INT(number)=INT(-1.5) 返回 -2返回兩數相除的餘數。
MOD(number, divisor)=MOD(10,3) 返回 1返回數字的乘冪。
POWER(number, power)=POWER(2,10) 返回 1024返回數字的正平方根。
SQRT(number)=SQRT(16) 返回 4返回 e(自然常數)的 n 次方。
EXP(number)=EXP(1) 返回约 2.71828返回數字的自然對數(以 e 為底)。
LN(number)=LN(2.71828) 返回约 1按指定底數返回數字的對數。
LOG(number, [base])=LOG(1000,10) 返回 3返回大於等於 0 且小於 1 的隨機數,每次計算都會變化。
RAND()=RAND()返回介於指定上下限之間的隨機整數。
RANDBETWEEN(bottom, top)=RANDBETWEEN(1,100)將數字向上舍入到指定基數的倍數。
CEILING(number, significance)=CEILING(7,5) 返回 10將數字向下舍入到指定基數的倍數。
FLOOR(number, significance)=FLOOR(7,5) 返回 5返回數值的算術平均值。
AVERAGE(number1, [number2], ...)=AVERAGE(A1:A10)對滿足條件的單元格求平均值。
AVERAGEIF(range, criteria, [average_range])=AVERAGEIF(B:B,">60",C:C)對滿足多組條件的單元格求平均值。
AVERAGEIFS(average_range, criteria_range1, criteria1, ...)=AVERAGEIFS(C:C,A:A,"销售",B:B,">100")統計區域中包含數字的單元格數量。
COUNT(value1, [value2], ...)=COUNT(A1:A100)統計區域中非空單元格的數量。
COUNTA(value1, [value2], ...)=COUNTA(A1:A100)統計區域中空白單元格的數量。
COUNTBLANK(range)=COUNTBLANK(A1:A100)統計滿足單一條件的單元格數量。
COUNTIF(range, criteria)=COUNTIF(A:A,"已完成")統計滿足多組條件的單元格數量。
COUNTIFS(criteria_range1, criteria1, ...)=COUNTIFS(A:A,"销售",B:B,">100")返回一組數值中的最大值。
MAX(number1, [number2], ...)=MAX(A1:A10)返回一組數值中的最小值。
MIN(number1, [number2], ...)=MIN(A1:A10)返回滿足多組條件的單元格中的最大值。
MAXIFS(max_range, criteria_range1, criteria1, ...)=MAXIFS(C:C,A:A,"销售")返回滿足多組條件的單元格中的最小值。
MINIFS(min_range, criteria_range1, criteria1, ...)=MINIFS(C:C,A:A,"销售")返回一組數值的中位數。
MEDIAN(number1, [number2], ...)=MEDIAN(A1:A10)返回一組數值中出現頻率最高的數值。
MODE(number1, [number2], ...)=MODE(A1:A10)估算基於樣本的標準偏差。
STDEV(number1, [number2], ...)=STDEV(A1:A10)估算基於樣本的方差。
VAR(number1, [number2], ...)=VAR(A1:A10)返回一個數字在一組數字中的排位。
RANK(number, ref, [order])=RANK(B2,B$2:B$10,0)返回資料集中第 k 大的值。
LARGE(array, k)=LARGE(A1:A10,2) 返回第二大值返回資料集中第 k 小的值。
SMALL(array, k)=SMALL(A1:A10,3) 返回第三小值返回資料集中第 k 個百分點的值。
PERCENTILE(array, k)=PERCENTILE(A1:A100,0.9)返回當前日期(不含時間),每次重新計算時更新。
TODAY()=TODAY()返回當前日期和時間。
NOW()=NOW()由年、月、日構造一個日期值。
DATE(year, month, day)=DATE(2026,5,20) 返回 2026/5/20由小時、分鐘、秒構造一個時間值。
TIME(hour, minute, second)=TIME(14,30,0) 返回 14:30從日期中提取年份。
YEAR(serial_number)=YEAR("2026-05-20") 返回 2026從日期中提取月份。
MONTH(serial_number)=MONTH("2026-05-20") 返回 5從日期中提取天數。
DAY(serial_number)=DAY("2026-05-20") 返回 20從時間中提取小時數。
HOUR(serial_number)=HOUR("14:30:00") 返回 14從時間中提取分鐘數。
MINUTE(serial_number)=MINUTE("14:30:00") 返回 30從時間中提取秒數。
SECOND(serial_number)=SECOND("14:30:25") 返回 25返回日期對應的星期幾(數字表示)。
WEEKDAY(serial_number, [return_type])=WEEKDAY(TODAY(),2) 返回 1=周一返回日期所屬的週數。
WEEKNUM(serial_number, [return_type])=WEEKNUM("2026-05-20")計算兩個日期之間的年、月、日差值。
DATEDIF(start_date, end_date, unit)=DATEDIF(A1,B1,"Y") 返回相差年数返回指定日期之前或之後若干月的日期。
EDATE(start_date, months)=EDATE(TODAY(),3) 返回 3 个月后返回指定月份的最後一天。
EOMONTH(start_date, months)=EOMONTH(TODAY(),0) 返回本月最后一天返回兩個日期之間的完整工作日數(自動剔除週末)。
NETWORKDAYS(start_date, end_date, [holidays])=NETWORKDAYS(A1,B1,H1:H10)返回某日期之前或之後的若干個工作日的日期。
WORKDAY(start_date, days, [holidays])=WORKDAY(TODAY(),10)返回兩個日期之間相差的天數。
DAYS(end_date, start_date)=DAYS("2026-12-31","2026-01-01") 返回 364在表格首列中查詢值,返回同一行指定列的資料。
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])=VLOOKUP(A2,Sheet2!A:D,3,FALSE)在表格首行中查詢值,返回同一列指定行的資料。
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])=HLOOKUP("姓名",A1:F10,3,FALSE)在指定列或行中查詢值並返回相應結果,支援任意方向查詢。
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])=XLOOKUP(A2,Sheet2!A:A,Sheet2!C:C,"未找到")在向量或陣列中查詢值,返回對應位置的結果。
LOOKUP(lookup_value, lookup_vector, [result_vector])=LOOKUP(85,{0,60,80,90},{"差","中","良","优"})返回指定值在陣列中的位置編號。
MATCH(lookup_value, lookup_array, [match_type])=MATCH("张三",A1:A100,0)返回表格或區域中指定行列位置的值。
INDEX(array, row_num, [column_num])=INDEX(A1:D10,3,2)返回由文字字串指定的單元格引用。
INDIRECT(ref_text, [a1])=INDIRECT("A"&B1)返回基於起始單元格按指定偏移得到的引用。
OFFSET(reference, rows, cols, [height], [width])=OFFSET(A1,2,1,3,2)返回引用或當前單元格的行號。
ROW([reference])=ROW(A5) 返回 5返回引用或當前單元格的列號。
COLUMN([reference])=COLUMN(C1) 返回 3返回引用或陣列中的行數。
ROWS(array)=ROWS(A1:A10) 返回 10返回引用或陣列中的列數。
COLUMNS(array)=COLUMNS(A1:D1) 返回 4根據索引號從值列表中返回對應的值。
CHOOSE(index_num, value1, [value2], ...)=CHOOSE(2,"红","黄","蓝") 返回 "黄"建立一個可點選的超連結。
HYPERLINK(link_location, [friendly_name])=HYPERLINK("https://toolkk.com","Toolkk")按條件篩選陣列或區域並返回結果(動態陣列)。
FILTER(array, include, [if_empty])=FILTER(A2:C100,B2:B100>60,"无")返回區域或陣列中的唯一值列表(動態陣列)。
UNIQUE(array, [by_col], [exactly_once])=UNIQUE(A2:A100)按指定的列或行對區域或陣列進行排序。
SORT(array, [sort_index], [sort_order], [by_col])=SORT(A2:C100,2,-1)根據條件返回不同的結果。
IF(logical_test, value_if_true, [value_if_false])=IF(A1>=60,"及格","不及格")依次檢查多個條件,返回第一個滿足條件的結果。
IFS(condition1, value1, condition2, value2, ...)=IFS(A1>=90,"优",A1>=60,"及格",TRUE,"不及格")所有條件都為 TRUE 時返回 TRUE,否則返回 FALSE。
AND(logical1, [logical2], ...)=AND(A1>0,A1<100)任一條件為 TRUE 時返回 TRUE,否則返回 FALSE。
OR(logical1, [logical2], ...)=OR(A1="是",B1="是")對邏輯值取反。
NOT(logical)=NOT(TRUE) 返回 FALSE返回引數的邏輯異或:奇數個 TRUE 時返回 TRUE。
XOR(logical1, [logical2], ...)=XOR(TRUE,FALSE) 返回 TRUE若公式出錯返回指定的值,否則返回原結果。
IFERROR(value, value_if_error)=IFERROR(A1/B1,0)若公式返回 #N/A 錯誤,則返回指定值。
IFNA(value, value_if_na)=IFNA(VLOOKUP(A1,B:C,2,FALSE),"未找到")對錶達式進行多分支匹配,返回首個匹配的結果。
SWITCH(expression, value1, result1, ..., [default])=SWITCH(A1,1,"一",2,"二","其他")計算等額還款下每期應付的本金加利息。
PMT(rate, nper, pv, [fv], [type])=PMT(0.05/12,360,-1000000) 月供约 5368計算投資在固定利率下到期的未來值。
FV(rate, nper, pmt, [pv], [type])=FV(0.04,10,-2000)計算一系列未來付款的現值。
PV(rate, nper, pmt, [fv], [type])=PV(0.05,10,-1000)基於貼現率與未來現金流計算投資的淨現值。
NPV(rate, value1, [value2], ...)=NPV(0.1,300,400,500,600)-1000返回一系列現金流的內部收益率。
IRR(values, [guess])=IRR(A1:A6)返回貸款或投資的每期利率。
RATE(nper, pmt, pv, [fv], [type], [guess])=RATE(36,-300,10000)*12返回某項投資的總期數。
NPER(rate, pmt, pv, [fv], [type])=NPER(0.05/12,-1000,200000)判斷單元格是否為空。
ISBLANK(value)=ISBLANK(A1)判斷值是否為數字。
ISNUMBER(value)=ISNUMBER(A1)判斷值是否為文字。
ISTEXT(value)=ISTEXT(A1)判斷值是否為任意錯誤型別。
ISERROR(value)=ISERROR(A1/B1)判斷值是否為 #N/A 錯誤。
ISNA(value)=ISNA(VLOOKUP(A1,B:C,2,FALSE))判斷數字是否為偶數。
ISEVEN(number)=ISEVEN(4) 返回 TRUE判斷數字是否為奇數。
ISODD(number)=ISODD(3) 返回 TRUE返回值的資料型別編號(1=數字,2=文字,4=邏輯值,16=錯誤,64=陣列)。
TYPE(value)=TYPE(A1)返回 #N/A 錯誤值。
NA()=NA()返回有關單元格格式、位置、內容的資訊。
CELL(info_type, [reference])=CELL("address",A1)返回當前操作環境的資訊。
INFO(type_text)=INFO("osversion")按條件區域對資料庫中匹配記錄的欄位求和。
DSUM(database, field, criteria)=DSUM(A1:D100,"金额",F1:G2)按條件區域對資料庫中匹配記錄的欄位求平均值。
DAVERAGE(database, field, criteria)=DAVERAGE(A1:D100,"分数",F1:G2)統計資料庫中滿足條件的數字記錄數。
DCOUNT(database, field, criteria)=DCOUNT(A1:D100,"分数",F1:G2)統計資料庫中滿足條件的非空記錄數。
DCOUNTA(database, field, criteria)=DCOUNTA(A1:D100,"姓名",F1:G2)從資料庫中提取滿足條件的唯一記錄。
DGET(database, field, criteria)=DGET(A1:D100,"姓名",F1:G2)返回資料庫中滿足條件記錄的欄位最大值。
DMAX(database, field, criteria)=DMAX(A1:D100,"金额",F1:G2)返回資料庫中滿足條件記錄的欄位最小值。
DMIN(database, field, criteria)=DMIN(A1:D100,"金额",F1:G2)將二進位制數轉換為十進位制數。
BIN2DEC(number)=BIN2DEC(1010) 返回 10將十進位制數轉換為二進位制數。
DEC2BIN(number, [places])=DEC2BIN(10) 返回 "1010"將十進位制數轉換為十六進位制數。
DEC2HEX(number, [places])=DEC2HEX(255) 返回 "FF"將十六進位制數轉換為十進位制數。
HEX2DEC(number)=HEX2DEC("FF") 返回 255返回兩個數的按位與(AND)。
BITAND(number1, number2)=BITAND(5,3) 返回 1返回兩個數的按位或(OR)。
BITOR(number1, number2)=BITOR(5,3) 返回 7返回兩個數的按位異或(XOR)。
BITXOR(number1, number2)=BITXOR(5,3) 返回 6在不同度量單位之間進行換算(長度、重量、溫度等)。
CONVERT(number, from_unit, to_unit)=CONVERT(1,"km","m") 返回 1000從資料透視表中提取指定彙總資料。
GETPIVOTDATA(data_field, pivot_table, [field1, item1], ...)=GETPIVOTDATA("金额",A3,"地区","华东")以文字形式返回指定單元格中的公式。
FORMULATEXT(reference)=FORMULATEXT(B2)返回引用所在工作表的編號。
SHEET([value])=SHEET()返回引用中的工作表數量。
SHEETS([reference])=SHEETS()按指定方式忽略錯誤或隱藏行進行聚合計算。
AGGREGATE(function_num, options, ref1, [ref2], ...)=AGGREGATE(9,6,A1:A10)對篩選或可見區域進行分類彙總(求和、平均、計數等)。
SUBTOTAL(function_num, ref1, [ref2], ...)=SUBTOTAL(9,A2:A100)返回數字程式碼對應的字元。
CHAR(number)=CHAR(65) 返回 "A"返回字元的數字程式碼。
CODE(text)=CODE("A") 返回 65概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
Excel函式查詢器提供一份常見函式參考子集,適合在撰寫公式前確認函式用途、引數排列和基本寫法。它不會讀取工作簿,也不會代替 Excel 計算公式;你看到的是函式資料卡與示例,實際結果仍由你使用的試算表程式和資料決定。
可以用函式名稱搜尋,例如 SUMIFS,也可以用用途詞搜尋,例如「多條件求和」。搜尋範圍包含名稱、說明、語法、示例及可能存在的備註。類別則涵蓋文字、數學、統計、日期、查詢、邏輯、財務、資訊、資料庫、工程及其他,先選類別能縮小結果。
函式通常由名稱和括號中的引數構成,引數依序提供;方括號標出的項目表示參考語法中的選用引數,省略號表示可再提供其他引數。以 SUMIFS(sum_range, criteria_range1, criteria1, ...) 為例,先指定要加總的範圍,接著成對提供條件範圍與條件。卡片語法是結構提示,不能直接代表任何工作簿都能照抄使用。
函式名稱、參數和適用版本可能隨 Excel 版本而異。Microsoft 官方函數目錄按類別列出函數及其適用版本,可從Excel 函數(依類別)進一步核對;函數的基本公式結構則可參考在 Excel 公式中使用函數及巢狀函數。
指南
依步驟完成操作,並透過範例核對輸入與結果。
已知名稱時直接搜尋;還不確定函式時,可輸入「查找」、「日期」或「條件求和」等詞,讓說明和示例協助定位。
選擇符合任務的函式分類;若搜尋後沒有結果,改用函式名稱的一部分、較短的用途詞,或切回「全部」。結果數量只表示目前收錄資料中符合條件的筆數。
先確認哪個引數是資料範圍、查找值或條件,再把示例中的儲存格位置換成自己的資料位置。像 SUMIFS 要留意加總範圍在前,條件範圍與條件依序成對出現。
可複製函式名稱、語法或示例,再依實際欄位修改。在小範圍資料先確認結果、錯誤訊息及函式版本,再套用到完整工作表。
情境
查看這項工具在不同工作與生活流程中的用法。
整理訂單或費用表時,搜尋「多條件求和」並查看 SUMIFS 的引數次序。確認金額欄作為加總範圍,每組條件範圍都與對應條件相符,再到工作簿測試。
維護名冊或庫存表,需要依編號帶回名稱或狀態時,可搜尋 VLOOKUP、XLOOKUP 等查詢函式,比較查找範圍、回傳範圍及找不到資料時的處理方式。
匯整報表前若要擷取字串、轉換顯示格式或整理日期,可先按文字或日期分類,再比對函式說明和參數示例,挑出適合資料型態的寫法。
問答
集中解答常見疑問與容易混淆的問題。
可以嘗試以功能詞搜尋,因搜尋會比對已收錄資料的說明、語法、示例與備註;若找不到,改用常見函式名或更短的詞,再配合分類瀏覽。
本頁只整理常見函式子集,未收錄的函式不會出現在結果中。請再查 Microsoft 官方函數目錄,並確認該函式是否適用於你的 Excel 版本。
函式引數的清單分隔符會受地區或試算表設定影響。若公式貼入後出現語法錯誤,依 Excel 的提示調整分隔符,並逐一確認括號、引數位置及文字引號。
不會。範例是用來展示一種函式寫法;要取得你的資料結果,請在 Excel 中將參照和條件改成實際內容後執行並檢查。
須知
使用前了解適用範圍、結果限制與必要提醒。
資料卡是常見函式的查閱參考,不是完整或即時更新的 Excel 函式目錄。函式是否支援、名稱顯示方式及參數細節可能依產品版本、平台或語言而不同;使用前請以 Microsoft 對應函式說明及目前使用的 Excel 為準。
這個查詢頁不會開啟或計算你的活頁簿。示例中的欄位位置和條件僅供理解語法,不能直接推定你的檔案會得到相同結果。
推薦
查找相關工具、專題與可用的 API 能力。