在 Excel 中,,Small函數(shù)用于返回?cái)?shù)組或引用單元格中從小到大排序的指定數(shù)值,,例如第一個(gè)最小值、第二個(gè)最小值等,。它只有兩個(gè)參數(shù),,一個(gè)是 Array,另一個(gè)是 k,,其中 k 不能小于等于 0 且不能大于數(shù)組元素總個(gè)數(shù),,否則會(huì)返回錯(cuò)誤,。 Small函數(shù)常與 Index、IF,、Match,、Row 函數(shù)組合,一方面實(shí)現(xiàn)一對(duì)多查找,,另一方面實(shí)現(xiàn)篩選重復(fù)值,,這兩個(gè)方面的應(yīng)用十分廣泛。下面先看Small函數(shù)的基本用法,,再看與各函數(shù)組合的擴(kuò)展應(yīng)用,。 一、Excel Small函數(shù)語(yǔ)法1,、表達(dá)式:SMALL(Array,k) 中文表達(dá)式:SMALL(數(shù)組或引用單元格區(qū)域, 返回位置[從小到大]) 2,、說(shuō)明: 如果 Array 為空和 k 小于等于 0 或 k 大于 Array 中數(shù)值個(gè)數(shù),Small 都返回?cái)?shù)字錯(cuò)誤值 #NUM!,。 二、Excel Small函數(shù)的使用方法及實(shí)例(一)Array 中有重復(fù)值的實(shí)例 1,、雙擊 C8 單元格,把公式 =SMALL(C2:C7,3) 復(fù)制到 C8,,按回車,,返回第三個(gè)最小值 3.5,;雙擊 C8,,把 3 改為 4,按回車,,返回第四個(gè)最小值 5,;再次雙擊 C8,,把 4 改為 5,按回車,,返回第五個(gè)最小值 5;操作過(guò)程步驟,,如圖1所示: 圖1 2,、公式說(shuō)明: A,、公式 =SMALL(C2:C7,3) 中,,C2:C7 為查找區(qū)域,,3 為返回位置;公式的意思是在 C2 至 C7 中返回第三個(gè)最值,,C2:C7 不用排序,。 B、公式 =SMALL(C2:C7,4) 和 =SMALL(C2:C7,5) 都返回 5,,說(shuō)明Small函數(shù)把重復(fù)值排到兩個(gè)不同的位置,,如例中的 5,一個(gè)排在第四位,,另一個(gè)排在第五位,。 (二)返回?cái)?shù)字錯(cuò)誤值 #NUM! 的實(shí)例 1、雙擊 D8 單元格,,把公式 =SMALL(D2:D7,0) 復(fù)制到 D8,,按回車,返回?cái)?shù)字錯(cuò)誤值 #NUM!,;雙擊 D8,把 0 改為 7,,按回車,,同樣返回#NUM!;操作過(guò)程步驟,,如圖2所示: 圖2 2,、公式 =SMALL(D2:D7,0) 在 D2:D7 中返回第 0 個(gè)最小值,由于 K 必須大于 0,所以返回 #NUM,!錯(cuò)誤,;而公式 =SMALL(D2:D7,7) 返回第七個(gè)最小值,由于 D2:D7 中只有 6 個(gè)值,,而 K 必須小于等于 6,,所以也返回 #NUM!錯(cuò)誤,。 三,、Excel Small函數(shù)的擴(kuò)展使用實(shí)例(一)Index + Small + IF + Row函數(shù)組合實(shí)現(xiàn)一對(duì)多查找 Index + Small + IF + Row 組合的詳細(xì)解析,在《Excel Index函數(shù)的使用方法及與Match,、Small,、If配合返回行列對(duì)應(yīng)的多個(gè)值和一對(duì)多、多對(duì)多查找》一文中已經(jīng)介紹,,查看請(qǐng)點(diǎn)擊書名號(hào)中的文章標(biāo)題,。 (二)Index + Small + IF + Match + Row函數(shù)組合實(shí)現(xiàn)篩選不重復(fù)值(唯一值) 1、雙擊 E2 單元格,,把公式 =IFERROR(INDEX(B:B,SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW($1:$7),ROW($2:$8)),ROW(A1))),"") 復(fù)制到E2,,按 Ctrl + Shift + 回車,返回“銷售部”,;把鼠標(biāo)移到 E2 右下角的單元格填充柄上,,鼠標(biāo)變?yōu)榧犹?hào)(+)后,按住左鍵,,往下拖一直拖到出現(xiàn)空單元格,,則篩選出 B 列“部門”的所有不重復(fù)值;選中 E2,,往右拖,,返回 C 列的第一個(gè)不重復(fù)值“員工”,再往下拖,,也一直拖到出現(xiàn)空單元格,,則返回 C 列的所有不重復(fù)值;操作過(guò)程步驟,,如圖3所示: 圖3 2,、公式 =IFERROR(INDEX(B:B,SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW($1:$7),ROW($2:$8)),ROW(A1))),"") 說(shuō)明: A、B$2 中的 $ 表示對(duì)行的絕對(duì)引用,,往下拖時(shí),,2 不會(huì)變?yōu)?3、4 等,;B$2:B$8 以數(shù)組形式返回 B2 至 B8 中的所有部門,,即 {"銷售部";"行政部";"銷售部";"財(cái)務(wù)部";"行政部";"銷售部";"財(cái)務(wù)部"}。 B、MATCH(B$2:B$8,B$2:B$8,) 執(zhí)行時(shí),,第一次取出 B2(即“銷售部”),,然后返回“銷售部”在 B2:B8 中的位置 1;第二次取出 B3(即“行政部”),,也返回在 B2:B8 中的位置 2,;其它的以此類推,最后返回?cái)?shù)組 {1;2;1;4;2;1;4},;這里最主要的是相同的值返回一樣的序號(hào),。 C、$1:$7 用于返回 1 到 7 的數(shù)組,,即 {1;2;3;4;5;6;7},;ROW($1:$7) 用于返回 1 到 7 行的行號(hào),即{1;2;3;4;5;6;7},。ROW($2:$8) 用于返回 2 到 8 行的行號(hào),,即{2;3;4;5;6;7;8}。 D,、則 IF(MATCH(B$2:B$8,B$2:B$8,)=ROW($1:$7),ROW($2:$8)) 變?yōu)?IF({1;2;1;4;2;1;4}={1;2;3;4;5;6;7},{2;3;4;5;6;7;8}) ,,接著從= 左邊的數(shù)組中取出第一個(gè)元素 1,再?gòu)?= 右邊的數(shù)組中取出第一個(gè)元素 1,,它們相等,,所以返回 True;第二次從 = 左邊的數(shù)組中取出第二個(gè)元素 2 和從 = 右邊的數(shù)組中取出第二個(gè)元素 2,,它們也相等,,所以也返回 True;其它的以此類推,,最后返回?cái)?shù)組{TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE},;這一步主要是過(guò)濾掉重復(fù)數(shù)值,只留下重復(fù)“部門”的第一個(gè)部門,,為 True 的將留下,。 E、則 IF({1;2;1;4;2;1;4}={1;2;3;4;5;6;7},{2;3;4;5;6;7;8}) 變?yōu)?IF({TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE}, {2;3;4;5;6;7;8}),,接著從條件的數(shù)組中取出第一個(gè)元素 TRUE,,它為真,所以返回 If 的第二個(gè)參數(shù)(即“數(shù)字?jǐn)?shù)組”)中對(duì)應(yīng)元素 2,;第二次取出第二個(gè)元素 TRUE,,返回?cái)?shù)字?jǐn)?shù)組中對(duì)應(yīng)元素 3;第三次取出 FALSE,,它為假,所以返回 If 的第三個(gè)參數(shù),由于這里省略了,,默認(rèn)返回 FALSE,;最后返回 {2;3;FALSE;5;FALSE;FALSE;FALSE}。 F,、ROW(A1) 用于返回 A1 的行號(hào) 1,;則 SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW($1:$7),ROW($2:$8)),ROW(A1)) 變?yōu)?SMALL({2;3;FALSE;5;FALSE;FALSE;FALSE},1),接著在數(shù)組中返回第一個(gè)最小值 2,。 G,、則公式變?yōu)?=IFERROR(INDEX(B:B,2),""),B:B 表示引用 B 列,;接著用Index函數(shù)返回 B 列第二行的值“銷售部”,;IfError 是錯(cuò)誤判斷函數(shù),在前面篇章已多次介紹,。 3,、公式 =IFERROR(INDEX(B:B,SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW($1:$7),ROW($2:$8)),ROW(A1))),"") 還有以下兩種寫法: =IFERROR(INDEX(B:B,SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW(B$1:B$7),ROW(B$2:B$8)),ROW(A1))),"") =IFERROR(INDEX(B:B,SMALL(IF(MATCH(B$2:B$8,B$2:B$8,)=ROW(B$2:B$8)-1,ROW(B$2:B$8)),ROW(A1))),"") |
|