ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 象山海鲜

[原创] 强大的FILTERXML——文本处理函数(完结)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-5 13:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:FILTERXML
做习题的人好少~!
现在公布公式套路,以及讲解。

2.1.分列提取2&3解说.png


自己可以在17楼下载习题,练习和演算。
17楼——2.1分列提取
先消化下,有空再介绍下篇:2.2.截取

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-6 13:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 micch 于 2019-7-6 13:11 编辑

不能单独收藏楼层,等写多了以后找21楼不容易了。得把花花攒着了,否则不够献给海鲜版主了

先设置要提取的值为对应的属性,然后再提取。XPATH部分搞不懂就无法灵活应用啊

点评

XML结构固定,XPATH变化多端。XML和XPATH相辅相成。  发表于 2019-7-6 14:56

TA的精华主题

TA的得分主题

发表于 2019-7-6 13:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收藏 慢慢看

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-6 14:54 | 显示全部楼层
本帖最后由 象山海鲜 于 2019-7-7 15:58 编辑

2.2.截取
2.2.截取.png
实例练习:

    2.2.截取实例练习1.rar (11.3 KB, 下载次数: 163)


3) FILTERXML截取 对于增强宏表函数EVALUATE的应用

就今天的例子:
提取数字

2.2.截取实例1.png

定义名称 :计算
公式         :=EVALUATE(FILTERXML("<a>"&SUBSTITUTE(SUBSTITUTE(Sheet1!$A2,"X","<b>"),"+","</b>+")&"</b></a>","a"))

D2输入公式:=计算,下拉

要点说明:
   1. 截取后的长度比原字符串的长度大幅减少。
   2.原来运算计算式的套路:EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$H1,"<","*(1-n("""),">","""))")),是还要增加字符。
     和上面的考虑,字符长度又是减少,原先不能解决的表达式运算问题,现在就能运算了。
   3.不用考虑去除字符的位置。是直接截取然后再EVALUATE运算的,所以不存在要考虑前后运算的问题!
  

实例分享
1.
    2.2.截取实例分享之计算工程量的应用-1.png
    2.2.截取实例分享之计算工程量的应用-1.rar (9.29 KB, 下载次数: 241)

2. 巩固——实例习题
    大家可以到老帖下载附件测试:
   《如何数字+文字说明得出计算结果》
   等下篇公布这篇的我的公式。
   实用性很强,这篇是重点~!!
暂时写到这里,下篇 2.3.位置提取




评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-7 09:21 | 显示全部楼层
<a><b 丢丢表格='100' 满坛皆为吾师='97' 看见星光='90' sayhi95='71' 老李='92' 紫星='85' willin2000='84' 珍珍='100' 晓芬='71' 小U='89' 象山海鲜='78 ></b></a>

琢磨半天,也没学会,请教海鲜版主大人,如果改造成这样,能不能提取,用什么XPATH参数?

点评

已回帖!又审核中....,为了这个贴,不知道已经审核了几次了(版主和你们都是一样需要审核。如果遇到审核,说明在文中出现了需要审核的字或词),看样子,还是图片比较好。  发表于 2019-7-7 11:54

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-7 11:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

只能提取成绩,不能提取人名。这里的人名是属性名称,不能提取;成绩为属性值,可以提取!
只有文本内容和属性值是能提取出来的。如果是想提取全部的成绩,XPATH可以用 :a/b/@*
另外,你的这个XML,最后少了一个引号;其中的 b 是无有效文本内容,所以可以直接:
<a><b 丢丢表格='100' 满坛皆为吾师='97' 看见星光='90' sayhi95='71' 老李='92' 紫星='85' willin2000='84' 珍珍='100' 晓芬='71' 小U='89' 象山海鲜='78'/></a>
还有就是所有的要提取的数据都在b元素节点中,已经符合根的需求(有且唯一), a 元素也没啥用了。参考4楼,最下面的的三点
        3.有且有唯一根元素                                       
            最简单的xml:<a/>。   

可以直接改为
<b 丢丢表格='100' 满坛皆为吾师='97' 看见星光='90' sayhi95='71' 老李='92' 紫星='85' willin2000='84' 珍珍='100' 晓芬='71' 小U='89' 象山海鲜='78'/>
提取全部的XPAT:b/@*

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-7 14:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
难怪呢,我试了好多次都不对,原来是少了个引号,搞的我怀疑自己半天。唉,太粗心

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-8 15:46 | 显示全部楼层
本帖最后由 象山海鲜 于 2019-7-8 15:54 编辑

2.3.位置提取
现在公布 2.2.截取的实例公式套路:
2.2.截取之计算工程量的应用一.png

本篇开始
对于位置提取就要用到XPATH中的谓词[],方括号中放入数值,也就是位置~!
2.3.位置提取.png
2.3.位置提取演示.rar (105.03 KB, 下载次数: 45)



评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-12 09:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一学习这个头都炸,造样子抄公式都写不出来,太多标点符号了,程序员都怎么活的。。

TA的精华主题

TA的得分主题

发表于 2019-7-12 09:35 | 显示全部楼层
本帖最后由 micch 于 2019-7-12 09:37 编辑

程序员也不一定都会,不过学4-6年,然后码个8-10年,然后基本也就都会了吧
某度搜索了一下,XPATH讲的不少,但是都比较含糊简单,海鲜老师讲的更清晰易懂一些
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 20:58 , Processed in 0.041695 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表