分享

FILTERXML函数的高阶技巧,建议收藏以备不时之需。

 EXCEL应用之家 2023-10-27 发布于上海


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,问大家一个问题。在没有新版函数之前,我们如何对单元格中的文本数据去重呢?例如下面这道题目。



这是一个非常大的难题。新版函数出现后,有了针对性的函数,这类题目变得简单了。

今天这篇帖子主要向大家介绍一下在低版本环境下如何使用公式来处理这类问题。


01

首先我们需要一列辅助列来帮助我们。在单元格区域B2:B9中输入逗号“,”。



之后在单元格E2中输入公式“=INDEX(FILTERXML("<a><b>"&SUBSTITUTE(PHONETIC($A$2:$B$10),",","</b><b>")&"</b></a>","a/b[not(following::*=.)]"),ROW(A1))”,三键回车并向下拖曳即可。

思路:

  • PHONETIC($A$2:$B$10)部分,利用PHONETIC这个函数将文本合并起来。这个函数只能合并文本函数

  • SUBSTITUTE函数将逗号“,”替换为“</b><b>”,并在字符串左右两侧分别添加"<a><b>"和"</b></a>",以满足FILTERXML函数的要求

  • FILTERXML函数的第二参数写为“a/b[not(following::*=.)]”,表示去除重复并保留最右侧的重复值。FIlTERXML函数的结果为{"中国";"美国";"英国";"意大利";"法国";"德国";"葡萄牙";"澳大利亚";"新西兰";"挪威";"丹麦";"西班牙";"比利时"}

  • 接下来就利用INDEX函数一次提取数据即可


02

上面这个方法提取出来的结果虽然是正确但顺序和原答案却不一样。来看看下面这条公式。



这两条公式唯一的区别就在于第二参数。它的含义是,去除重复值并保留最左侧的一个重复值。

本期内容练习文件提取方式:

链接:https://pan.baidu.com/s/1xgJ8FGpm7XgUi7Vy67sLNQ?pwd=58tq

提取码:58tq


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多