分享

这个生僻函数能帮我们解决很多传统的难题!

 Excel办公实战 2021-06-29


Excel中生僻的函数不在少数,其中大部分生僻是指普通用户用不到,专业性的方式,但是有这么一个函数,他虽然生僻,但是却很好用!


他就是 FILTERXML!


FILTERXML这个函数之所以生僻,是因为涉及到XPath,Xpath是什么,一般用户不太了解,但是对于前端开发人员就比较熟悉了,其实就是一种提取网页内容的语法!

大家不用畏惧,html其实是非常的简单的,就我们这个函数而言,大家掌握
html中大部分标签都是成对出现就差不多了!

比如 <h1> 我是一级标题 </h1>
<h1>是开始,多加一个/ 的 是结果标签!


关于XPATH,大部分用户,简单看一下,即可明白,并不是很难!学习可以参考

https://www./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标签中的内容就可以了!

查一下XPATH语法
//标签名称

就可以获取指定标签的全部内容



所以我们案例中,只要 //li 即可!这也是比较常用的XPATH语法!

提取后是一个数组,我们可以通过F9来查看!

我们要的内容是第1个和第3个,所以我们直接使用INDEX这个可以从数组中获取数据的函数来处理,逗号表示同行(左右关系),所以是{1,3}!

这是一个区域数组,我们需要选中B2:C2,使用Ctrl+Shift+Enter来录入

本文由“壹伴编辑器”提供技术支持
XPATH语法非常的丰富的,基本可以完成我们大部分的网页内容提取需要的!对于FILTERXML 这个函数来说,更不在话下!

这里我们使用的是列表标签,其实XML更宽松,你可以使用自定义的标签
比如 <学习> 6个小时</学习> 这样都可以!



我是一个爬虫爱好者,所以前端和后端都懂一些!所以可以直接上手,一般用户,应该多看看,应该不用一天基本也可以搞定!


案例2 | 配合 WEBSERVICE 获取网页源码解析


比较典型的案例就是有道翻译了!但是基本没有人讲其中的原理!

=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version"),"//translation")


我们来说一下!
拿我们第一个内容来讲!
WEBSERVICE 可以根据给定网址获取到对应的源码:

我们要的内容就在 translation 标签中,所以我们XPATH语法就是 

//translation

本文由“壹伴编辑器”提供技术支持

这个函数,我们就简单聊这么多,想要用好这个函数,最好把常见的XPATH学习一下!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多