Excel情报局
用案例讲Excel
乍一看到这个问题,感觉也不是很难吧。如果想用动态数组的方法去做的话,小编首先想到的是substitute替换函数、substitutes批量替换函数、以及textsplit拆分函数。
理论上我们只需要将E3单元格的姓名拆分,作为需要替换的各个原字符,然后在B3:B5区域的初始成员姓名中找到这些需要替换的原字符,批量替换为空值就行了。
=TEXTSPLIT(E3,,",")
以逗号","这个符号作为"行分隔符"(第3参数),将E3单元格"淘汰"的人员姓名字符串拆分到一列多行显示(简称分行)。
SUBSTITUTES函数是WPS表格中独有的函数,用于批量替换文本中的字符。
=SUBSTITUTES(B3:B5,TEXTSPLIT(E3,,","),"")
①需要进行替换操作的文本字符串:
B3:B5
②要在字符串中被替换的旧文本:
TEXTSPLIT(E3,,",")
被淘汰的人员名称列表
③用于替换原字符串的新文本:
""(空值)
进行完这一波操作后,B3:B5区域中被淘汰人员就删除了。但是,我们发现虽然留下的姓名非常正确,但是残留了很多多余的间隔符","逗号。有些在整体字符串开头、有些在结尾,还有些会在整体字符串的中间位置,连续出现的空格个数其实也不是一定的。要想删除多余的逗号,只保留"真正的"间隔符逗号,有点小麻烦!
=TEXTSPLIT(E3,,",")
将E3单元格淘汰人员姓名字符串,以行分隔符逗号进行分行,最后以数组溢出方式显示在一列多行不同单元格中(姓名列表格式)。
=SUBSTITUTES(SUBSTITUTE(B3:B5,","," "),TEXTSPLIT(E3,,","),"")
①需要进行替换操作的文本字符串:
SUBSTITUTE(B3:B5,","," ")
用空格间隔符代替逗号后的待替换区域
②要在字符串中被替换的旧文本:
TEXTSPLIT(E3,,",")
被淘汰的人员名称列表
③用于替换原字符串的新文本:
""(空值)
进行完这一波操作后,B3:B5区域中的被淘汰人员就删除了。取而代之的是:多余的逗号变成了多余的空格。
=TRIM(SUBSTITUTES(SUBSTITUTE(B3:B5,","," "),TEXTSPLIT(E3,,","),""))
则每个单元格的"剩余成员"结果中,开头和结尾的空格会被删除,而姓名与姓名之间的空格只会保留1个,这样数据看上去就变得很整齐了。
接下来我们只需要再重复使用一次SUBSTITUTE函数:
最后用HSTACK函数横向拼接"剩余成员"各行所对应的A3:A5组别数据就行了: