摘要:=TEXTJOIN(",",1,IF(A$2:A$15=D2,B$2:B$15,""))
小伙伴们好啊,今天咱们分享几个常用函数公式的典型应用。
如下图,希望将B列的姓名,按照不同部门合并到一个单元格里。
=TEXTJOIN(",",1,IF(A$2:A$15=D2,B$2:B$15,""))
公式中要合并的内容为:
IF(A$2:A$15=D2,B$2:B$15,"")
也就是如果A$2:A$15等于D2,就返回B$2:B$15对应的内容,否则返回空文本"",结果是一个内存数组:
{"沙瑞金";"高育良";"蔡成功";"陈岩石";"";"";"";""……}
TEXTJOIN函数对IF函数得到的内存数组进行合并,第一参数指定使用间隔符号为逗号,第二参数使用1,表示忽略内存数组中的空文本。
拆分字符
如下图,A列待拆分字符中,有多种类型的间隔符号,使用以下公式,可以按常量数组的形式将多种分隔符号写到一起。
=TEXTSPLIT(A2,{"+","-"})
公式中的列分隔符号为{"+","-"},每一个符号都加上双引号,符号之间用半角的逗号或半角分号作为间隔,最后用一组花括号包含起来。
TEXTSPLIT将依次按花括号中不同类型的分隔符拆分到各列。
合并多表中的名单
如下图所示,1~4月的员工考勤记录,分别存放在不同工作表中。每个月都可能有新入职以及离职人员,希望从这四个表中提取出不重复的员工名单。
在“汇总表”的A1单元格输入以下公式,按回车即可。
=UNIQUE(TOCOL('1月:4月'!A:A,1))
TOCOL函数第一参数使用多工作表引用方式,表示要处理的数据范围为'1月:4月'!A:A,表示“1月”至“4月”工作表的A列,第二参数使用1,表示忽略空白单元格。
TOCOL函数将四个工作表的A列以忽略空白单元格的形式合并为一列,再使用UNIQUE函数提取出不重复名单。
随机分组
如下图所示,希望将A列的姓名随机分成4组。
C2单元格输入以下公式,每按一次F9键,就可以得到四组随机排列的名单:
=IFERROR(INDEX(SORTBY(A2:A21,RANDARRAY(20)),SEQUENCE(10,4)),"")
公式中的SORTBY(A2:A21,RANDARRAY(20))部分,先使用RANDARRAY(20)得到20个随机小数,再使用SORTBY以随机小数为排序依据,对A列姓名进行随机排序。
SEQUENCE(10,4)部分,用来生成10行4列的序列号。
INDEX函数根据SEQUENCE生成的序列号从随机排序后的姓名中返回对应位置的内容。
最后,使用IFERROR函数屏蔽可能出现的错误值。
图文制作:祝洪忠
来源:Excel之家