标签:Excel函数,FILTERXML函数
在《FILTERXML函数的妙用》中,我们讲解了FILTERXML函数的基本语法及应用示例,大家应该对FILTERXML函数有了初步的认识。本文将讲解一个巧用FILTERXML函数的示例,反转由词语组成的字符串,让FILTERXML函数与其它函数组合来解决问题。
假如在单元格B2中包含有下面由词语组成的字符串:
完美Excel,excelperfect,Word,Excel,PPT,Python
现在想反转这个字符串,使其变成下面的样子:
Python,PPT,Excel,Word,excelperfect,完美Excel
此时,就可以使用包括FILTERXML函数的公式来解决:
=TEXTJOIN(",",,INDEX(FILTERXML("<t><s>"& SUBSTITUTE(B2,",","</s><s>") &"</s></t>","//s"),LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+2-ROW(INDIRECT("1:"& LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1))))
结果如下图1所示。
图1
如果使用最新版本的Office 365,可以利用动态数组函数,让公式变得更简短些:
=TEXTJOIN(",",,SORTBY(FILTERXML("<t><s>"& SUBSTITUTE(B2,",","</s><s>") &"</s></t>","//s"),SEQUENCE(LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1),-1))
结果如下图2所示。
图2
可以看到,这两个公式的核心部分都使用了:
FILTERXML("<t><s>"& SUBSTITUTE(B2,",","</s><s>") &"</s></t>","//s")
它将字符串拆分成下面的数组:
{"完美Excel";"excelperfect";"Word";"Excel";"PPT";"Python"}
这样,就可以结合其它函数来提取出相应的词语并按相反的顺序组合,从而实现所需要的结果。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。