您的位置: 网站首页> IT爱问> 当前文章

excel多行内容合并成一行加连接符

老董2022-12-07153围观,107赞

  本站站长擅长用python自动处理excel,请多关注本站。

  本节课的内容用python的pandas库非常容易实现,大家可以在本站学习pandas

  小奇老师excel教程:今天小雅邀请到《零基础玩会EXCEL-VBA》主讲小奇老师为大家分享一个EXCEL内置函数无法解决的问题。

  小伙伴,请看下面的截图:左边是组别、姓名。我们希望通过EXCEL实现右边的效果。

  先别往下面看哟!思考两分钟,你平时接触到的EXCEL函数能实现吗?欢迎评论区留言交流哦~~~

  小奇老师给大家分享的是使用自定义函数JOINIF函数按条件连接文本。

  下面就一起学习处理字符串的自定义函数——JOINIF函数,先认识一下:

  函数名:JOINIF

  作用:对参数范围中符合指定条件的单元格内容进行连接。

  参数介绍:

  第一参数:(必须)条件区域,根据条件计算的单元格区域。

  第二参数:(必须)用于确定连接的条件。

  第三参数:(必须)要连接的实际单元格区域。

  通过上面的介绍,我们不难看出,JOINIF函数和SUMIF函数极其相似,只是功能上由求和变成了连接文本。

  下面我们通过一个例子:如下图,A、B列为数据源,分别为组别和姓名,目标是组织成D、E列的格式:

  解决方法:

  一、 创建自定义函数:

  1、 新建一个EXCEL文档,只保留一个工作表,其余删除。按ALT+F11,打开VBE编辑器,新建一个模块,把下面的自定义函数代码复制到模块中,关闭VBE编辑器。

  Function JOINIF(Rng1 As Range, Str, Rng2 As Range)

  Dim Arr, Brr

  Dim i As Long

  Dim j As Long

  Dim MyStr As String

  If Rng1.Rows.Count > 65536 Then

  Arr = Rng1.Resize(65536, Rng1.Columns)

  Brr = Rng2.Resize(65536, Rng1.Columns)

  Else

  Arr = Rng1

  Brr = Rng2

  End If

  For i = 1 To UBound(Arr)

  For j = 1 To UBound(Arr, 2)

  If Arr(i, j) <> "" Then

  If Arr(i, j) = Str Then

  MyStr = MyStr & Brr(i, j) & ","

  End If

  Else

  Exit For

  End If

  Next j

  Next i

  JOINIF = Left(MyStr, Len(MyStr) - 1)

  End Function

  2、 点击【文件】【另存为】,文件保存类型选择“Excel加载宏”。它将自动存入ADDIN文件夹中。

  3、从要使用此函数的EXCEL文件的【开发工具】-【加载宏】中勾选所保存的宏文件名,确定。就可以在工作表中的随心所欲的使用自定义的按条件连接文本函数啦。

  4、看一下使用效果,是不是很酷呢?

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    excel多行内容合并成一行加连接符文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200