EXCEL中VBA函数其中使用自定义函数JOINIF函数连接文本
发布网友
发布时间:2024-10-02 09:28
我来回答
共1个回答
热心网友
时间:2024-10-22 15:59
小伙伴,请看下面的截图:左边是组别、姓名。我们希望通过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、看一下使用效果,是不是很酷呢?
EXCEL中VBA函数其中使用自定义函数JOINIF函数连接文本
Len(MyStr) – 1)End Function2、点击【文件】【另存为】,文件保存类型选择“Excel加载宏”。它将自动存入ADDIN文件夹中。3、从要使用此函数的EXCEL文件的【开发工具】-【加载宏】中勾选所保存的宏文件名,确定。就可以在工作表中的随心所欲的使用自定义的按条件连接文本函数啦。4、看一下使用效...
excel函数技巧:自定义函数JOINIF函数应用案例
首先,你需要在Excel中新建一个自定义函数,通过VBA编写代码实现。步骤包括创建新文档、编写JOINIF函数、保存为Excel加载宏,然后在目标工作簿中加载宏,使其可用。使用后,你将看到D、E列按照组别条件连接了相应的姓名,操作直观且高效。
excle中IF函数问题
应该是=IF(A1>=8,A1-1,if(A1>=7,A1-0.5,A1))“”号是用于直接引用信息的,也就是说用了“”号括起来的内容是直接显示出来的,而不是当作公式。()是和函数配合使用的,如上面的if ,有多少个if就有多少个括号
Excel vba中if函数的关系运算符可以引用吗
VBA中IF是语句,写法之一为:IF 条件 THEN 语句 ELSE 语句 VBA里面要使用类似工作表的IF函数,需要使用IIF
Excel中使用vba控制语句的操作方法
Excel中使用vba控制语句的操作步骤如下:首先我们打开一个工作样表作为例子。按下alt+f11进入vba编辑器,并新建一个模块作为学习的例子。接下来我们搭建模块必须的准备工作,对变量进行显性声明,并新建一个模块定义。vba中对程序操作的流程的控制使用if函数进行控制。在excel中也有if函数公式。大家可以理解...
怎么实现在Excel表格里,输入内容,另一个单元格
要实现Excel表格中在一个单元格输入任意内容后,另一个单元格自动填充设定的内容,可以通过使用Excel的“如果”函数或者VBA宏来实现。在Excel中,IF函数可以用来进行条件判断,并根据判断结果返回不同的值。如果你想在A1单元格输入任意内容后,B1单元格自动填充你设定的内容,可以在B1单元格中...
用VBA EXCEL大量合并单元格,合并单元格内容保留
x = 0 '记录大类小类都存在的行数 y = "" '拼接字符串 For i = 1 To z If Worksheets("sheet1").Cells(i, 1).Value > 0 And Worksheets("sheet1").Cells(i, 2).Value > 0 Then If x > 0 And Len(y) > 0 Then Range("B" & x & ":B" & i - 1).Select With ...
在EXCEL公式中,IF函数最多可以判断7个,现在我需要判断的数据有50个...
其实EXCEL里准备了许多办法来替代上面的愚蠢的做法。比如CHOOSE函数。=CHOOSE(A1,"a","b","c","d","e","f","g","h","i"),这是不是方便多了?CHOOSE的参数清单可以有29项之多,一般足够你使用了。如果还不够,那么请看下面:=LOOKUP(A1,{1,2,3,4,5,6,7,8,9;"a","b","c"...
Excel中IF函数多个条件,任意满足一个即为True
Excel中IF函数如何同时设置两个满足的条件,即满足任意一个即为Ture? 用法:把下面代码放进vba模块中,然后在某个单元格里面输入公式=test(A,B,N) 【A,B,N可以是指定的值或者某个单元格】 function test(A,B,N as long) dim i,j for i = 1 to 65536 if range("M" & i)....
怎么用VBA求平均成绩
方法一:利用if函数的方法:在B2单元格输入公式:=IF(A2<60,"不及格",IF(A2>=90,"优秀",IF(AND(A2>=60,A2<70),"及格","一般"))),下拉填充即可。方法二:利用lookup函数的方法:在B2单元格输入公式:=LOOKUP(A2,{0,60,70,90;"不及格","及格","一般","优秀"}),下拉填充即可。方法...