动手操作是熟练掌握EXCEL的最快捷途径! 【置顶公众号】或者【设为星标】及时接收更新不迷路 小伙伴们好,今天和大家分享一个关于文本字符串合并的趣味题。这个题目的原型同样是交流群里的群友提供的,因具有一定的代表性因此分享出来给大家。 题目如下。要对符合要求的文本进行合并后以邮件的形式发出,由于B列中的源数据的动态的,意味着不可能手动来完成。 在高版本的EXCEL中,这个操作非常简单,使用TEXTJION函数或者CONCAT函数都行。如果不能使用这两个新函数,那只能另想其它的方法。 高级筛选发 解决的思路之一是,利用高级筛选将符合条件的文本筛出来,再利用PHONETIC这个函数进行合并。 打开高级筛选,做如下输入。 确定后得到下面的结果。 接下来,在单元格E7:E8中输入“、”,然后在单元格G2中输入公式“=PHONETIC(D7:E9)”。 但是这个方法有一个问题,即不能动态更新结果。若想要动态实现结果更新,需要使用函数公式来实现。 函数法 利用一对多查询的经典公式,我们可以提取出符合条件的数据,而且是动态更新的。之后再进行合并,就实现了结果动态的更新。 这个方法要求我们首先在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)”即可大功告成。 隐藏相关列后,最终的效果如下图。 |
|