歡迎轉(zhuǎn)發(fā)和點(diǎn)一下“在看”,文末留言互動(dòng)! 置頂公眾號(hào)或設(shè)為星標(biāo)及時(shí)接收更新不迷路 小伙伴們好,今天和大家分享一道燒腦的題目,利用多維技術(shù)去重并提取清單。在以往的題目中,這類題目都只要求將提取結(jié)果放在一列或一行中即可,而今天這道題目,卻要求將結(jié)果放在多行多列中。 原題是這樣子的: 觀察一下源數(shù)據(jù)。源數(shù)據(jù)中既有大寫字母和字符串,也有空格和小寫字母。而提取的都是大寫字母及大寫字母和數(shù)字的組合。 我們?cè)撊绾蝿?dòng)手呢? 萬變不離其宗,根本辦法還是要去除不需要的數(shù)據(jù)后,對(duì)需要的數(shù)據(jù)進(jìn)行加權(quán)處理。之后再一次提取。 在單元格H2中輸入下列公式,三鍵回車并向右向下拖曳即可。 =IFERROR(INDIRECT(TEXT(SMALL(IF(EXACT($A$1:$F$5,UPPER($A$1:$F$5))*($A$1:$F$5<>"")-COUNTIF($H$1:H1,$A$1:$F$5),ROW($A$1:$F$5)/1%+COLUMN($A:$F)),IF((3*(COLUMN()-8)+ROW(A1))<5,3*(COLUMN()-8)+ROW(A1))),"r0c00"),),"") 思路: 由于有小寫字母及空格,而我們不需要這些,因此要將他們屏除。EXACT($A$1:$F$5,UPPER($A$1:$F$5))*($A$1:$F$5<>"")這不份,兩個(gè)條件分別對(duì)應(yīng)了小寫字母和空格 COUNTIF($H$1:H1,$A$1:$F$5)部分,去起到去重作用的。隨著公式的拖曳,凡是已經(jīng)提取到的數(shù)據(jù),都會(huì)從源數(shù)據(jù)中屏除,不再參與提取 IF(EXACT($A$1:$F$5,UPPER($A$1:$F$5))*($A$1:$F$5<>"")-COUNTIF($H$1:H1,$A$1:$F$5),ROW($A$1:$F$5)/1%+COLUMN($A:$F))部分,滿足條件的單元格區(qū)域,都會(huì)將行號(hào)擴(kuò)大100倍,同時(shí)加上列號(hào)。這一步的結(jié)果是{101,102,103,104,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;FALSE,FALSE,FALSE,FALSE,305,306;FALSE,FALSE,FALSE,FALSE,FALSE,FALSE;501,502,503,504,FALSE,FALSE} 接下來再由SMALL函數(shù)來依次提取第1、2、3..,小等值。這里要特別講一下IF((3*(COLUMN()-8)+ROW(A1))<5,3*(COLUMN()-8)+ROW(A1))這部分。它是作為SMALL函數(shù)的第二個(gè)參數(shù)的。正是由于這部分,才能讓結(jié)果分列在兩行中 由于最終題目的結(jié)果有4個(gè)有效數(shù)據(jù)。而源數(shù)據(jù)中符合條件的有效數(shù)據(jù)(有重復(fù)值)總共有10個(gè),如果不限制,隨著公式的拖曳,會(huì)有重復(fù)值出現(xiàn)。因此這里要將這部分返回的結(jié)果控制在4個(gè) 3*(COLUMN()-8)+ROW(A1)部分,當(dāng)當(dāng)前單元格在H2時(shí),3*(COLUMN()-8)的值是0,因此ROW(A1)的結(jié)果界定了取第幾小的值。當(dāng)公式拖曳到單元格I4時(shí),3*(COLUMN()-8)的值是3,ROW(B1)的值是1,那么合起來就是4,取第4小的值,對(duì)應(yīng)上面104那個(gè)位置上的數(shù)據(jù),就是“D” 接下來就是我們熟悉的套路了。TEXT函數(shù)將上面的101、306、502等等都轉(zhuǎn)換為“r0c00”的格式,再由INDIRECT函數(shù)返回他們對(duì)應(yīng)的數(shù)據(jù) 最后由IFERROR函數(shù)屏蔽錯(cuò)誤值
|