在單元格A1中有一個(gè)包含“|”符號(hào)的字符串:
1|A|2|B|33|CC|4D|5CCC|1F|6YY43F5|9CD
現(xiàn)在,要求在單元格A2中輸入一個(gè)公式,將其解析成由字符串構(gòu)成的數(shù)組:
{1;'A';2;'B';33;'CC';'4D';'5CCC';'1F';'6YY43F5';'9CD'}
這個(gè)公式有一些限制:
1.不能使用VBA自定義函數(shù),只能使用Excel內(nèi)置函數(shù)。
2.不能使用MID函數(shù)。
在單元格A2中輸入的公式為:
=FILTERXML('<a><b>'&SUBSTITUTE(A1,'|','</b><b>')&'</b></a>','//b')
在公式中,使用了不常見(jiàn)的FILTERXML函數(shù)來(lái)達(dá)到了我們的目的,如下圖1所示。
圖1
我們先來(lái)看看FILTERXML函數(shù)。
FILTERXML函數(shù)解析XML字符串,返回參數(shù)xpath提供的單個(gè)元素(節(jié)點(diǎn)或?qū)傩裕?。其語(yǔ)法為:
FILTERXML(xml,xpath)
其中,xml是有效的xml格式字符串,xpath是標(biāo)準(zhǔn)xpath格式字符串。
有些網(wǎng)站開(kāi)發(fā)基礎(chǔ)的朋友可能會(huì)知道,xml是用于編碼文檔的標(biāo)記語(yǔ)言,有著嚴(yán)格的解析/驗(yàn)證;xpath是一種用于選擇XML元素(如節(jié)點(diǎn)和屬性)的查詢語(yǔ)言,適用于XML和HTML。
對(duì)于本示例來(lái)說(shuō),公式中的:
'<a><b>'&SUBSTITUTE(A1,'|','</b><b>')&'</b></a>'
生成標(biāo)準(zhǔn)的XML:
'<a><b>1</b><b>A</b><b>2</b><b>B</b><b>33</b><b>CC</b><b>4D</b><b>5CCC</b><b>1F</b><b>6YY43F5</b><b>9CD</b></a>'
而參數(shù)xpath指定:
//b
表明接受標(biāo)簽b,并返回其節(jié)點(diǎn)內(nèi)容。
很巧妙!
聯(lián)系客服