在FILTERXML函数中使用last()

假设我在A1中有以下XML

<GlobalHistoricalQuote> <Date>5/25/2017</Date> <Quote>85.24</Quote> </GlobalHistoricalQuote> <GlobalHistoricalQuote> <Date>5/26/2017</Date> <Quote>84.31</Quote> </GlobalHistoricalQuote> <GlobalHistoricalQuote> <Date>5/29/2017</Date> <Quote>84.56</Quote> </GlobalHistoricalQuote> <GlobalHistoricalQuote> <Date>5/30/2017</Date> <Quote>84.24</Quote> </GlobalHistoricalQuote> 

我想在Excel中提取最后一个Date值;

如果我input这个:

 FILTERXML(A1,"//GlobalHistoricalQuote[4]/Date") 

我得到正确的价值。

但是,如果我input:

 FILTERXML(A1,"//GlobalHistoricalQuote[last()]/Date") 

我收到#VALUE错误。

这是正确的定位器:

(// GlobalHistoricalQuote /date)[最后()]

得到下面最后一个使用xpath的元素。 您获取所有Date元素,并选取最后find的元素。

 (locator)[last()] 

获取下面的另一个元素的每个最后一个元素使用path。 您将在每个GlobalHistoricalQuote获取最后一个Date元素(如果有多个,或唯一存在)

 //GlobalHistoricalQuote/Date[last()]