小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

這題是一道函數(shù)綜合應(yīng)用,高手們 不服來戰(zhàn)!

 EXCEL應(yīng)用之家 2023-11-10 發(fā)布于上海

送人玫瑰,手有余香,請(qǐng)將文章分享給更多朋友

動(dòng)手操作是熟練掌握EXCEL的最快捷途徑!

【置頂公眾號(hào)】或者【設(shè)為星標(biāo)】及時(shí)接收更新不迷路



小伙伴們好,今天來和大家分享一道文本處理題目。這道題目有一定的難度,朋友們一起來做做看吧!

原題是這樣子的:



要求用公式將左側(cè)的結(jié)構(gòu)轉(zhuǎn)變?yōu)橛覀?cè)的結(jié)構(gòu)。今天準(zhǔn)備用兩種方法來解決這個(gè)問題。第一種方法我們需要寫三條公式;第二種方法則是一步到位,一條公式完成。

觀察一下這道題目的源數(shù)據(jù),我們發(fā)現(xiàn),結(jié)構(gòu)轉(zhuǎn)換后,部門名稱需要重復(fù)顯示,重復(fù)的次數(shù)等于名單中人名的數(shù)量。而人數(shù)又比分隔符多一個(gè)。根據(jù)這些特點(diǎn),我們開始書寫公式吧!


01

拆分部門。



在單元格D2中輸入公式“=INDEX($A$2:$A$5,SMALL(IF((LEN($B$2:$B$5)-LEN(SUBSTITUTE($B$2:$B$5,"、",""))+1)<COLUMN(A:D),100,ROW($A$2:$A$5)),ROW(A1))-1)”,三鍵回車并向下拖曳即可。

思路:

  • LEN(SUBSTITUTE($B$2:$B$5,"、","")部分,用空值替代源數(shù)據(jù)中的分隔符“、”,再用LEN函數(shù)求得替換后的字符串長度

  • (LEN($B$2:$B$5)-LEN(SUBSTITUTE($B$2:$B$5,"、",""))+1),再利用LEN函數(shù)求得替換前的字符串長度,兩項(xiàng)相減,再加上1,就得到了人數(shù)

  • 用(LEN($B$2:$B$5)-LEN(SUBSTITUTE($B$2:$B$5,"、",""))+1)這部分和COLUMN(A:D)相比,得到一個(gè)4行4列的一個(gè)內(nèi)存數(shù)組。再利用IF函數(shù)根據(jù)邏輯判斷的結(jié)果,返回100或者對(duì)應(yīng)的行號(hào)。這部分的結(jié)果是:{2,2,2,100;3,100,100,100;4,4,100,100;5,5,100,100}。用一個(gè)矩陣的形式看得更直觀


  • 接下來利用SMALL函數(shù),依次來返回第1、2、3..、9小值。隨著公式向下拖曳,SMALL函數(shù)的第二參數(shù)會(huì)由ROW(A1)一直變到ROW(A8)。ROW(A1)到ROW(A3)時(shí)SMALL會(huì)返回2,ROW(A4)時(shí)返回3,后面依次類推

  • 最后由INDEX函數(shù)來返回對(duì)應(yīng)的部門名稱


02

提取名單。

接下來就要在D列的基礎(chǔ)上來提取名單。這時(shí)候就要用到SUBSTITUTE函數(shù)的經(jīng)典應(yīng)用了。



在單元格E2中輸入公式“=MID(TRIM(MID(SUBSTITUTE(VLOOKUP($D2,$A$2:$B$5,2,),"、",REPT(" ",99)),COUNTIF($D$2:$D2,$D2)*99-98,99)),1,

LEN(TRIM(MID(SUBSTITUTE(VLOOKUP($D2,$A$2:$B$5,2,),"、",REPT(" ",99)),COUNTIF($D$2:$D2,$D2)*99-98,99)))-3)”,并向下拖曳即可。

思路:

  • VLOOKUP($D2,$A$2:$B$5,2,)部分,確保在D列的部門相同時(shí)(例如“財(cái)務(wù)部”)都能夠提取到單元格B2的內(nèi)容。下面的也是一樣的

  • SUBSTITUTE(VLOOKUP($D2,$A$2:$B$5,2,),"、",REPT(" ",99))部分,用重復(fù)了99次的空格“ ”來替代源數(shù)據(jù)中的分隔符“、”

  • MID(SUBSTITUTE(VLOOKUP($D2,$A$2:$B$5,2,),"、",REPT(" ",99)),COUNTIF($D$2:$D2,$D2)*99-98,99)部分,利用MID函數(shù)來從第1、197、296..個(gè)位置上提取長度為99的字符串

  • COUNTIF($D$2:$D2,$D2)*99-98,99部分,是一個(gè)小亮點(diǎn)。通常使用這個(gè)公式時(shí),COUNTIF($D$2:$D2,$D2)是會(huì)寫成類似于COLUMN(A:D)這種形式的,但今天在這里不行。因?yàn)镈列中有多個(gè)部門,且每個(gè)部門出現(xiàn)的次數(shù)也是不一樣的。而部門出現(xiàn)次數(shù)又代表這個(gè)部門有多少人,需要用SUBSTITUTE函數(shù)做多少次分割。因此這里就寫成了COUNTIF($D$2:$D2,$D2)這種形式。隨著公式向下拖曳,COUTIF函數(shù)會(huì)字符返回不同部門出現(xiàn)的次數(shù)

  • 最后利用TRIM函數(shù)去除多余的空格。

到這里為止,名單提取僅僅完成了一半,因?yàn)楣椒祷氐氖穷愃朴?quot;張二-18"這樣的結(jié)果。我們還需要把姓名單獨(dú)提取出來。方法也很簡單,定位“-”的位置后用字符串總長度再減去3,就是名字的長度。利用MID函數(shù)提取就好了。


03

提取年齡



在單元格F2中輸入公式“=RIGHT(TRIM(MID(SUBSTITUTE(VLOOKUP($D2,$A$2:$B$5,2,),"、",REPT(" ",99)),COUNTIF($D$2:$D2,$D2)*99-98,99)),2)”,并向下拖曳即可。

這個(gè)很簡單,只要用RIGHT函數(shù)提取就行,不再過多介紹了。


04

一道題寫3條公式在效率上不好。如果你不能使用高版本函數(shù),就可以考慮用海鮮大法寫一條公式。



在單元格D2中輸入公式“=FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(PHONETIC($A$2:$C$5),"部","部部門、"),"-","名單、年齡"),D$1,"<c/>"),"、","</b><b>")&"</b></a>",IF(COLUMN()=4,"a/b[c][.='"&INDEX($A$2:$A$5,SMALL(IF((LEN($B$2:$B$5)-LEN(SUBSTITUTE($B$2:$B$5,"、",""))+1)<COLUMN($A:$D),100,ROW($A$2:$A$5)),ROW(A1))-1)&"']","a/b[c][position()="&ROW(A1)&"]"))”,三鍵回車后向右向下拖曳即可。

思路:

  • 多次利用SUBSTITUTE函數(shù)整理源數(shù)據(jù)結(jié)構(gòu),使其符合FILTERXML函數(shù)的要求

  • 重點(diǎn)講一下它的第二參數(shù)。第二參使用了IF函數(shù),根據(jù)列標(biāo)的不同返回不同的內(nèi)容。大家注意看,INDEX($A$2:$A$5,SMALL(IF((LEN($B$2:$B$5)-LEN(SUBSTITUTE($B$2:$B$5,"、",""))+1)<COLUMN($A:$D),100,ROW($A$2:$A$5)),ROW(A1))-1)這部分其實(shí)就是我們上面介紹的如何重復(fù)顯示部門的那一段公式。由于返回的結(jié)果是文本,因此需要把它放在’“&&”’的中間,整體上符合[.='"&公式&"']的要求,和[c]同樣作為篩選條件。其含義是,源數(shù)據(jù)中等于INDEX函數(shù)返回結(jié)果的那個(gè)數(shù)據(jù)

  • 再來看看a/b[c][position()="&ROW(A1)&"]這部分,當(dāng)公式拖曳到E列和F列時(shí),F(xiàn)ILTERXML函數(shù)就分別構(gòu)成了姓名的內(nèi)存數(shù)組和年齡的內(nèi)存數(shù)組,如下

    {"張二";"李四";"唐一心";"曾賢";"歐陽小虎";"帥小火";"林小木";"阿七"}

    {18;29;24;36;28;24;24;34}

  • 而position()表示數(shù)據(jù)的位置信息,position()="&ROW(A1)&"表示取第一個(gè)位置上的數(shù)據(jù),隨著公式向下拖曳,position()="&ROW(A1)&"會(huì)依次提取后面的數(shù)據(jù)信息

-END-

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多