如何利用excel中的webservice和FILTERXML提取当前汇率

如何利用excel中的webservice和FILTERXML提取当前汇率,第1张

用这个方法更方便,用公式并不方便:

xpath 我用Chrome得到的是

//*[@id="content"]/div[2]/table/tbody/tr[3]/td[1]

但用如下公式无法得到正确结果:

=FILTERXML(WEBSERVICE("https://xurrency.com/cny"),"//*[@id=""content""]/div[2]/table/tbody/tr[3]/td[1]")

我认为原因是 WEBSERVICE("https://xurrency.com/cny") 返回的并不是xml数据,是html数据。

使用Excel 2013版新增函数WEBSERVICE、FILTERXML,可以实现在线查询。如图所示,A列输入单词,B2输入公式可以转换音标,C2输入另外公式可以翻译词义:B2公式:=IF(A2="","",FILTERXML(WEBSERVICE("),"//phonetic-symbol"))C2公式:=IF(A2="","",FILTERXML(WEBSERVICE("),"//translation"))

由于B列数据是以不同个数的空格分隔,首先用查找替换的方法,统一为一个空格进行分隔:选中B列,按CTRL+H,调出查找替换窗口,在“查找内容”中输入2个空格,在“替换为”输入1个空格,再按几次(根据空格的多少确定次数)“全部替换”,直到无替换为止;

然后再分别在D2、I2、N2用公式:

=IFERROR(INDEX(FILTERXML("<a><b>"&SUBSTITUTE(INDEX($B:$B,SMALL(IF($A$2:$A$1000=$D$1,ROW($2:$1000)),ROW(A1)))," ","</b><b>")&"</b></a>","//b"),COLUMN(A1)),"")

=IFERROR(INDEX(FILTERXML("<a><b>"&SUBSTITUTE(INDEX($B:$B,SMALL(IF($A$2:$A$1000=$I$1,ROW($2:$1000)),ROW(A1)))," ","</b><b>")&"</b></a>","//b"),COLUMN(A1)),"")

=IFERROR(INDEX(FILTERXML("<a><b>"&SUBSTITUTE(INDEX($B:$B,SMALL(IF($A$2:$A$1000=$N$1,ROW($2:$1000)),ROW(A1)))," ","</b><b>")&"</b></a>","//b"),COLUMN(A1)),"")

数组公式,按组合键CTRL+SHIFT+回车,完成公式,再分别右拉4列后,再分别下拉。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7580198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存