送人玫瑰,手有余香,請(qǐng)將文章分享給更多朋友 動(dòng)手操作是熟練掌握EXCEL的最快捷途徑! 文本處理問題是我們在使用EXCEL是經(jīng)常會(huì)遇到的問題之一。有時(shí)候,看似非常簡單的一個(gè)問題,稍不留心就會(huì)反錯(cuò)誤。今天向大家介紹的就是這樣的一個(gè)例子。 現(xiàn)在想把A列字符串最后面的漢字也就是各個(gè)區(qū)域提取出來放在B列,整體思路是這樣的:只要定位到最后一個(gè)數(shù)字,找到這個(gè)數(shù)字在字符串中的位置后,就可以很輕松地提取相應(yīng)的字符串了。 但是不要高興的太早哦,一不小心,就會(huì)犯錯(cuò)誤的! 如何定位呢?我們可以使用LOOKUP函數(shù)。 在單元格B2中輸入公式“=RIGHT(A2,LEN(A2)-LOOKUP(0,-ISERROR(-MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),ROW(INDIRECT("1:"&LEN(A2)))))”,并向下拖曳即可。 但是,這個(gè)公式是錯(cuò)誤的,如上圖,有幾個(gè)單元格顯示結(jié)果錯(cuò)誤。問題出在哪里呢? 原來是LOOKUP函數(shù)在鬧情緒了!因?yàn)閷?duì)于LOOKUP函數(shù)而言,這里使用的是LOOKUP函數(shù)的數(shù)組形式,那么它要求對(duì)于第二個(gè)參數(shù)-ISERROR(-MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))的結(jié)果要進(jìn)行升序排列。數(shù)組中的值必須按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否則,LOOKUP 可能無法返回正確的值。 原來是這樣!一不小心就出錯(cuò)! 找到了出錯(cuò)的原因后,就很容易找的解決的方法了。 在單元格B2中輸入公式“=RIGHT(A2,LEN(A2)-LOOKUP(1,0/(-MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),ROW(INDIRECT("1:"&LEN(A2)))))”并向下拖曳即可。 稍等一下,這個(gè)公式還是有些問題!上圖所示的三個(gè)單元格中又分別多了一個(gè)“0”,公式還需要雕琢一下! 為什么會(huì)多一個(gè)“0”呢?原來,問題出在0/(-MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))這部分。使用MID函數(shù)依次提取單個(gè)字符并添加“-”將他們轉(zhuǎn)換后,非零數(shù)字部分變?yōu)樨?fù)值,文本部分變?yōu)殄e(cuò)誤值。字符串中最后一個(gè)“0”出現(xiàn)在數(shù)字部分的最后一個(gè)位置。如下圖。 用“0”除他們后,最后一個(gè)“0”也會(huì)變?yōu)殄e(cuò)誤值。再用LOOKUP函數(shù)搜索“1”的時(shí)候,就會(huì)找到前一個(gè)數(shù)“5”所在的位置,所以最終提取字符串時(shí)就會(huì)多提取一位。 解決的方法也很簡單,使用SUBSTITUTE函數(shù)將源數(shù)據(jù)中的數(shù)字字符“0”替換為任意的非零數(shù)字即可。 終于,我們得到了正確的公式和答案了。 在單元格B2中輸入公式“=RIGHT(A2,LEN(A2)-LOOKUP(1,0/(-MID(SUBSTITUTE(A2,"0","1"),ROW(INDIRECT("1:"&LEN(A2))),1)),ROW(INDIRECT("1:"&LEN(A2)))))”并向下拖曳即可。 思路:
到這里本文就結(jié)束了。小伙伴們?nèi)缬腥魏螁栴}可以私信我哦! -END- 長按下方二維碼關(guān)注EXCEL應(yīng)用之家 面對(duì)EXCEL操作問題時(shí)不再迷茫無助 我就知道你“在看” 注意!前方有紅包擋道!速點(diǎn)閱讀原文消滅之! |
|