分享

动态合并符合指定条件的文本,这些方法挺管用的!

 恶猪王520 2022-05-23 发布于新疆


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

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

领取红包封面
微信红包封面

图片


小伙伴们好,今天和大家分享一个关于文本字符串合并的趣味题。这个题目的原型同样是交流群里的群友提供的,因具有一定的代表性因此分享出来给大家。

题目如下。要对符合要求的文本进行合并后以邮件的形式发出,由于B列中的源数据的动态的,意味着不可能手动来完成。


图片

在高版本的EXCEL中,这个操作非常简单,使用TEXTJION函数或者CONCAT函数都行。如果不能使用这两个新函数,那只能另想其它的方法。


01

高级筛选发

解决的思路之一是,利用高级筛选将符合条件的文本筛出来,再利用PHONETIC这个函数进行合并。

打开高级筛选,做如下输入。


图片

确定后得到下面的结果。


图片

接下来,在单元格E7:E8中输入“、”,然后在单元格G2中输入公式“=PHONETIC(D7:E9)”。


图片

但是这个方法有一个问题,即不能动态更新结果。若想要动态实现结果更新,需要使用函数公式来实现。


02

函数法

利用一对多查询的经典公式,我们可以提取出符合条件的数据,而且是动态更新的。之后再进行合并,就实现了结果动态的更新。

这个方法要求我们首先在D列做一个辅助列,在单元格D2中输入公式“=IFERROR(INDEX($A$2:$A$17,SMALL(IF($B$2:$B$17<=30,ROW($A$2:$A$17)-1),ROW(A1))),'')”,三键回车并向下拖曳。

这是一个经典的公式应用组合,这里就不在详细介绍了。


图片

接下来,在单元格E2中输入公式“=IF((ROW(D2)-1)<=(COUNTA($D$2:$D$17)-COUNTBLANK($D$2:$D$17)),E1&D2&'、','')”并向下拖曳。


图片

最后,我们再单元格G2中输入公式“=LEFT(LOOKUP(1,0/($E$2:$E$17<>''),$E$2:$E$17),LEN(LOOKUP(1,0/($E$2:$E$17<>''),$E$2:$E$17))-1)”即可大功告成。


图片

隐藏相关列后,最终的效果如下图。


03


图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多