You are on page 1of 8

單元 A 資訊處理 第七章 試算表(2) – 試算表函數

A. 列印於試卷一(乙部)供考生參考的函數表
常 數 TRUE, FALSE
運 算 符 +, −, *, /, <, >, =, <>, <=, >=
函 數 Page.2 ABS, INT, TRUNC, ROUND, ROUNDUP, ROUNDDOWN, SQRT, MOD, QUOTIENT, RAND
Page.3 CHAR, CODE, LEN, LEFT, RIGHT, MID, LOWER, UPPER, PROPER, CONCATENATE
※為便於編排, Page.4 FIND, SEARCH, EXACT, ISBLANK, TRIM, TEXT, VALUE, DATE, NOW
函數的次序 Page.5 AVERAGE, LARGE, SMALL, MAX, MIN, COUNT, COUNTA, COUNTBLANK, COUNTIF
曾經過調動 Page.6 RANK, SUM, SUMIF, SUMPRODUCT, SUMSQ, FREQUENCY
Page.7 CHOOSE,LOOKUP,VLOOKUP
Page.8 HLOOKUP, IF, AND, NOT, OR

B. 使用函數的基本知識
※要在 Excel 進行數學運算 / 使用函數,必須使用 = 符號作儲存格的開首,以作標示。
例子:
在 A1 儲存格輸入 =1+1 ; 在 A2 儲存格輸入 1+1
輸出結果:

 除此以外,我們可以用儲存格參照的方式輸入算式,例如:
=A2+B2 但使用時須留意絕對和相對儲存格參照對運算結果的影響。

C. 各函數的說明及例子 (本筆記 Page 2 – 8)

Page 1
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 ABS, INT, TRUNC, ROUND, ROUNDUP, ROUNDDOWN, SQRT, MOD, QUOTIENT, RAND
函數 說明 儲存格公式例子 結果
ABS(number) 傳回數字的絕對值,即無正負號的數值 =ABS(A2) 5.5
INT(number) 傳回無條件捨去之整數值。 INT 和 TRUNC 的分別 =INT(5.5) 5
1. 若一小數 m.n >0, =INT(m.n) → m ; =INT(-m.n) → -(m+1) - 處理正數時沒有分別 =INT(-5.5) -6
2. =A2-INT(A2) → 傳回儲存格 A2 正實數的小數部分 - 處理負數時: =A2-INT(A2) 0.5
TRUNC(number, [num_digits]) 將數字中的小數部分捨去而成為整數。 =INT(-3.99) = -4 =TRUNC(-3.999,1) -3.9
num_digits: 預設為 0,是對數值執行截斷時所採用的精確位數。 =TRUNC(-3.99) = -3
=TRUNC(3.999) 3
ROUND(num, num_digits) 依所指定的位數,將數字四捨五入。 =Round(2.15,1) 2.2
num_digits:若 n>0 且為整數 , 0→ 四捨五入 至整數 ; n→四捨五入至小數第一位 ; =Round(-1.475,2) -1.48
-n→四捨五入至小數左邊第 n 位 ; 其他例子見下圖所示
ROUNDUP(num, num_digits) 將數值作無條件進位。 / 將數值以背離於 0 的方式進位。 =ROUNDUP(1.475,2) 1.48
num_digits 用法同 ROUND,分別在四捨五入→無條件捨入。 =ROUNDUP(-1.475,2) -1.48
ROUNDDOWN(num, num_digits) 將數值作無條件捨去。 / 將數值以趨近於 0 的方式捨位。 =ROUNDDOWN(1.475,2) 1.47
num_digits 用法同 ROUND,分別在四捨五入→無條件捨入。 =ROUNDDOWN(-1.475,2) -1.47
SQRT(number) 傳回數值的正平方根。 ※若 num 為負值,則會傳回錯誤#NUM! → 可用: =SQRT(ABS(-16)) =SQRT(16) 4
MOD(number, divisor) 傳回兩數相除後之餘數。餘數和除數(divisor)具有相同的正負號。 =MOD(16,3) 1
如果除數為 0,MOD 將傳回 #DIV/0 ! 的錯誤值。 =MOD(16,-3) -2
QUOTIENT(numerator, 傳回兩數相除所得之商的整數部分。這個函數可以用來除去兩數相除結果的餘數部分。
=QUOTIENT(5,2) 2
denominator)
RAND() - 基本 傳回大於等於 0 且小於 1(0≤x<1)的均等分配隨機實數。每次計算工作表時都會傳回新的隨機實數。 =RAND() 0.283528097
RAND()*n - 0≤產生的數<n 如果您希望產生的亂數是介於 a 與 b 之間的實數,請使用公式: RAND()*(b-a)+a =INT(RAND()*(10-5)+5 9
)
參考:

Page 2
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 CHAR, CODE, LEN, LEFT, RIGHT, MID, LOWER, UPPER, PROPER, CONCATENATE
函數 說明 儲存格公式例子 結果
CHAR(number) 根據你電腦的字元集,傳回代碼所對應的字元。 Windows → ANSI 字元集; Macintosh → Macintosh
=CHAR(65) A
字元集
CODE(“text”) 傳回文字字串中第一個字元的數字代碼。傳回的代碼與您電腦所使用的字元集一致。 =CODE(“APPLE”) 65
LEN(“text”) 或 傳回文字字串中的字元個數。 ※空格,標點符號均計算在內; 不論全形/半形字符亦計算 1 個字元。 =LEN("Hello, world") 12
LEN(<單一儲存格>) =LEN(A4) 5
LEFT("text", [num_chars]) 從文字串的第一個字元傳回特定長度之間的所有字元。 [num_chars]: 指定您要用 LEFT 抽選的字元 =LEFT(“ORANGE”) O
數目;
=LEFT(“ORANGE”,3) ORR
"text"可改為<儲存格>(下同) [num_chars] 預設為 1;必須大於 0; 若其值大於文字的長度,LEFT 會傳回所有文字。
RIGHT("text", [num_chars]) 從文字串的最後一個字元傳回特定長度之間的所有字元。 [num_chars] 用法同 LEFT。 =RIGHT(“ORRANGE”,3) NGE
MID("text", start_num, 傳回從文字串中某個起始位置到指定長度之間的字元; start_num:由第 a 個字元開始 =MID(H2,3,5) RANGE
num_chars) 如果 start_num 大於文字的長度,MID 將傳回 " " (空字串)。 num_chars:抽取 b 個字元 =MID(H2,1,8) ORRANGE
如果 start_num 小於 1 / num_chars 為負值,MID 將傳回 #VALUE! 的錯誤值。 =MID(H2,0,8) #VALUE!
LOWER(text) 將字串轉成小寫。 =LOWER(J2) apple. 11
UPPER(text) 將字串轉成大寫。 =UPPER(J2) APPLE. 11
PROPER(text) 將文字串轉換成適當的大小寫。 =PROPER(J6) 123.Hello
第一個英文字母和任何其他非英文字母的字元後之字母轉換成大寫字母。其餘所有的字母則都轉換成 One 2
=PROPER(K6)
小寫字母。 Three
CONCATENATE(text1, 將多組字串組合成單一字串; ※ " " 代表空格。;
=CONCATENATE(B2,B3) A65
[text2], …)
參考:

Page 3
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 FIND, SEARCH, EXACT, ISBLANK, TRIM, TEXT, VALUE, DATE, NOW
函數 說明 儲存格公式例子 結果
FIND(find_text, 在某個文字字串內找到另一個文字字串,並傳回該文字字串在第一個文字字串中的起始位置。 =FIND("N",A5,3) 3
within_text, find_text:要尋找的字,如"P" ; within_text: "P"字所在的文字串,如 A2:APPLE =FIND(0,B10) #VALUE!
[start_num]) [start_num]由第 n 個字母開始; 若 within_text 內不包含 find_text,會輸出#VALUE!
SEARCH(find_text,w 功能如同 FIND,分別是: =SEARCH("?P",A2) 1
ithin_text,[start_ 1. FIND 區分大小寫,SEARCH 不區分大小寫 (留意 D11 和 G11 結果不同) =SEARCH("a",A5) 1
num]) 2. SEARCH 支援萬用字元 →"?" "*"; ?代表任何單一字元,*代表任何字元序列
EXACT(text1, text2) 比較兩個文字字串是否完全相同。 傳回 TRUE 代表兩個完全相同,傳回 FALSE 代表兩個不相同。 =EXACT(A2,A3) FALSE
EXACT 會區分大小寫,但忽略格式設定上的差異。 =EXACT(A3,A4) TRUE
ISBLANK(<單一儲存 判斷某儲存格是否空白; 若為空白,輸出 TRUE; 否則,輸出 FALSE。 =ISBLANK(A7) TRUE
格>) ※即使儲存格的內容只有空格,使用 ISBLANK 函數會判斷為 FALSE。 =ISBLANK(A2) FALSE
TRIM("text") 移除文字之間多餘的空格,僅保留文字間一個空白字元。當您讀取到由其他應用程式所建立的檔案 =TRIM("Hello World") Hello World
資料時,資料裡可能含有多餘的空白字元,在此情況下,您可以用 TRIM 函數刪除多餘的空格。 (G2)
TEXT(value, 依指定的數值格式,把數字轉換為文字 =TEXT(F5,"#.000") .926
format_text) ※由於此項的內容眾多,亦難以深入考核,在此不作詳述。如有興趣探討細節,請使用 EXCEL 說明。 =TEXT(F5,"0.####0") 0.92560
VALUE(text) 將文字資料轉換成數字資料 =VALUE("$1,000") 1000
DATE(year,month,day) 傳回代表特定日期的序列值 =DATE(2012,3,25)
NOW() 傳回目前的日期和時間,格式可為「序列值」或「日期和時間」 =NOW() 2012/5/1 16:33
→相對應的序列值 41030.68992

Page 4
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 AVERAGE, LARGE, SMALL, MAX, MIN, COUNT, COUNTA, COUNTBLANK, COUNTIF
函數 說明 儲存格公式例子 結果
AVERAGE(<儲存格範圍>) 或 傳回引數 (儲存格範圍 /數字 )的平均值 (算術平均值 )。 =AVERAGE(A1:B6) 5.5
AVERAGE([num1],[num2],…) (E2)
LARGE(<儲存格範圍>,k) 傳回資料組中第 k 個最大的數值。 =LARGE(A1:B6,2)
9
備註 :<儲存格範圍 >不可為空值 ; 0<k<儲存格內含資料的個數 (如 10 個 ) ; 違反則傳回錯誤值
(E5)
#NUM!
SMALL(<儲存格範圍>,k) 傳回資料組中第 k 小的值。使用這個函數以傳回一個在資料組中特定位置的數值。 =SMALL(A1:B6,3)
備註 :<儲存格範圍 >不可為空值 ; 0<k<儲存格內含資料的個數 (如 10 個 ) ;違反則傳回錯誤值
#NUM! 3 (E6)
若儲存格範圍內有 n 個資料點,SMALL(<儲存格範圍 >,1) 等於最小值, SMALL(<儲存格範圍 >,n)
等於最大值。
MAX(<儲存格範圍>)或 傳回一組數值中的最大值。 =MAX(A1:B6) 10 (E3)
MAX([num1],[num2],…)
MIN(<儲存格範圍>)或 傳回一組數值中的最小值。 =MIN(A1:B6) 1 (E4)
MIN([num1],[num2],…)
COUNT(<儲存格範圍>) 計算含有數字的儲存格總數,以及引數清單中的總數。 =COUNT(A1:B6) 10 (H2)
COUNTA(<儲存格範圍>) 計算範圍中不是空白的儲存格總數。 =COUNTA(A1:B6) 11 (H3)
COUNTBLANK(<儲存格範圍>) 計算指定範圍內空白儲存格的個數。 =COUNTBLANK(A1:B6) 1 (H4)
COUNTIF(<儲存格範圍>,<條 計算範圍內符合您所指定單一條件準則的儲存格總數。 =COUNTIF(A1:B6,”>=5”)
6 (H5)
件>) ※若多於一個條件,可用 COUNTIFS 函數。惟本函數非上述表所列,故不列在本表內。

參考:
Page 5
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 RANK, SUM, SUMIF, SUMPRODUCT, SUMSQ, FREQUENCY
函數 說明 儲存格公式例子 結果
RANK(number,ref,[order]) 傳回某數字在一串數字清單中的等級。 =RANK(A3,A2:A8,0) 5
Number 必要。這是要找出其等級的數字。 (E2)
Ref 必要。這是數字清單的陣列或參照。 Ref 中的非數值會被忽略。
1.如果 order 為 0 (零) 或被省略,則 Microsoft Excel 把 ref 當成從大到小排序來評定 number 的等級。 =RANK(A3,A2:A8,1) 2
2.如果 order 不是 0,則 Microsoft Excel 把 ref 當成從小到大排序來評定 number 的等級。 (E3)
3.相同的數字評為同一等級,可是其後數字的等級還是會受到影響。
SUM(<儲存格範圍>) 或 傳回儲存格範圍中所有數值的總和。 =SUM(A2:A8) 355
SUM(num1,[num2],…) 如果引數為陣列或參照,則只會計算該陣列或參照中的數字。陣列或參照中的空白儲存格、邏輯值或文字會被 (E4)
忽略。
如果有任何引數是錯誤值,或有任何引數是無法轉換成數字的文字,Excel 會顯示錯誤。
SUMIF(<儲存格範圍>,<條件>, 加總某個符合指定(單一)準則之範圍內的值。 =SUMIF(B2:B8,”=A”,A2:A8) 155
[相加範圍]) (E5)
=SUMIF(A2:A8,">=40") 275
SUMPRODUCT(<範圍 1>,[<範圍 傳回指定陣列中所有對應元素乘積的總和。 =SUMPRODUCT(A2:A3,A4:A5) 1800
2>]…) 解釋: =SUMPRODUCT(A2:A3,A4:A5) 相等於 =SUM(A2*A3,A4*A5) / =A2*A3+A4*A5 (E7)
SUMSQ(num1, [num2],…) 傳回所有引數平方的總和。 =SUMSQ(A2,A5) 相等於 =(A2)^2+(A5)^2 =SUMSQ(A2,A5) 1500
(E8)
FREQUENCY(data_array, 計算某一個範圍內的值出現的次數,並傳回一個垂直數值陣列。
bins_array) Data_array 必要。這是您要計算頻率的一組數值的陣列或參照。如果 data_array
沒有值,FREQUENCY 會傳回零陣列。
Bins_array 必要。這是區間的陣列或參照,要用以群組 data_array 中的值。如
果 bins_array 沒有值,FREQUENCY 會傳回 data_array 中的元素數。

步驟:
1/ 在 E2 鍵入: =FREQUENCY(A2:A5,C2:C4)
2/ 選取儲存格 E2:E4
3/ 按 F2 → Ctrl + Shift + Enter
4/ 公式會自動複製到 E2:E4, E2:E4 的頻率 相對應 F2:F4 的分數區間
Page 6
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 CHOOSE,LOOKUP,VLOOKUP
函數 說明 儲存格公式例子 結果
CHOOSE(index_num, value1, 使用 index_num 從引數值清單中傳回值。使用 CHOOSE 可以根據引數值,從至多 254 個數值中選取一
=CHOOSE(3,A2,A3,A4,A5,A6) LEE
[value2], ...) 個。
例如,如果 value1 到 value7 分別代表星期一到星期日,則 CHOOSE 便會根據範圍在 1 到 7 之間的
index_num,傳回其中的一天。 =SUM(A3,CHOOSE(4,B2,B3,B4,B5)) 40
!! 不可以用 A1:A5(冒號)方式輸入,否則將輸出#VALUE! ; 必須以逗號分隔,即 A1,A2,A3,A4,…
LOOKUP(lookup_value, LOOKUP 函數可以從單列、單欄範圍或從陣列傳回一個值。 【只討論向量形式】 =LOOKUP(60,E2:E8,F2:F8) C
lookup_vector, lookup_value 必要項。這是 LOOKUP 在第一個向量中搜尋的值。
result_vector) =LOOKUP(35,E2:E8,F2:F8) E
lookup_vector 必要項。此引數僅包含一列或一欄的範圍。
lookup_vector 中的值可為文字、數字,或邏輯值。!!必須為遞增排列(A-Z,0-9)
=LOOKUP(-2,E2:E8,F2:F8) #N/A
result_vector 必要項。此引數僅包含一列或一欄的範圍。(對應 lookup_vector 的資料)
如果 LOOKUP 函數找不到 lookup_value,就會比對 lookup_vector 中,≤ lookup_value 的最大值。
如果 lookup_value 小於 lookup_vector 中的最小值,LOOKUP 函數會傳回 #N/A 錯誤值。
VLOOKUP(lookup_value, 您可以使用 VLOOKUP 函數來搜尋儲存格範圍的第一欄,然後從範圍同一列的任何儲存格傳回一個值。 找 STU001 的分數 90
table_array, col_index_num, lookup_value 必要。這是要在表格或範圍的第一欄中搜尋的值。引數可以是值,也可以是參照。 =VLOOKUP("001",A1:D8,3,FALSE) (I6)
[range_lookup]) 如果您提供給 lookup_value 引數的值小於 table_array 引數第一欄中的最小值,VLOOKUP 就會傳回 找 STU004 的 GRADE E
#N/A 錯誤值。 =VLOOKUP("004",A1:D8,4,FALSE) (I7)
table_array 必要。這是包含資料的儲存格範圍。您可以使用範圍的參照 (例如,A2:D8),
col_index_num 必要。這是 table_array 引數中必須傳回相對應值的欄號。
(此例中,如要按 StuNo 傳回 Name,則輸入 2; 傳回 Mark 則輸入 3; 傳回 Grade 則輸入 4)
range_lookup 選用。這是一個邏輯值; FALSE→完全符合的資料;
TRUE/省略: 傳回僅次於 lookup_value 的最大值。

Page 7
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com
函數 HLOOKUP, IF, AND, NOT, OR
函數 說明 儲存格公式例子 結果
HLOOKUP(lookup_value, HLOOKUP 形同 Vlookup,只是把對照表的方向由垂直變作水平 =HLOOKUP(C5,A$1:H$2,2)) B
table_array, row_index_num,
range_lookup) =HLOOKUP(C6,A$1:H$2,2)) D

IF(logical_test, 檢查是否符合某一個條件,且若為 TRUE 則傳回某值,FALSE 則傳回另一值 見頁底圖


[value_if_true], logical_test 條件
[value_if_false]) [value_if_true] 合符條件的輸出 [value_if_false] 不符條件的輸出
AND(logical1, 同時檢測多個條件,若全部符合,則輸出 TRUE;否則,輸出 FALSE。
[logical2], ...) 亦可配合 IF 一同使用。

OR(logical1, 同時檢測多個條件,只要符合一個,則輸出 TRUE;


[logical2], ...) 若全部不符合,輸出 FALSE。
亦可配合 IF 一同使用。 ↑AND/OR 例子
NOT(logical) 把 FALSE 變更為 TRUE,把 TRUE 變為 FALSE。 =NOT(FALSE) TRUE
=NOT(1+1=2) FALSE

Page 8
NSS ICT 筆記 - 單元 A 第七章 – 試算表函數 ©2012 – Wong Ting Keung, Simon 聯絡作者: wongtingkeung88@gmail.com

You might also like