String 在一个单元格中写入多个字符串

String 在一个单元格中写入多个字符串,string,excel,excel-formula,concatenation,worksheet-function,String,Excel,Excel Formula,Concatenation,Worksheet Function,我试图创建一个函数,在一个单元格中查找多个类别代码,然后在不同的单元格中为每个类别编写相应的类别管理器。最后,应该有一个以逗号分隔的字符串集合,表示经理的姓名。例如: Column Categories: 3AF,5CB,4DF,5GK Manager Names: Dieter, Max 我的做法: =IF(IFERROR(SEARCH("4DF";A1);0);"Dieter";IF(IFERROR(SEARCH("5GK";A1);0);"Max";"")) 它工作正常(查

我试图创建一个函数,在一个单元格中查找多个类别代码,然后在不同的单元格中为每个类别编写相应的类别管理器。最后,应该有一个以逗号分隔的字符串集合,表示经理的姓名。例如:

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
)。因此,我正在寻找一种修改,用两个名称填充新单元格


有人能帮我吗?

目前,这个公式可能会被解读为“如果这个是真的,那么做那个,否则如果另一个是真的,那么做另一个”,所以结果只能是那个或其他。要在同一单元格中同时实现这两个结果和另一个结果,只需调整以连接这两个结果

最短的方法是使用
&
,但要抓住机会在结果之间添加逗号和空格,使用
&“,”
,因此:

=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";"")  
不区分大小写,因此将处理
4df
4df
相同。但是,搜索始终将每个字符(无论是单字节还是双字节)计数为1,无论默认语言设置是什么,因此,在其他情况下,双字节字符可能是更合适的选择

尽管在上面的例子中,字符串中字符的位置(搜索试图返回的内容)并不相关,因为这些公式只需要查看字符串中的任何位置是否存在。如果不存在错误(),则会触发错误(),但陷阱会捕获该错误并将其转换为
0
。因此,如果说
列类别
3AF、5CB、9ZZ、5GK
,则上述最长公式将返回:

0,马克斯,朱利安


我只是想得到一些帮助,因为我在网上找不到相关的话题。我不知道你想在这篇文章中告诉我什么。嗯,那标签是个错误……这正是我想要的;)非常感谢。谢谢你的详细解释!