用这个方法更方便,用公式并不方便:
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列后,再分别下拉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)