FILTERXML函數(shù)?感覺(jué)似曾相識(shí)。還記得有一個(gè)強(qiáng)大的英漢互譯公式嗎?好象有它的身影: =FILTERXML(WEBSERVICE('http://fanyi.youdao.com/translate?&i='&B2&'&doctype=xml&version'),'//translation') 在上面公式中,WEBSERVICE函數(shù)可以獲取網(wǎng)頁(yè)代碼(代碼中包話(huà)翻譯完成的結(jié)果),而FILTERXML函數(shù)則是根據(jù)網(wǎng)頁(yè)代碼提取字符。 語(yǔ)法 FILTERXML(xml, xpath)
想完全掌握FILTERXML函數(shù),你需要首先熟悉網(wǎng)頁(yè)Xml代碼的結(jié)構(gòu),然后再掌握它的提取格式代碼Xpath。只是這些對(duì)于我們一般辦公人員有些難度,而且我們平時(shí)也用不了那么深入。所以蘭色就化繁為簡(jiǎn),分享一個(gè)傻瓜式的FILTERXML公式套路。 按分隔符拆分是經(jīng)常遇到的一個(gè)Excel難題。 下面介紹一下如何使用FILTERXML公式套路解決這個(gè)難題。 先在字符串前后分別添加<a><b>和</b></a> ='<a><b>'&B2&'</b></a>' 然后用substitute把分隔符-替換為</b><b> =SUBSTITUTE('<a><b>'&B2&'</b></a>','-','</b><b>') 以上步驟的目的就是把我們要提取的內(nèi)容,分別放在</b><b>中間,最外側(cè)是<a>和</a> <a><b>河南</b><b>鄭州</b><b>金水區(qū)</b></a> 然后就可以用=FILTERXML(代碼,'//b')提取出所有字符了。 =FILTERXML(SUBSTITUTE('<a><b>'&B2&'</b></a>','-','</b><b>'),'//b') 最后再用index(數(shù)組,序號(hào))分別提取省市區(qū) =INDEX(FILTERXML(SUBSTITUTE('<a><b>'&B2&'</b></a>','-','</b><b>'),'//b'),2) 可能有同學(xué)說(shuō)這樣的問(wèn)題用Ctrl +E就可以輕松解決,為什么要學(xué)這么復(fù)雜的公式? 有些拆分用Ctrl+E可以,有些它就無(wú)能為力了。來(lái)看一個(gè)網(wǎng)友的真實(shí)提問(wèn)。 如下圖所示:把D列中的數(shù)字提取出來(lái)求和。注意:只提取 “ : ”后的數(shù)字,如成品檢測(cè)1中的1不能參加運(yùn)算。 這個(gè)問(wèn)題用一般的公式或Ctrl+E很難完成,而且用FILTERXML函數(shù)則可以完成。 =SUM(FILTERXML(SUBSTITUTE(SUBSTITUTE('<a>'&D1&'</a>',':','<b>'),',','</b>'),'//b')) 上面的公式中重點(diǎn)還是如何構(gòu)造成xml格式代碼,原理同本文開(kāi)始,不再詳述。 蘭色說(shuō):今天分享的用法只是它的冰山一角,更多的用法同學(xué)們可以去網(wǎng)上搜一下,蘭色以后有機(jī)會(huì)再一個(gè)更詳細(xì)的教程。 長(zhǎng)按下面二維碼圖片,點(diǎn)上面”前往圖中包含的公眾號(hào)“然后再點(diǎn)關(guān)注,每天可以收到一篇蘭色最新寫(xiě)的excel教程。 工作中最常用的Excel函數(shù)公式,全印在一張超大的鼠標(biāo)墊上(送40集配套視頻),點(diǎn)我查看詳情 |
|