使用公式將工作表內(nèi)一列中的重復(fù)項(xiàng)依次移到一行中。具體如下圖所示,要將工作表:
公式思路
將列A中的值與“數(shù)據(jù)”工作表列A中的值相比較,如果相等則獲取“數(shù)據(jù)”工作表中該值所在行的行號(hào),然后根據(jù)獲取的行號(hào)在“數(shù)據(jù)”工作表列B中找到相應(yīng)的值并放置在本單元格中,如果沒(méi)找到則為空。
公式解析
數(shù)據(jù)!$A$2:$A$7=$A2將單元格A2的值與“數(shù)據(jù)”工作表列A的值比較,因?yàn)榍?行都相等,因此結(jié)果為:{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}。
ROW(數(shù)據(jù)!$A$2:$A$7)-ROW(數(shù)據(jù)!$A$2)+1獲取一個(gè)值為1至6的數(shù)組:{1;2;3;4;5;6}。
IF(數(shù)據(jù)!$A$2:$A$7=$A2,ROW(數(shù)據(jù)!$A$2:$A$7)-ROW(數(shù)據(jù)!$A$2)+1)的結(jié)果為數(shù)組{1;2;3;FALSE;FALSE;FALSE}。
COLUMNS($B2:B2)返回當(dāng)前單元格與B2單元格相間隔的列數(shù),因?yàn)楫?dāng)前單元格就在B2,因此返回1。該數(shù)值用來(lái)作為SMALL函數(shù)的參數(shù),獲取第k個(gè)最小值,即需要第幾人數(shù)據(jù),從而獲取列A值在“數(shù)據(jù)”工作表中對(duì)應(yīng)的行號(hào)。本例中為SMALL({1;2;3;FALSE;FALSE;FALSE},1)。返回第1個(gè)最小值,即1。
然后,該值用作INDEX函數(shù)的參數(shù):INDEX(數(shù)據(jù)!$B$2:$B$7,1),獲取“數(shù)據(jù)”工作表列B中相應(yīng)行的數(shù)據(jù),即“數(shù)據(jù)”工作表單元格B2中的數(shù)據(jù)。
IFERROR函數(shù)用來(lái)在沒(méi)有找到數(shù)據(jù)時(shí)給單元格填充空值,而不是顯示錯(cuò)誤值。
小結(jié)
個(gè)人覺(jué)得這個(gè)例子對(duì)于理解數(shù)組公式特別有用,值得反復(fù)練習(xí)與琢磨。
舉一反三,本示例也可以用作查找重復(fù)值的參考方法。