Excel中生僻的函数不在少数,其中大部分生僻是指普通用户用不到,专业性的方式,但是有这么一个函数,他虽然生僻,但是却很好用!FILTERXML这个函数之所以生僻,是因为涉及到XPath,Xpath是什么,一般用户不太了解,但是对于前端开发人员就比较熟悉了,其实就是一种提取网页内容的语法!大家不用畏惧,html其实是非常的简单的,就我们这个函数而言,大家掌握关于XPATH,大部分用户,简单看一下,即可明白,并不是很难!学习可以参考
https://www.w3cschool.cn/xpath/xpath-syntax.html
一般网页的内容都有一堆标签包裹!这种语法可以按照规则,提取这些标签中的内容!学习不用过于着急,都是从不会过来了!我们具体通过一些案例来看看用法!我们先写一下公式,然后带大家解析一下思路和原理,这个才是我们的目的!
=INDEX(FILTERXML("<ul><li>"&SUBSTITUTE(SUBSTITUTE($A2,"[","</li><li>"),"]","</li><li>")&"</li></ul>","//li"),{1,3})
1、想要使用这个函数,我们就需要按照xml或者html语法,构建出类似的网页结构这里我们使用表示文章段落的ul标签放在最外层,内部都是li标签!
="<ul><li>"&SUBSTITUTE(SUBSTITUTE($A2,"[","</li><li>"),"]","</li><li>")&"</li></ul>"
所有的内容都包裹在li标签中,最外层是一个ul!那么只要提取所有li标签中的内容就可以了!所以我们案例中,只要 //li 即可!这也是比较常用的XPATH语法!我们要的内容是第1个和第3个,所以我们直接使用INDEX这个可以从数组中获取数据的函数来处理,逗号表示同行(左右关系),所以是{1,3}!这是一个区域数组,我们需要选中B2:C2,使用Ctrl+Shift+Enter来录入XPATH语法非常的丰富的,基本可以完成我们大部分的网页内容提取需要的!对于FILTERXML 这个函数来说,更不在话下!这里我们使用的是列表标签,其实XML更宽松,你可以使用自定义的标签
我是一个爬虫爱好者,所以前端和后端都懂一些!所以可以直接上手,一般用户,应该多看看,应该不用一天基本也可以搞定!案例2 | 配合 WEBSERVICE 获取网页源码解析比较典型的案例就是有道翻译了!但是基本没有人讲其中的原理!
=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version"),"//translation")
WEBSERVICE 可以根据给定网址获取到对应的源码:我们要的内容就在 translation 标签中,所以我们XPATH语法就是
这个函数,我们就简单聊这么多,想要用好这个函数,最好把常见的XPATH学习一下!