我尝试创建一个函数,在单元格中查找多个类别代码,然后在不同的单元格中为每个类别编写相应的类别管理器。最后应该有一组逗号分隔的字符串代表管理者'名。例如::
Column Categories: 3AF,5CB,4DF,5GK
Manager Names: Dieter, Max
我的方法:
=IF(IFERROR(SEARCH("4DF";A1);0);"Dieter";IF(IFERROR(SEARCH("5GK";A1);0);"Max";""))
它工作正常(找到两个名字)但它只写了找到的第一个字符串(上面是Dieter
)并且没有显示稍后找到的管理员名称(即不是Max
) 。因此,我正在寻找一个用两个名称填充新单元格的修改。
任何人都可以帮助我吗?
答案 0 :(得分:1)
目前公式可能被理解为“如果这样做那,否则如果不同的是其他”,那么结果只能是< em>那或其他。要在同一单元格中同时实现 和 ,只需要进行调整以连接两个结果。
CONCATENATE的最短路径是使用&
,但是要抓住机会在结果之间添加逗号和空格,并&", "
:
=IF(IFERROR(SEARCH("4DF";A1);0),"Dieter")&", "&IF(IFERROR(SEARCH("5GK";A1);0);"Max";"")
原则可以扩展到包含更多结果,例如,如果列类别为3AF
,则经理Julian
,如下所示:
=IF(IFERROR(SEARCH("4DF";A1);0);"Dieter")&", "&IF(IFERROR(SEARCH("5GK";A1);0);"Max";"")&"; "&IF(IFERROR(SEARCH("3AF";A1);0);"Julian";"")
SEARCH 不区分大小写,因此将4df
视为与4DF
相同。但是,SEARCH始终将每个字符(无论是单字节还是双字节)计为1,无论默认语言设置如何,因此对于双字节字符SEARCHB在其他情况下可能是更合适的替代方法。
在上面虽然字符串中字符的位置(这是SEARCH试图返回的内容)是不相关的,因为这些公式只需要查看字符串中是否存在 where 。如果不存在,则会触发错误(#VALUE!),但会被IFERROR陷阱捕获并转换为0
。因此,如果说Column Categories
已经3AF,5CB,9ZZ,5GK
,则上面最长的公式会返回:
0,Max,Julian